Re: [PATCH] drm: nouveau: fix build when LEDS_CLASS=m

From: Ilia Mirkin
Date: Wed Jan 04 2017 - 22:29:35 EST


On Wed, Jan 4, 2017 at 10:17 PM, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
> On 01/04/17 19:09, Ilia Mirkin wrote:
>> On Wed, Jan 4, 2017 at 9:52 PM, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>>> On 01/04/17 06:25, Ilia Mirkin wrote:
>>>> On Wed, Jan 4, 2017 at 3:45 AM, Daniel Vetter <daniel@xxxxxxxx> wrote:
>>>>> On Sun, Jan 01, 2017 at 04:20:53PM -0800, Randy Dunlap wrote:
>>>>>> From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>>>>>>
>>>>>> Fix build errors in nouveau driver when CONFIG_LEDS_CLASS=m and
>>>>>> CONFIG_DRM_NOUVEAU=y.
>>>>>> If LEDS_CLASS is enabled, DRM_NOUVEAU is restricted to the same
>>>>>> kconfig value as LEDS_CLASS.
>>>>>>
>>>>>> drivers/built-in.o: In function `nouveau_do_suspend':
>>>>>> nouveau_drm.c:(.text+0x2030b1): undefined reference to `nouveau_led_suspend'
>>>>>> drivers/built-in.o: In function `nouveau_do_resume':
>>>>>> nouveau_drm.c:(.text+0x2034ca): undefined reference to `nouveau_led_resume'
>>>>>> drivers/built-in.o: In function `nouveau_drm_unload':
>>>>>> nouveau_drm.c:(.text+0x203a15): undefined reference to `nouveau_led_fini'
>>>>>> drivers/built-in.o: In function `nouveau_drm_load':
>>>>>> nouveau_drm.c:(.text+0x204423): undefined reference to `nouveau_led_init'
>>>>>>
>>>>>> BTW, this line in Kbuild:
>>>>>> nouveau-$(CONFIG_LEDS_CLASS) += nouveau_led.o
>>>>>> does nothing when CONFIG_LEDS_CLASS=m and CONFIG_DRM_NOUVEAU=y.
>>>>>>
>>>>>> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>>>>>> Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx>
>>>>>> Cc: Martin Peres <martin.peres@xxxxxxx>
>>>>>> Cc: Ben Skeggs <bskeggs@xxxxxxxxxx>
>>>>>
>>>>> Thrown into drm-misc, thanks.
>>>>> -Daniel
>>>>
>>>> Wasn't there already a different solution from Martin for this, using
>>>> IS_REACHABLE, instead of adding a dependency in Kconfig?
>>>
>>> nouveau_led.h contains a few lines that are bounded by
>>> #if IS_ENABLED(CONFIG_LEDS_CLASS)
>>>
>>> but that's not sufficient.
>>>
>>> Is there another patch?
>>
>> https://lists.freedesktop.org/archives/nouveau/2016-December/026744.html
>>
>> Not sure why it's not upstream yet. I guess Ben missed it?
>
> Ok, if you all are OK with a slightly crippled driver.

The LED functionality is to allow adjusting the light inside the case
of the high-end GTX TITAN boards. I think people will be fine with
that level of crippled for when they build nouveau in and the leds
class as a module.

-ilia