Skip to contentSkip to conversation

drm/rockchip: Add missing DRM_BRIDGE_CONNECTOR selects

PATCH Applied Igor Paunovic 2 participants 4 messages Aug 13 – Sep 3

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

cover drm/rockchip: Add missing DRM_BRIDGE_CONNECTOR selects

While testing the dw-dp v11 series I noticed that ROCKCHIP_DW_DP does not select DRM_BRIDGE_CONNECTOR although dw_dp-rockchip.c calls drm_bridge_connector_init(), and Sebastian suggested handling this independently of that series [1].

The ROCKCHIP_DW_DP gap was in fact found before: Marius Dinu posted the same one-liner in March [2] and dropped it when the failure stopped reproducing in his build. The failure is configuration-dependent - any other enabled option that selects DRM_BRIDGE_CONNECTOR masks it - so it can come and go with unrelated config changes. It still reproduces on current drm-misc-next.

A sweep over drivers/gpu/drm/rockchip found eight callers of drm_bridge_connector_init(). Five options already select it, ROCKCHIP_INNO_HDMI gets it through its DRM_INNO_HDMI core option, and two are left with a latent link failure: ROCKCHIP_DW_DP and ROCKCHIP_RK3066_HDMI. The rk3066 case additionally needs DRM_DISPLAY_HELPER, whose module carries the bridge-connector code.

Both failures were reproduced on drm-misc-next (d85a5e9dfb42) with an arm64 allnoconfig-based configuration enabling only DRM_ROCKCHIP plus the option in question; with the fixes applied both configurations link cleanly, and an arm64 defconfig re-run shows no new Kconfig warnings. Both issues are present in released kernels: the rk3066 one since v6.16, the dw_dp one since v6.18.

[1] https://lore.kernel.org/r/aneNCDU12OzG99UX@venus
[2] https://lore.kernel.org/r/[email protected]

Igor Paunovic (2):
drm/rockchip: dw_dp: Select DRM_BRIDGE_CONNECTOR drm/rockchip: rk3066_hdmi: Add missing Kconfig selects

 drivers/gpu/drm/rockchip/Kconfig | 3 +++
 1 file changed, 3 insertions(+)
Signature · 1 line
2.43.0
#1 lore raw

PATCH 1/2 drm/rockchip: dw_dp: Select DRM_BRIDGE_CONNECTOR

dw_dp-rockchip.c calls drm_bridge_connector_init(), but ROCKCHIP_DW_DP does not select DRM_BRIDGE_CONNECTOR. A configuration with ROCKCHIP_DW_DP as the only enabled Rockchip output option fails to link:

aarch64-linux-gnu-ld: drivers/gpu/drm/rockchip/dw_dp-rockchip.o: in function `dw_dp_rockchip_bind':
dw_dp-rockchip.c:(.text+0x1d4): undefined reference to `drm_bridge_connector_init'

Five other Rockchip encoder options that call drm_bridge_connector_init() (ROCKCHIP_ANALOGIX_DP, ROCKCHIP_CDN_DP, ROCKCHIP_DW_HDMI_QP, ROCKCHIP_LVDS, ROCKCHIP_RGB) already select it, which masks the gap in any configuration that enables one of them. ROCKCHIP_INNO_HDMI is covered through its DRM_INNO_HDMI core option.

The same change was posted by Marius Dinu in March and dropped when the failure stopped reproducing in his build. The failure is configuration-dependent - any other enabled option that selects DRM_BRIDGE_CONNECTOR hides it - and it still reproduces on current drm-misc-next with the configuration described above.

Select DRM_BRIDGE_CONNECTOR like the other users do.

Fixes d68ba7bac955 ("drm/rockchip: Add RK3588 DPTX output support")
Link https://lore.kernel.org/r/aneNCDU12OzG99UX@venus # ack to handle this apart from the dw-dp series open here
Link https://lore.kernel.org/r/[email protected] # earlier submission by Marius Dinu open here
---
 drivers/gpu/drm/rockchip/Kconfig | 1 +
 1 file changed, 1 insertion(+)
