Since the panel_bridge code moved into drm_panel.c, any config with DRM built in but without the KMS helpers fails to link, for example arc haps_hs_smp_defconfig with allnoconfig and the kselftest fragment:
arc-elf32-ld: drivers/gpu/drm/drm_panel.o:(.rodata+0x28): undefined reference to `drm_atomic_helper_bridge_duplicate_state' arc-elf32-ld: drivers/gpu/drm/drm_panel.o:(.rodata+0x2c): undefined reference to `drm_atomic_helper_bridge_destroy_state' ... With DRM=m, modpost fails the same way: ERROR: modpost: drivers/gpu/drm/drm_panel.ko: symbol 'drm_atomic_helper_bridge_duplicate_state' undefined! The panel_bridge used to live in bridge/panel.c, which was part of drm_kms_helper and was therefore only built when DRM_KMS_HELPER was enabled. drm_panel.c is built for DRM_PANEL instead, which DRM_PANEL_BRIDGE selects whenever DRM_BRIDGE is set, and DRM_BRIDGE is enabled for every DRM config. Nothing on that path selects DRM_KMS_HELPER, so the bridge and connector helpers used by the moved code can be missing. The panel_bridge code in drm_panel.c is built unconditionally, so make DRM_PANEL select DRM_KMS_HELPER. Reported-by: kernelci.org bot <[email protected]> Closes: https://d.kernelci.org/i/maestro:9ed7f4b210fa7c1d3bb109b0fcd62285e98c5b81 Fixes: aa8a8c7e4641 ("drm/bridge: panel: move all code to drm_panel.c") Assisted-by: LLM Signed-off-by: Sasha Levin <[email protected]> --- drivers/gpu/drm/panel/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index 0a79a0558101b..53a1fc2913fee 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -2,6 +2,7 @@ config DRM_PANEL tristate depends on DRM + select DRM_KMS_HELPER help Panel registration and lookup framework. -- 2.53.0
