diff mbox series

drm/xe: Select INTEL_VSEC to fix build dependency

Message ID 20250227073205.1248282-1-suhui@nfschina.com (mailing list archive)
State New
Headers show
Series drm/xe: Select INTEL_VSEC to fix build dependency | expand

Commit Message

Su Hui Feb. 27, 2025, 7:32 a.m. UTC
When build randconfig, there is an error:
ld: drivers/gpu/drm/xe/xe_vsec.o: in function `xe_vsec_init':
xe_vsec.c:(.text+0x182): undefined reference to `intel_vsec_register'

When CONFIG_DRM_XE=y and CONFIG_INTEL_VSEC=m is set, ld couldn't find
'intel_vsec_register'. Select INTEL_VSEC to fix this error.

Fixes: 0c45e76fcc62 ("drm/xe/vsec: Support BMG devices")
Signed-off-by: Su Hui <suhui@nfschina.com>
---
 drivers/gpu/drm/xe/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

Jani Nikula Feb. 27, 2025, 10:47 a.m. UTC | #1
On Thu, 27 Feb 2025, Su Hui <suhui@nfschina.com> wrote:
> When build randconfig, there is an error:
> ld: drivers/gpu/drm/xe/xe_vsec.o: in function `xe_vsec_init':
> xe_vsec.c:(.text+0x182): undefined reference to `intel_vsec_register'
>
> When CONFIG_DRM_XE=y and CONFIG_INTEL_VSEC=m is set, ld couldn't find
> 'intel_vsec_register'. Select INTEL_VSEC to fix this error.

Documentation/kbuild/kconfig-language.rst:

  Note:
	select should be used with care. select will force
	a symbol to a value without visiting the dependencies.
	By abusing select you are able to select a symbol FOO even
	if FOO depends on BAR that is not set.
	In general use select only for non-visible symbols
	(no prompts anywhere) and for symbols with no dependencies.
	That will limit the usefulness but on the other hand avoid
	the illegal configurations all over.

This should likely be either

	depends on INTEL_VSEC || INTEL_VSEC=n

or

	depends on INTEL_VSEC


BR,
Jani.



>
> Fixes: 0c45e76fcc62 ("drm/xe/vsec: Support BMG devices")
> Signed-off-by: Su Hui <suhui@nfschina.com>
> ---
>  drivers/gpu/drm/xe/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
> index b51a2bde73e2..7a60d96d2dd6 100644
> --- a/drivers/gpu/drm/xe/Kconfig
> +++ b/drivers/gpu/drm/xe/Kconfig
> @@ -44,6 +44,7 @@ config DRM_XE
>  	select WANT_DEV_COREDUMP
>  	select AUXILIARY_BUS
>  	select HMM_MIRROR
> +	select INTEL_VSEC
>  	help
>  	  Experimental driver for Intel Xe series GPUs
Su Hui Feb. 27, 2025, 11:38 a.m. UTC | #2
On 2025/2/27 18:47, Jani Nikula wrote:
> On Thu, 27 Feb 2025, Su Hui <suhui@nfschina.com> wrote:
>> When build randconfig, there is an error:
>> ld: drivers/gpu/drm/xe/xe_vsec.o: in function `xe_vsec_init':
>> xe_vsec.c:(.text+0x182): undefined reference to `intel_vsec_register'
>>
>> When CONFIG_DRM_XE=y and CONFIG_INTEL_VSEC=m is set, ld couldn't find
>> 'intel_vsec_register'. Select INTEL_VSEC to fix this error.
> Documentation/kbuild/kconfig-language.rst:
>
>    Note:
> 	select should be used with care. select will force
> 	a symbol to a value without visiting the dependencies.
> 	By abusing select you are able to select a symbol FOO even
> 	if FOO depends on BAR that is not set.
> 	In general use select only for non-visible symbols
> 	(no prompts anywhere) and for symbols with no dependencies.
> 	That will limit the usefulness but on the other hand avoid
> 	the illegal configurations all over.
>
> This should likely be either
>
> 	depends on INTEL_VSEC || INTEL_VSEC=n
>
> or
>
> 	depends on INTEL_VSEC

Hi, Jani:

I tried to use 'depends on' at first. But there is a recursive dependency:

     error: recursive dependency detected!
         symbol DRM_XE depends on INTEL_VSEC
         symbol INTEL_VSEC depends on X86_PLATFORM_DEVICES
         symbol X86_PLATFORM_DEVICES is selected by DRM_XE
         For a resolution refer to 
Documentation/kbuild/kconfig-language.rst
     subsection "Kconfig recursive dependency limitations".


I will try it again with 'depends on', need some time to check this 
recursive
dependency problem.

Su Hui

