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

From: Arnd Bergmann <[email-masked]>
Date: Tue, 28 Jun 2016 10:37:52 +0200

On Tuesday, June 28, 2016 9:00:47 AM CEST 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 see

> > 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.
>
> > 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?

I think we can start by reverting your patch: for compile-testing we can
always enable CONFIG_OF these days, which will also turn on OF_GPIO.

Compile-testing drivers that need OF_GPIO while OF is disabled makes
no sense to me, it's not a configuration that anybody can ever use
and it adds no build coverage.

I think we should also drop all 'select OF_GPIO' statements, AFAICT
we have just proven that they are all redundant because they would
have otherwise broken things. This should be a separate cleanup patch.

	Arnd