• Arnd Bergmann's avatar
    drm/rockchip: fix Kconfig dependencies · b9670ca2
    Arnd Bergmann authored
    A bug that I had fixed earlier just came back, with CONFIG_EXTCON=m,
    the rockchip drm driver will fail to link:
    
    drivers/gpu/drm/rockchip/cdn-dp-core.o: In function `cdn_dp_get_port_lanes':
    cdn-dp-core.c:(.text.cdn_dp_get_port_lanes+0x30): undefined reference to `extcon_get_state'
    cdn-dp-core.c:(.text.cdn_dp_get_port_lanes+0x6c): undefined reference to `extcon_get_property'
    drivers/gpu/drm/rockchip/cdn-dp-core.o: In function `cdn_dp_check_sink_connection':
    cdn-dp-core.c:(.text.cdn_dp_check_sink_connection+0x80): undefined reference to `extcon_get_state'
    drivers/gpu/drm/rockchip/cdn-dp-core.o: In function `cdn_dp_enable':
    cdn-dp-core.c:(.text.cdn_dp_enable+0x748): undefined reference to `extcon_get_property'
    
    The problem is that that the sub-drivers are now all linked into the
    main rockchip drm module, which breaks all the Kconfig dependencies
    that are specified in the options for those sub-drivers.
    
    This clarifies the dependency to ensure that we can only turn on the DP
    driver when EXTCON is reachable. As the 'select' statements can now
    cause additional options to become built-in when they should be
    loadable modules, I'm moving those into the main driver config option.
    The dependency on DRM_ROCKCHIP can be reduced into a single 'if'
    statement here for brevity, but this has no functional effect.
    
    Fixes: b6705157 ("drm/rockchip: add extcon dependency for DP")
    Fixes: 8820b68b ("drm/rockchip: Refactor the component match logic.")
    Link: https://patchwork.kernel.org/patch/9648761/Acked-by: default avatarGuenter Roeck <groeck@chromium.org>
    Tested-by: default avatarJeffy Chen <jeffy.chen@rock-chips.com>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarMark Yao <mark.yao@rock-chips.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20170721211214.3386387-1-arnd@arndb.de
    b9670ca2
Kconfig 2.02 KB