[PATCH v3 1/2] drm/tinydrm: Move tinydrm_of_find_backlight into drm_of.c
Noralf Trønnes
noralf at tronnes.org
Fri Oct 6 18:04:59 UTC 2017
Den 05.10.2017 05.53, skrev Meghana Madhyastha:
> On Tue, Oct 03, 2017 at 07:38:29PM +0200, Noralf Trønnes wrote:
>> Den 03.10.2017 18.02, skrev Noralf Trønnes:
>>> Den 03.10.2017 16.58, skrev Noralf Trønnes:
>>>> 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)
>>>>
>>> No, this was the thing that didn't work:
>>>
>>> drivers/gpu/drm/Kconfig:7: symbol DRM depends on
>>> BACKLIGHT_CLASS_DEVICE
>>> drivers/video/backlight/Kconfig:158: symbol BACKLIGHT_CLASS_DEVICE is
>>> selected by DRM_RADEON
>>> drivers/gpu/drm/Kconfig:164: symbol DRM_RADEON depends on DRM
>>>
>> How about putting the dependency in the driver combined with IS_REACHABLE,
>> but not in backlight.h as I first proposed, that won't work:
>>
>> menuconfig DRM_TINYDRM
>> - select BACKLIGHT_LCD_SUPPORT
>> - select BACKLIGHT_CLASS_DEVICE
>> + depends on (BACKLIGHT_CLASS_DEVICE || BACKLIGHT_CLASS_DEVICE=n)
>>
>>
>> struct backlight_device *drm_of_find_backlight(struct device *dev)
>> {
>> struct backlight_device *backlight;
>> struct device_node *np;
>>
>> if (!IS_REACHABLE(CONFIG_BACKLIGHT_CLASS_DEVICE))
>> return NULL;
>> [...]
>> }
>>
>> But the IS_REACHABLE doesn't feel right.
>>
>> Maybe the problem is putting a function in DRM that really doesn't
>> belong there. How about calling it of_find_backlight() instead and
>> put it in backlight.[hc]?
> Wouldn't it make more sense to put the function in DRM ? Because all of
> the callers are located in DRM and so I'd think it makes more sense to
> put it in DRM along with the other _of functions.
I don't think it matters where the callers are, but the fact that the
functions
are all about backlight and nothing about DRM, except the error messages.
I've made a suggestion in the last version where we have backlight
maintainer attention.
Noralf.
>> Noralf.
>>
>>>> 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 *
> I have one question. Why isn't your previous solution a good solution?
> i.e IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE) which was part of v7
>
>>>> 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?
> Why would it be disabled in this case ?
>
> Thanks and regards,
> Meghana
>
>>>> Noralf.
>>>>
>>>> _______________________________________________
>>>> dri-devel mailing list
>>>> dri-devel at lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>>>>
>>> _______________________________________________
>>> dri-devel mailing list
>>> dri-devel at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>>>
More information about the dri-devel
mailing list