drm/xe/vsec: fix CONFIG_INTEL_VSEC dependency
authorArnd Bergmann <arnd@arndb.de>
Thu, 29 May 2025 17:23:56 +0000 (10:23 -0700)
committerThomas Hellström <thomas.hellstrom@linux.intel.com>
Thu, 5 Jun 2025 16:06:59 +0000 (18:06 +0200)
The XE driver can be built with or without VSEC support, but fails to link as
built-in if vsec is in a loadable module:

x86_64-linux-ld: vmlinux.o: in function `xe_vsec_init':
(.text+0x1e83e16): undefined reference to `intel_vsec_register'

The normal fix for this is to add a 'depends on INTEL_VSEC || !INTEL_VSEC',
forcing XE to be a loadable module as well, but that causes a circular
dependency:

        symbol DRM_XE depends on INTEL_VSEC
        symbol INTEL_VSEC depends on X86_PLATFORM_DEVICES
        symbol X86_PLATFORM_DEVICES is selected by DRM_XE

The problem here is selecting a symbol from another subsystem, so change
that as well and rephrase the 'select' into the corresponding dependency.
Since X86_PLATFORM_DEVICES is 'default y', there is no change to
defconfig builds here.

Fixes: 0c45e76fcc62 ("drm/xe/vsec: Support BMG devices")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://lore.kernel.org/r/20250529172355.2395634-2-lucas.demarchi@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
(cherry picked from commit e4931f8be347ec5f19df4d6d33aea37145378c42)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
drivers/gpu/drm/xe/Kconfig

index 9bce047..98b46c5 100644 (file)
@@ -2,6 +2,8 @@
 config DRM_XE
        tristate "Intel Xe Graphics"
        depends on DRM && PCI && MMU && (m || (y && KUNIT=y))
+       depends on INTEL_VSEC || !INTEL_VSEC
+       depends on X86_PLATFORM_DEVICES || !(X86 && ACPI)
        select INTERVAL_TREE
        # we need shmfs for the swappable backing store, and in particular
        # the shmem_readpage() which depends upon tmpfs
@@ -27,7 +29,6 @@ config DRM_XE
        select BACKLIGHT_CLASS_DEVICE if ACPI
        select INPUT if ACPI
        select ACPI_VIDEO if X86 && ACPI
-       select X86_PLATFORM_DEVICES if X86 && ACPI
        select ACPI_WMI if X86 && ACPI
        select SYNC_FILE
        select IOSF_MBI