drivers/gpu/drm/rockchip/Kconfig +1 -0
index e7f49fe845ea..697c0748eeca 100644
@@ -68,6 +68,7 @@ config ROCKCHIP_CDN_DP
 
 config ROCKCHIP_DW_DP
 	bool "Rockchip specific extensions for Synopsys DW DP"
+	select DRM_BRIDGE_CONNECTOR
 	help
 	  This selects support for Rockchip SoC specific extensions
 	  to enable Synopsys DesignWare Cores based DisplayPort transmit
Signature · 1 line
2.43.0
#2 lore raw

PATCH 2/2 drm/rockchip: rk3066_hdmi: Add missing Kconfig selects

In reply to Igor Paunovic

rk3066_hdmi.c calls drm_bridge_connector_init(), but ROCKCHIP_RK3066_HDMI selects neither DRM_BRIDGE_CONNECTOR nor DRM_DISPLAY_HELPER, whose module carries the bridge-connector code. A configuration with ROCKCHIP_RK3066_HDMI as the only enabled Rockchip output option fails to link:

aarch64-linux-gnu-ld: drivers/gpu/drm/rockchip/rk3066_hdmi.o: in function `rk3066_hdmi_bind':
rk3066_hdmi.c:(.text+0x7a4): undefined reference to `drm_bridge_connector_init'
aarch64-linux-gnu-ld: drivers/gpu/drm/rockchip/rk3066_hdmi.o: in function `rk3066_hdmi_bridge_atomic_enable':
rk3066_hdmi.c:(.text+0xe74): undefined reference to `drm_atomic_helper_connector_hdmi_update_infoframes'

Select both, like ROCKCHIP_CDN_DP, ROCKCHIP_LVDS and ROCKCHIP_RGB do. DRM_BRIDGE_CONNECTOR in turn selects DRM_DISPLAY_HDMI_STATE_HELPER, which resolves the second symbol.

Fixes 57d6811e8a6d ("drm/rockchip: rk3066_hdmi: switch to drm bridge")
---
 drivers/gpu/drm/rockchip/Kconfig | 2 ++
 1 file changed, 2 insertions(+)
drivers/gpu/drm/rockchip/Kconfig +2 -0
index 697c0748eeca..4e58685f58ff 100644
@@ -146,6 +146,8 @@ config ROCKCHIP_RGB
 config ROCKCHIP_RK3066_HDMI
 	bool "Rockchip specific extensions for RK3066 HDMI"
 	depends on DRM_ROCKCHIP
+	select DRM_DISPLAY_HELPER
+	select DRM_BRIDGE_CONNECTOR
 	help
 	  This selects support for Rockchip SoC specific extensions
 	  for the RK3066 HDMI driver. If you want to enable
Signature · 1 line
2.43.0
maintainer Applied
#3 lore raw
In reply to Igor Paunovic
Quoted 5 lines · Igor Paunovic

While testing the dw-dp v11 series I noticed that ROCKCHIP_DW_DP does not select DRM_BRIDGE_CONNECTOR although dw_dp-rockchip.c calls drm_bridge_connector_init(), and Sebastian suggested handling this independently of that series [1].

Quoted 8 lines

The ROCKCHIP_DW_DP gap was in fact found before: Marius Dinu posted the same one-liner in March [2] and dropped it when the failure stopped reproducing in his build. The failure is configuration-dependent - any other enabled option that selects DRM_BRIDGE_CONNECTOR masks it - so it can come and go with unrelated config changes. It still reproduces on current drm-misc-next.

[...]

Applied, thanks!

[1/2] drm/rockchip: dw_dp: Select DRM_BRIDGE_CONNECTOR

      commit: c83e3e806d4c115f1dad9ef756db4cd91448a262
[2/2] drm/rockchip: rk3066_hdmi: Add missing Kconfig selects
      commit: d72aa5cf045a69d5fd433cde5dd4e113d9558fd1

Best regards,

Signature · 1 line
Heiko Stuebner <[email protected]>