[v2] drm/bridge/sii8620: fix dependency on extcon

Message ID 20210408130746.175358-1-robert.foss@linaro.org
State New
Headers show
Series
  • [v2] drm/bridge/sii8620: fix dependency on extcon
Related show

Commit Message

Robert Foss April 8, 2021, 1:07 p.m.
The DRM_SIL_SII8620 kconfig has a weak `imply` dependency
on EXTCON, which causes issues when sii8620 is built
as a builtin and EXTCON is built as a module.

The symptoms are 'undefined reference' errors caused
by the symbols in EXTCON not being available
to the sii8620 driver.

Signed-off-by: Robert Foss <robert.foss@linaro.org>

Reported-by: kernel test robot <lkp@intel.com>
---

Changes since v1:
 - Fix typo on comment

 drivers/gpu/drm/bridge/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.31.0.30.g398dba342d.dirty

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Comments

Randy Dunlap April 9, 2021, 4:37 p.m. | #1
On 4/8/21 6:07 AM, Robert Foss wrote:
> The DRM_SIL_SII8620 kconfig has a weak `imply` dependency

> on EXTCON, which causes issues when sii8620 is built

> as a builtin and EXTCON is built as a module.

> 

> The symptoms are 'undefined reference' errors caused

> by the symbols in EXTCON not being available

> to the sii8620 driver.

> 

> Signed-off-by: Robert Foss <robert.foss@linaro.org>

> Reported-by: kernel test robot <lkp@intel.com>

> ---

> 

> Changes since v1:

>  - Fix typo on comment

> 

>  drivers/gpu/drm/bridge/Kconfig | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig

> index 22a467abd3e9..2289b44613af 100644

> --- a/drivers/gpu/drm/bridge/Kconfig

> +++ b/drivers/gpu/drm/bridge/Kconfig

> @@ -169,7 +169,7 @@ config DRM_SIL_SII8620

>  	tristate "Silicon Image SII8620 HDMI/MHL bridge"

>  	depends on OF

>  	select DRM_KMS_HELPER

> -	imply EXTCON

> +	depends on EXTCON || !EXTCON # if EXTCON=m, this cannot be built-in

>  	depends on RC_CORE || !RC_CORE

>  	help

>  	  Silicon Image SII8620 HDMI/MHL bridge chip driver.

> 


That gives me: (on linux-next 20210409)

drivers/gpu/drm/Kconfig:77:error: recursive dependency detected!
drivers/gpu/drm/Kconfig:77:	symbol DRM_KMS_HELPER is selected by DRM_SIL_SII8620
drivers/gpu/drm/bridge/Kconfig:168:	symbol DRM_SIL_SII8620 depends on EXTCON
drivers/extcon/Kconfig:2:	symbol EXTCON is selected by CHARGER_MANAGER
drivers/power/supply/Kconfig:499:	symbol CHARGER_MANAGER depends on POWER_SUPPLY
drivers/power/supply/Kconfig:2:	symbol POWER_SUPPLY is selected by OLPC_XO1_SCI
arch/x86/Kconfig:2757:	symbol OLPC_XO1_SCI depends on GPIO_CS5535
drivers/gpio/Kconfig:1156:	symbol GPIO_CS5535 depends on GPIOLIB
drivers/gpio/Kconfig:14:	symbol GPIOLIB is selected by I2C_MUX_LTC4306
drivers/i2c/muxes/Kconfig:47:	symbol I2C_MUX_LTC4306 depends on I2C
drivers/i2c/Kconfig:8:	symbol I2C is selected by FB_DDC
drivers/video/fbdev/Kconfig:63:	symbol FB_DDC depends on FB
drivers/video/fbdev/Kconfig:12:	symbol FB is selected by DRM_KMS_FB_HELPER
drivers/gpu/drm/Kconfig:83:	symbol DRM_KMS_FB_HELPER depends on DRM_KMS_HELPER
For a resolution refer to Documentation/kbuild/kconfig-language.rst
subsection "Kconfig recursive dependency limitations"


-- 
~Randy

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Robert Foss April 13, 2021, 5:02 p.m. | #2
Hey Randy,

Thanks for looking at this!

On Fri, 9 Apr 2021 at 18:38, Randy Dunlap <rdunlap@infradead.org> wrote:
>

