Kconfig symbols should not declare dependency on DRM_DISPLAY_HELPER.
Move all parts of DRM_DISPLAY_HELPER to an if DRM_DISPLAY_HELPER block.

It is not possible to make those symbols select DRM_DISPLAY_HELPER
because of the link issues when a part of the helper is selected to be
built-in, while other part is selected to be as module. In such a case
the modular part doesn't get built at all, leading to undefined symbols.

The only viable alternative is to split drm_display_helper.ko into
several small modules, each of them having their own dependencies.

Suggested-by: Maxime Ripard <mrip...@kernel.org>
Signed-off-by: Dmitry Baryshkov <dmitry.barysh...@linaro.org>
---
 drivers/gpu/drm/display/Kconfig | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/display/Kconfig b/drivers/gpu/drm/display/Kconfig
index a2e42014ffe0..9c2da1e48b75 100644
--- a/drivers/gpu/drm/display/Kconfig
+++ b/drivers/gpu/drm/display/Kconfig
@@ -1,19 +1,20 @@
 # SPDX-License-Identifier: MIT
 
+config DRM_DISPLAY_DP_AUX_BUS
+       tristate
+       depends on DRM
+       depends on OF || COMPILE_TEST
+
 config DRM_DISPLAY_HELPER
        tristate
        depends on DRM
        help
          DRM helpers for display adapters.
 
-config DRM_DISPLAY_DP_AUX_BUS
-       tristate
-       depends on DRM
-       depends on OF || COMPILE_TEST
+if DRM_DISPLAY_HELPER
 
 config DRM_DISPLAY_DP_AUX_CEC
        bool "Enable DisplayPort CEC-Tunneling-over-AUX HDMI support"
-       depends on DRM && DRM_DISPLAY_HELPER
        select DRM_DISPLAY_DP_HELPER
        select CEC_CORE
        help
@@ -25,7 +26,6 @@ config DRM_DISPLAY_DP_AUX_CEC
 
 config DRM_DISPLAY_DP_AUX_CHARDEV
        bool "DRM DP AUX Interface"
-       depends on DRM && DRM_DISPLAY_HELPER
        select DRM_DISPLAY_DP_HELPER
        help
          Choose this option to enable a /dev/drm_dp_auxN node that allows to
@@ -34,7 +34,6 @@ config DRM_DISPLAY_DP_AUX_CHARDEV
 
 config DRM_DISPLAY_DP_HELPER
        bool
-       depends on DRM_DISPLAY_HELPER
        help
          DRM display helpers for DisplayPort.
 
@@ -61,25 +60,23 @@ config DRM_DISPLAY_DP_TUNNEL_STATE_DEBUG
 
 config DRM_DISPLAY_DSC_HELPER
        bool
-       depends on DRM_DISPLAY_HELPER
        help
          DRM display helpers for VESA DSC (used by DSI and DisplayPort).
 
 config DRM_DISPLAY_HDCP_HELPER
        bool
-       depends on DRM_DISPLAY_HELPER
        help
          DRM display helpers for HDCP.
 
 config DRM_DISPLAY_HDMI_HELPER
        bool
-       depends on DRM_DISPLAY_HELPER
        help
          DRM display helpers for HDMI.
 
 config DRM_DISPLAY_HDMI_STATE_HELPER
        bool
-       depends on DRM_DISPLAY_HELPER
        select DRM_DISPLAY_HDMI_HELPER
        help
          DRM KMS state helpers for HDMI.
+
+endif # DRM_DISPLAY_HELPER

-- 
2.39.2

Reply via email to