Subject: Re: linux-next: Tree for Jun 27 (pinctrl && !CONFIG_OF)

From: Randy Dunlap <[email-masked]>
Date: Tue, 28 Jun 2016 01:25:07 -0700

On 06/28/16 00:00, Alexander Stein wrote:
> On Monday 27 June 2016 23:36:29, Arnd Bergmann wrote:
>> On Monday, June 27, 2016 11:15:25 AM CEST Randy Dunlap wrote:
>>> On 06/26/16 23:39, Stephen Rothwell wrote:
>>>> Hi all,
>>>
>>>> Changes since 20160624:
>>> on i386, when CONFIG_OF is not enabled ...
>>> but OF_GPIO is enabled due to this in drivers/gpio/Kconfig:
>>>
>>> config OF_GPIO
>>>
>>>         def_bool y
>>>         depends on OF || COMPILE_TEST
>>>
>>> (above from commit 1e4a80640338924b9f9fd7a121ac31d08134410a
>>> from Alexander Stein <[email-masked]>)
>>>
>>>
>>> ../drivers/pinctrl/bcm/pinctrl-iproc-gpio.c:381:20: error:
>>> 'pinconf_generic_dt_node_to_map_pin' undeclared here (not in a function)
>>> ../drivers/pinctrl/bcm/pinctrl-cygnus-mux.c:739:20: error:
>>> 'pinconf_generic_dt_node_to_map_group' undeclared here (not in a
>>> function) ../drivers/pinctrl/bcm/pinctrl-nsp-gpio.c:365:20: error:
>>> 'pinconf_generic_dt_node_to_map_pin' undeclared here (not in a function)
>>>
>>> because that function is only present when CONFIG_OF is enabled.
>>>
>>>
>>> Also, why does that commit (1e4a80640338924b9f9fd7a121ac31d08134410a)
>>> not have any other S-O-B lines in it?  like whoever merged it?
>>
>> (adding Linus Walleij and Alexander Stein to Cc)
>>
>> Unfortunately, the changelog also doesn't say what triggered that
>> change. I guess there was a driver that did 'select OF_GPIO'
>> and had a dependency on COMPILE_TEST, though I don't see any
>> driver doing that in linux-next.
> 
> It was the first change of the changes done in my branch 
> https://github.com/AlexanderStein/linux/tree/gpio-compile-test
>  in order to compile test as much gpio drivers as possible. Yet, pinctrl 
> drivers were out of my scope.
> 
>> I think the commit should just be reverted, it clearly breaks
>> stuff, and whatever needs it can be fixed in a better way.
> 
> Why not depend PINCTRL_IPROC_GPIO on CONFIG_OF as Randy stated 
> pinconf_generic_dt_node_to_map_pin and friends are only present if CONFIG_OF 
> is enabled. Depending on OF_GPIO only is enough under the assumption a) you 
> made below.
> Also what about providing dummy implementation for those missing function in 
> case CONFIG_OF is disabled, my preference as more code can be compile tested.

IMO we shouldn't have to make function stubs just for COMPILE_TEST.

>> Specifically, we have three ways that the OF_GPIO symbol
>> is used:
>>
>> a) it is implicitly enabled when both GPIOLIB and OF are turned on
> 
> or if COMPILE_TEST is enabled
> 
> I think a problem in this and possibly other cases is that COMPILE_TEST 
> loosens the Kconfig dependencies to some degree. How to proceed? Allow compile 
> testing drivers only if some optional settings are enabled?

-- 
~Randy