[PATCH] drm/panel: select DRM_KMS_HELPER

From: Sasha Levin

Date: Tue Sep 29 2026 - 07:49:14 EST


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 <bot@xxxxxxxxxxxx>
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 <sashal@xxxxxxxxxx>
---
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