> On 4/8/21 6:07 AM, Robert Foss wrote:

> > The DRM_SIL_SII8620 kconfig has a weak `imply` dependency

> > on EXTCON, which causes issues when sii8620 is built

> > as a builtin and EXTCON is built as a module.

> >

> > The symptoms are 'undefined reference' errors caused

> > by the symbols in EXTCON not being available

> > to the sii8620 driver.

> >

> > Signed-off-by: Robert Foss <robert.foss@linaro.org>

> > Reported-by: kernel test robot <lkp@intel.com>

> > ---

> >

> > Changes since v1:

> >  - Fix typo on comment

> >

> >  drivers/gpu/drm/bridge/Kconfig | 2 +-

> >  1 file changed, 1 insertion(+), 1 deletion(-)

> >

> > diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig

> > index 22a467abd3e9..2289b44613af 100644

> > --- a/drivers/gpu/drm/bridge/Kconfig

> > +++ b/drivers/gpu/drm/bridge/Kconfig

> > @@ -169,7 +169,7 @@ config DRM_SIL_SII8620

> >       tristate "Silicon Image SII8620 HDMI/MHL bridge"

> >       depends on OF

> >       select DRM_KMS_HELPER

> > -     imply EXTCON

> > +     depends on EXTCON || !EXTCON # if EXTCON=m, this cannot be built-in

> >       depends on RC_CORE || !RC_CORE

> >       help

> >         Silicon Image SII8620 HDMI/MHL bridge chip driver.

> >

>

> That gives me: (on linux-next 20210409)

>

> drivers/gpu/drm/Kconfig:77:error: recursive dependency detected!

> drivers/gpu/drm/Kconfig:77:     symbol DRM_KMS_HELPER is selected by DRM_SIL_SII8620

> drivers/gpu/drm/bridge/Kconfig:168:     symbol DRM_SIL_SII8620 depends on EXTCON

> drivers/extcon/Kconfig:2:       symbol EXTCON is selected by CHARGER_MANAGER

> drivers/power/supply/Kconfig:499:       symbol CHARGER_MANAGER depends on POWER_SUPPLY

> drivers/power/supply/Kconfig:2: symbol POWER_SUPPLY is selected by OLPC_XO1_SCI

> arch/x86/Kconfig:2757:  symbol OLPC_XO1_SCI depends on GPIO_CS5535

> drivers/gpio/Kconfig:1156:      symbol GPIO_CS5535 depends on GPIOLIB

> drivers/gpio/Kconfig:14:        symbol GPIOLIB is selected by I2C_MUX_LTC4306

> drivers/i2c/muxes/Kconfig:47:   symbol I2C_MUX_LTC4306 depends on I2C

> drivers/i2c/Kconfig:8:  symbol I2C is selected by FB_DDC

> drivers/video/fbdev/Kconfig:63: symbol FB_DDC depends on FB

> drivers/video/fbdev/Kconfig:12: symbol FB is selected by DRM_KMS_FB_HELPER

> drivers/gpu/drm/Kconfig:83:     symbol DRM_KMS_FB_HELPER depends on DRM_KMS_HELPER

> For a resolution refer to Documentation/kbuild/kconfig-language.rst

> subsection "Kconfig recursive dependency limitations"


I'm not sure how to avoid this circular dependency. The above solution
is what I've seen w/r to issues like [1]. Clearly it doesn't work in
this situation. `select EXTCON` doesn't seem to cause this dependency
error, but I'm not sure it accurately represents the dependency
sii8620 has on extcon.

[1] https://lore.kernel.org/lkml/202104040604.SSTe2Cxf-lkp@intel.com/
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Patch

diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig
index 22a467abd3e9..2289b44613af 100644
--- a/drivers/gpu/drm/bridge/Kconfig
+++ b/drivers/gpu/drm/bridge/Kconfig
@@ -169,7 +169,7 @@  config DRM_SIL_SII8620
 	tristate "Silicon Image SII8620 HDMI/MHL bridge"
 	depends on OF
 	select DRM_KMS_HELPER
-	imply EXTCON
+	depends on EXTCON || !EXTCON # if EXTCON=m, this cannot be built-in
 	depends on RC_CORE || !RC_CORE
 	help
 	  Silicon Image SII8620 HDMI/MHL bridge chip driver.