Re: [PATCH v3 5/5] drm/bridge: add preliminary driver for cadence dpi/dp bridge
From: Heiko Stuebner
Date: Thu Sep 13 2018 - 08:30:40 EST
Am Dienstag, 28. August 2018, 12:24:48 CEST schrieb Damian Kos:
> From: Quentin Schulz <quentin.schulz@xxxxxxxxxxx>
>
> This patch finally adds the preliminary driver for Cadence MHDP DPI/DP bridge.
>
> Changes made in the low level driver (cdn-dp-reg.*):
> - moved it to from drivers/gpu/drm/rockchip to
> drivers/gpu/drm/bridge/cdns-mhdp-common.*
> - functions for sending/receiving commands are now public
> - added functions for reading registers and link training
> adjustment
>
> Changes made in RK's driver (cdn-dp-core.*):
> - Moved audio_info and audio_pdev fields from cdn_dp_device to
> cdns_mhdp_device structure.
>
> Signed-off-by: Damian Kos <dkos@xxxxxxxxxxx>
> ---
> drivers/gpu/drm/bridge/Kconfig | 9 +
> drivers/gpu/drm/bridge/Makefile | 3 +
> .../cdns-mhdp-common.c} | 137 +-
> .../cdns-mhdp-common.h} | 21 +-
> drivers/gpu/drm/bridge/cdns-mhdp.c | 1308 +++++++++++++++++
> drivers/gpu/drm/rockchip/Kconfig | 1 +
> drivers/gpu/drm/rockchip/Makefile | 4 +-
> drivers/gpu/drm/rockchip/cdn-dp-core.c | 16 +-
> drivers/gpu/drm/rockchip/cdn-dp-core.h | 4 +-
> 9 files changed, 1484 insertions(+), 19 deletions(-)
> rename drivers/gpu/drm/{rockchip/cdn-dp-reg.c => bridge/cdns-mhdp-common.c} (87%)
> rename drivers/gpu/drm/{rockchip/cdn-dp-reg.h => bridge/cdns-mhdp-common.h} (95%)
> create mode 100644 drivers/gpu/drm/bridge/cdns-mhdp.c
>
> diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig
> index 9eeb8ef0b174..90a4810a8c96 100644
> --- a/drivers/gpu/drm/bridge/Kconfig
> +++ b/drivers/gpu/drm/bridge/Kconfig
> @@ -35,6 +35,15 @@ config DRM_CDNS_DSI
> Support Cadence DPI to DSI bridge. This is an internal
> bridge and is meant to be directly embedded in a SoC.
>
> +config DRM_CDNS_MHDP
> + tristate "Cadence DPI/DP bridge"
> + select DRM_KMS_HELPER
> + select DRM_PANEL_BRIDGE
> + depends on OF
> + help
> + Support Cadence DPI to DP bridge. This is an internal
> + bridge and is meant to be directly embedded in a SoC.
> +
This ends up with a Kconfig error on my kernel, with:
scripts/kconfig/conf --oldconfig Kconfig
drivers/i2c/Kconfig:7:error: recursive dependency detected!
drivers/i2c/Kconfig:7: symbol I2C is selected by FB_DDC
drivers/video/fbdev/Kconfig:63: symbol FB_DDC depends on FB
drivers/video/fbdev/Kconfig:5: symbol FB is selected by DRM_KMS_FB_HELPER
drivers/gpu/drm/Kconfig:74: symbol DRM_KMS_FB_HELPER depends on DRM_KMS_HELPER
drivers/gpu/drm/Kconfig:68: symbol DRM_KMS_HELPER is selected by DRM_CDNS_MHDP
drivers/gpu/drm/bridge/Kconfig:38: symbol DRM_CDNS_MHDP is selected by ROCKCHIP_CDN_DP
drivers/gpu/drm/rockchip/Kconfig:29: symbol ROCKCHIP_CDN_DP depends on EXTCON
drivers/extcon/Kconfig:1: symbol EXTCON is selected by CHARGER_MANAGER
drivers/power/supply/Kconfig:467: symbol CHARGER_MANAGER depends on POWER_SUPPLY
drivers/power/supply/Kconfig:1: symbol POWER_SUPPLY is selected by HID_BATTERY_STRENGTH
drivers/hid/Kconfig:28: symbol HID_BATTERY_STRENGTH depends on HID
drivers/hid/Kconfig:7: symbol HID is selected by I2C_HID
drivers/hid/i2c-hid/Kconfig:4: symbol I2C_HID depends on I2C
For a resolution refer to Documentation/kbuild/kconfig-language.txt
subsection "Kconfig recursive dependency limitations"
The culprit being the dependency on EXTCON in the Rockchip cdn-dp driver.
Moving to "select EXTCON" seems to fix the issue, but I'm not sure yet if that
is the correct solution.
Heiko