Re: [PATCH] drm: i915: fix build when ACPI is disabled and BACKLIGHT=m
From: Randy Dunlap
Date: Tue Apr 27 2021 - 11:33:00 EST
On 4/27/21 1:03 AM, Jani Nikula wrote:
> On Mon, 26 Apr 2021, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>> When CONFIG_DRM_I915=y, CONFIG_ACPI is not set, and
>> CONFIG_BACKLIGHT_CLASS_DEVICE=m, not due to I915 config,
>> there are build errors trying to reference backlight_device_{un}register().
>>
>> Changing the use of IS_ENABLED() to IS_REACHABLE() in intel_panel.[ch]
>> fixes this.
>
> I feel like a broken record...
Thanks! :)
I'll leave it b0rken as well.
> CONFIG_DRM_I915=y and CONFIG_BACKLIGHT_CLASS_DEVICE=m is an invalid
> configuration. The patch at hand just silently hides the problem,
> leaving you without backlight.
>
> i915 should *depend* on backlight, not select it. It would express the
> dependency without chances for invalid configuration.
>
> However, i915 alone can't depend on backlight, all users of backlight
> should depend on backlight, not select it. Otherwise, you end up with
> other configuration problems, circular dependencies and
> whatnot. Everyone should change. See also (*) why select is not a good
> idea here.
>
> I've sent patches to this effect before, got rejected, and the same
> thing gets repeated ad infinitum.
>
> Accepting this patch would stop the inflow of these reports and similar
> patches, but it does not fix the root cause. It just sweeps the problem
> under the rug.
>
>
> BR,
> Jani.
>
> (*) Documentation/kbuild/kconfig-language.rst:
>
> 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.
Yes, I'm well aware of that.
ta.
--
~Randy