>
>
>
>> Fixes: 0c45e76fcc62 ("drm/xe/vsec: Support BMG devices")
>> Signed-off-by: Su Hui <suhui@nfschina.com>
>> ---
>>   drivers/gpu/drm/xe/Kconfig | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
>> index b51a2bde73e2..7a60d96d2dd6 100644
>> --- a/drivers/gpu/drm/xe/Kconfig
>> +++ b/drivers/gpu/drm/xe/Kconfig
>> @@ -44,6 +44,7 @@ config DRM_XE
>>   	select WANT_DEV_COREDUMP
>>   	select AUXILIARY_BUS
>>   	select HMM_MIRROR
>> +	select INTEL_VSEC
>>   	help
>>   	  Experimental driver for Intel Xe series GPUs
Lucas De Marchi Feb. 27, 2025, 4:03 p.m. UTC | #3
On Thu, Feb 27, 2025 at 03:32:06PM +0800, Su Hui wrote:
>When build randconfig, there is an error:
>ld: drivers/gpu/drm/xe/xe_vsec.o: in function `xe_vsec_init':
>xe_vsec.c:(.text+0x182): undefined reference to `intel_vsec_register'
>
>When CONFIG_DRM_XE=y and CONFIG_INTEL_VSEC=m is set, ld couldn't find
>'intel_vsec_register'. Select INTEL_VSEC to fix this error.
>
>Fixes: 0c45e76fcc62 ("drm/xe/vsec: Support BMG devices")
>Signed-off-by: Su Hui <suhui@nfschina.com>
>---
> drivers/gpu/drm/xe/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
>diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
>index b51a2bde73e2..7a60d96d2dd6 100644
>--- a/drivers/gpu/drm/xe/Kconfig
>+++ b/drivers/gpu/drm/xe/Kconfig
>@@ -44,6 +44,7 @@ config DRM_XE
> 	select WANT_DEV_COREDUMP
> 	select AUXILIARY_BUS
> 	select HMM_MIRROR
>+	select INTEL_VSEC

intel_vsec is an x86 platform driver. I think we probably want to add a
config that depends on INTEL_VSEC rather than selecting it like this.
At the very least we need and `if x86` and also make sure the driver
works without that part.

Lucas De Marchi


> 	help
> 	  Experimental driver for Intel Xe series GPUs
>
>-- 
>2.30.2
>
Su Hui Feb. 28, 2025, 3:33 a.m. UTC | #4
On 2025/2/28 00:03, Lucas De Marchi wrote:
> On Thu, Feb 27, 2025 at 03:32:06PM +0800, Su Hui wrote:
>> When build randconfig, there is an error:
>> ld: drivers/gpu/drm/xe/xe_vsec.o: in function `xe_vsec_init':
>> xe_vsec.c:(.text+0x182): undefined reference to `intel_vsec_register'
>>
>> When CONFIG_DRM_XE=y and CONFIG_INTEL_VSEC=m is set, ld couldn't find
>> 'intel_vsec_register'. Select INTEL_VSEC to fix this error.
>>
>> Fixes: 0c45e76fcc62 ("drm/xe/vsec: Support BMG devices")
>> Signed-off-by: Su Hui <suhui@nfschina.com>
>> ---
>> drivers/gpu/drm/xe/Kconfig | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
>> index b51a2bde73e2..7a60d96d2dd6 100644
>> --- a/drivers/gpu/drm/xe/Kconfig
>> +++ b/drivers/gpu/drm/xe/Kconfig
>> @@ -44,6 +44,7 @@ config DRM_XE
>>     select WANT_DEV_COREDUMP
>>     select AUXILIARY_BUS
>>     select HMM_MIRROR
>> +    select INTEL_VSEC
>
> intel_vsec is an x86 platform driver. I think we probably want to add a
> config that depends on INTEL_VSEC rather than selecting it like this.
> At the very least we need and `if x86` and also make sure the driver
> works without that part.
>
There is a recursive dependency between INTEL_VSEC and DRM_XE:

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

So if using 'depends on INTEL_VSEC', we should remove 'select 
X86_PLATFORM_DEVICES', like this one:

  config DRM_XE
         tristate "Intel Xe Graphics"
         depends on DRM && PCI && MMU && (m || (y && KUNIT=y))
+       depends on !X86 || INTEL_VSEC || INTEL_VSEC=n
+       depends on !X86 || !ACPI || ACPI_WMI
         select INTERVAL_TREE
         # we need shmfs for the swappable backing store, and in particular
         # the shmem_readpage() which depends upon tmpfs
@@ -27,8 +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

The 'select X86_PLATFORM_DEVICES' is introduced by 67a9e86dc130 
("drm/xe: select
X86_PLATFORM_DEVICES when ACPI_WMI is selected"), so both ACPI_WMI need 
to be changed.

Another choice is using 'select INTEL_VSEC if X86' and no need to change 
other things.
Any suggestion for these two choices?
diff mbox series

Patch

diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig
index b51a2bde73e2..7a60d96d2dd6 100644
--- a/drivers/gpu/drm/xe/Kconfig
+++ b/drivers/gpu/drm/xe/Kconfig
@@ -44,6 +44,7 @@  config DRM_XE
 	select WANT_DEV_COREDUMP
 	select AUXILIARY_BUS
 	select HMM_MIRROR
+	select INTEL_VSEC
 	help
 	  Experimental driver for Intel Xe series GPUs