[PATCH v3 1/2] drm/tinydrm: Move tinydrm_of_find_backlight into drm_of.c
Noralf Trønnes
noralf at tronnes.org
Tue Oct 3 14:58:56 UTC 2017
Den 02.10.2017 10.13, skrev Jani Nikula:
> On Mon, 02 Oct 2017, Daniel Vetter <daniel at ffwll.ch> wrote:
>> Also adding Jani, who looked at the backlight Kconfig mess in the past.
> I've even sent patches to fix some of the dependency mess, but the
> problem is social not technical. The problem is that people think
> "select" is more convenient than "depends" because they can just enable
> a config that way, while "depends" would require finding and enabling
> all the dependencies before the menu option even shows up.
>
> I don't deny, that's annoying. But it's also abuse of select, see
> Documentation/kbuild/kconfig-language.txt:
>
> Note:
> select should be used with care. select will force
> a symbol to a value without visiting the dependencies.
> By abusing select you are able to select a symbol FOO even
> if FOO depends on BAR that is not set.
> In general use select only for non-visible symbols
> (no prompts anywhere) and for symbols with no dependencies.
> That will limit the usefulness but on the other hand avoid
> the illegal configurations all over.
>
> The real fix would be making finding and enabling dependencies
> recursively more convenient, but I don't see that happening anytime
> soon.
If we don't select BACKLIGHT in drivers, we can end up with CONFIG_DRM=y
and CONFIG_BACKLIGHT_CLASS_DEVICE=m.
So we can either do:
menuconfig DRM
depends on (BACKLIGHT_CLASS_DEVICE || BACKLIGHT_CLASS_DEVICE=n)
Or we can:
-#ifdef CONFIG_OF
+#if IS_ENABLED(CONFIG_OF) && IS_REACHABLE(CONFIG_BACKLIGHT_CLASS_DEVICE)
struct backlight_device *of_find_backlight_by_node(struct device_node
*node);
#else
static inline struct backlight_device *
Using the second one it won't be obvious to users why backlight doesn't
work,
they have after all enabled backlight (but as module and DRM builtin).
So I suppose the first one is preferred.
What effect will such a change have on an existing configuration where
DRM=y and BACKLIGHT_CLASS_DEVICE=m? Will DRM become a module or will it
be disabled?
Noralf.
More information about the dri-devel
mailing list