Subject: [PATCH V9 04/14] drm/bridge: ptn3460: Convert to i2c driver model

From: [email-masked] (Gustavo Padovan)
Date: Thu, 29 Jan 2015 12:29:19 -0200

Hi Ajay,

2015-01-20 Ajay Kumar <[email-masked]>:

> Use drm_bridge helpers to modify the driver to support
> i2c driver model.
> 
> Signed-off-by: Ajay Kumar <[email-masked]>
> Acked-by: Inki Dae <[email-masked]>
> Tested-by: Rahul Sharma <[email-masked]>
> Tested-by: Javier Martinez Canillas <[email-masked]>
> Tested-by: Gustavo Padovan <[email-masked]>
> Tested-by: Sjoerd Simons <[email-masked]>
> ---
>  drivers/gpu/drm/bridge/Kconfig          |    2 +
>  drivers/gpu/drm/bridge/ptn3460.c        |  124 +++++++++++++++++++++----------
>  drivers/gpu/drm/exynos/exynos_dp_core.c |   22 ------
>  3 files changed, 86 insertions(+), 62 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig
> index 884923f..4254c2b 100644
> --- a/drivers/gpu/drm/bridge/Kconfig
> +++ b/drivers/gpu/drm/bridge/Kconfig
> @@ -1,5 +1,7 @@
>  config DRM_PTN3460
>  	tristate "PTN3460 DP/LVDS bridge"
>  	depends on DRM
> +	depends on OF && I2C

Adding I2C here is causing this circular dependency:

scripts/kconfig/conf --silentoldconfig Kconfig
drivers/video/fbdev/Kconfig:5:error: recursive dependency detected!
drivers/video/fbdev/Kconfig:5:  symbol FB is selected by DRM_KMS_FB_HELPER
drivers/gpu/drm/Kconfig:34:     symbol DRM_KMS_FB_HELPER depends on
DRM_KMS_HELPER
drivers/gpu/drm/Kconfig:28:     symbol DRM_KMS_HELPER is selected by
DRM_PTN3460
drivers/gpu/drm/bridge/Kconfig:1:       symbol DRM_PTN3460 depends on I2C
drivers/i2c/Kconfig:7:  symbol I2C is selected by FB_DDC
drivers/video/fbdev/Kconfig:59: symbol FB_DDC is selected by FB_CYBER2000_DDC
drivers/video/fbdev/Kconfig:374:        symbol FB_CYBER2000_DDC depends on
FB_CYBER2000
drivers/video/fbdev/Kconfig:362:        symbol FB_CYBER2000 depends on FB

To solve this we just need to remove I2C from depends as DRM already selects
I2C. This was already fixed by:

commit 90bde571ad194adb039cb92a11a5b346f15eb610
Author: Arnd Bergmann <[email-masked]>
Date:   Tue Mar 25 12:06:46 2014 +0100

    drm/bridge: PTN3460 needs DRM_KMS_HELPER

    The recently added PTN3460 device driver uses interfaces that
    are provided by the KMS helper infrastructure, so we should
    explicitly select that to avoid this linker error:

    ERROR: "drm_helper_probe_single_connector_modes" [drivers/gpu/drm/bridge/ptn3460.ko] undefined!
    ERROR: "drm_helper_connector_dpms" [drivers/gpu/drm/bridge/ptn3460.ko] undefined!

    We have to drop the I2C dependency to avoid a circular dependency
    chain, but that's ok because DRM already selects I2C.

    Signed-off-by: Arnd Bergmann <[email-masked]>
    Signed-off-by: Dave Airlie <[email-masked]>

But you may have introduced it again on a rebase. The following patch fixes it:

diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig
index 990b4b2..946d1ef 100644
--- a/drivers/gpu/drm/bridge/Kconfig
+++ b/drivers/gpu/drm/bridge/Kconfig
@@ -1,7 +1,6 @@
 config DRM_PTN3460
        tristate "PTN3460 DP/LVDS bridge"
-       depends on DRM
-       depends on OF && I2C
+       depends on DRM && OF
        select DRM_KMS_HELPER
        select DRM_PANEL
        ---help---

	Gustavo