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

Reply via email to