Subject: Re: linux-next: build failure after merge of the pinctrl tree

From: Stephen Warren <[email-masked]>
Date: Tue, 10 Apr 2012 09:12:54 -0600

On 04/10/2012 01:42 AM, Linus Walleij wrote:
> On Wed, Apr 4, 2012 at 5:43 AM, Stephen Warren <[email-masked]> wrote:
>> On 04/03/2012 08:44 PM, Stephen Rothwell wrote:
>>> Hi Linus,
>>>
>>> After merging the pinctrl tree, today's linux-next build (powerpc
>>> ppc64_defconfig) failed like this:
>>>
>>> drivers/pinctrl/devicetree.c: In function 'dt_free_map':
>>> drivers/pinctrl/devicetree.c:44:42: error: dereferencing pointer to
>>> incomplete type drivers/pinctrl/devicetree.c:45:6: error:
>>> dereferencing pointer to incomplete type
>>> drivers/pinctrl/devicetree.c: In function 'dt_to_map_one_config':
>>> drivers/pinctrl/devicetree.c:140:21: error: dereferencing pointer
>>> to incomplete type drivers/pinctrl/devicetree.c:141:10: error:
>>> dereferencing pointer to incomplete type
>>> drivers/pinctrl/devicetree.c:146:11: error: dereferencing pointer
>>> to incomplete type
>>
>> This doesn't repro for me with tegra_defconfig, which has both
>> CONFIG_PINCTRL and CONFIG_OF enabled.
>>
>> I believe this happens because of the following in
>> drivers/pinctrl/Makefile:
>>
>> obj-$(CONFIG_OF)                += devicetree.o
>>
>> On ppc64, CONFIG_OF is probably true, yet the rest of PINCTRL isn't
>> enabled, hence the headers that are included probably don't declare
>> all the types needed to compile that file.
>>
>> In fact, the file shouldn't be compiled, since it's not needed if
>> !CONFIG_PINCTRL. So perhaps the Makefile should be more like:
>>
>> ifeq ($(CONFIG_OF),y)
>> obj-$(CONFIG_PINCTRL)           += devicetree.o
>> endif
> 
> Easiest fixed with a new Kconfig like CONFIG_PINCTRL_OF that
> depend on both right?
> 
> I'll cook a patch.

I don't think so; why wouldn't pinctrl automatically have DT support
when both pinctrl and OF are enabled. BTW, I already posted a patch to
fix this last week.