drm/rockchip: Add missing DRM_BRIDGE_CONNECTOR selects
Subsystems (4)
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
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.
--- drivers/gpu/drm/rockchip/Kconfig | 1 + 1 file changed, 1 insertion(+)
drivers/gpu/drm/rockchip/Kconfig +1 -0
@@ -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
PATCH 2/2 drm/rockchip: rk3066_hdmi: Add missing Kconfig selects
In reply to Igor Paunovicrk3066_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.
--- drivers/gpu/drm/rockchip/Kconfig | 2 ++ 1 file changed, 2 insertions(+)
drivers/gpu/drm/rockchip/Kconfig +2 -0
@@ -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
Quoted 5 lines · Igor Paunovic
While testing the dw-dp v11 series I noticed that
ROCKCHIP_DW_DPdoes not selectDRM_BRIDGE_CONNECTORalthoughdw_dp-rockchip.ccallsdrm_bridge_connector_init(), and Sebastian suggested handling this independently of that series [1].
Quoted 8 lines
The
ROCKCHIP_DW_DPgap 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 selectsDRM_BRIDGE_CONNECTORmasks 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: d72aa5cf045a69d5fd433cde5dd4e113d9558fd1Best regards,
Signature · 1 line
Heiko Stuebner <[email protected]>