lkml.org 
[lkml]   [2020]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] drm/drm_panel: fix export of drm_panel_of_backlight, try #3
    Date
    Making this IS_REACHABLE() was still wrong, as that just determines
    whether the lower-level backlight code would be reachable from the panel
    driver. However, with CONFIG_DRM=y and CONFIG_BACKLIGHT_CLASS_DEVICE=m,
    the drm_panel_of_backlight is left out of drm_panel.o but the condition
    tells the driver that it is there, leading to multiple link errors such as

    ERROR: "drm_panel_of_backlight" [drivers/gpu/drm/panel/panel-sitronix-st7701.ko] undefined!
    ERROR: "drm_panel_of_backlight" [drivers/gpu/drm/panel/panel-sharp-ls043t1le01.ko] undefined!
    ERROR: "drm_panel_of_backlight" [drivers/gpu/drm/panel/panel-seiko-43wvf1g.ko] undefined!
    ERROR: "drm_panel_of_backlight" [drivers/gpu/drm/panel/panel-ronbo-rb070d30.ko] undefined!
    ERROR: "drm_panel_of_backlight" [drivers/gpu/drm/panel/panel-rocktech-jh057n00900.ko] undefined!
    ERROR: "drm_panel_of_backlight" [drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.ko] undefined!
    ERROR: "drm_panel_of_backlight" [drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.ko] undefined!

    Change the condition to check for whether the function was actually part
    of the drm module. This version of the patch survived a few hundred
    randconfig builds, so I have a good feeling this might be the last
    one for the export.

    Fixes: 4a34a9dcec94 ("drm/drm_panel: Fix EXPORT of drm_panel_of_backlight() one more time")
    Fixes: 907aa265fde6 ("drm/drm_panel: fix EXPORT of drm_panel_of_backlight")
    Fixes: 152dbdeab1b2 ("drm/panel: add backlight support")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    ---
    include/drm/drm_panel.h | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h
    index 121f7aabccd1..6193cb555acc 100644
    --- a/include/drm/drm_panel.h
    +++ b/include/drm/drm_panel.h
    @@ -198,7 +198,8 @@ static inline struct drm_panel *of_drm_find_panel(const struct device_node *np)
    }
    #endif

    -#if IS_REACHABLE(CONFIG_BACKLIGHT_CLASS_DEVICE)
    +#if IS_ENABLED(CONFIG_DRM_PANEL) && (IS_BUILTIN(CONFIG_BACKLIGHT_CLASS_DEVICE) || \
    + (IS_MODULE(CONFIG_DRM) && IS_MODULE(CONFIG_BACKLIGHT_CLASS_DEVICE)))
    int drm_panel_of_backlight(struct drm_panel *panel);
    #else
    static inline int drm_panel_of_backlight(struct drm_panel *panel)
    --
    2.20.0
    \
     
     \ /
      Last update: 2020-01-07 21:34    [W:7.047 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site