2018-04-04 05:35:32

by Mika Penttilä

[permalink] [raw]
Subject: [REGRESSION][BISECTED] i.MX6 pinctrl hogs stopped working

Hi!

Reverting this made the hogs on a i.MX6 board work again. :


commit b89405b6102fcc3746f43697b826028caa94c823
Author: Richard Fitzgerald <[email protected]>
Date: Wed Feb 28 15:53:06 2018 +0000

pinctrl: devicetree: Fix dt_to_map_one_config handling of hogs



--Mika



2018-04-10 10:25:40

by Richard Fitzgerald

[permalink] [raw]
Subject: Re: [REGRESSION][BISECTED] i.MX6 pinctrl hogs stopped working

On 04/04/18 06:33, Mika Penttilä wrote:
> Hi!
>
> Reverting this made the hogs on a i.MX6 board work again. :
>
>
> commit b89405b6102fcc3746f43697b826028caa94c823
> Author: Richard Fitzgerald <[email protected]>
> Date: Wed Feb 28 15:53:06 2018 +0000
>
> pinctrl: devicetree: Fix dt_to_map_one_config handling of hogs
>
>
>
> --Mika
>

I think you should check whether the bug is with the i.MX6 driver
relying on the previous buggy behaviour of pinctrl. I haven't got
i.MX6 hardware to test myself.

The bug I fixed in that patch was that when pinctrl is probing a
pinctrl driver it would try to apply all the pinctrl settings
listed in a dt node to the pinctrl driver it is probing instead
of the pinctrl drivers they actually refer to. This was a bug
introduced by an earlier patch (which unfortunately I forgot to
include a fixes line reference to)

pinctrl: core: Use delayed work for hogs

So if a pinctrl driver "A" had a dependency on another pinctrl
driver "B" those dependencies wouldn't be properly created because
all the "B" pinctrl DT entries would be attempted against "A"
instead of "B". This caused failures if a pinctrl driver had a
dependency on another pinctrl driver, of if creating a pinctrl
driver that is a child of an MFD and that MFD has dependencies
on another pinctrl driver.


2018-04-10 18:37:42

by Mika Penttilä

[permalink] [raw]
Subject: Re: [REGRESSION][BISECTED] i.MX6 pinctrl hogs stopped working



On 10.04.2018 13:21, Richard Fitzgerald wrote:
> On 04/04/18 06:33, Mika Penttilä wrote:
>> Hi!
>>
>> Reverting this made the hogs on a i.MX6 board work again. :
>>
>>
>> commit b89405b6102fcc3746f43697b826028caa94c823
>> Author: Richard Fitzgerald <[email protected]>
>> Date:   Wed Feb 28 15:53:06 2018 +0000
>>
>>      pinctrl: devicetree: Fix dt_to_map_one_config handling of hogs
>>
>>
>>
>> --Mika
>>
>
> I think you should check whether the bug is with the i.MX6 driver
> relying on the previous buggy behaviour of pinctrl. I haven't got
> i.MX6 hardware to test myself.
>
> The bug I fixed in that patch was that when pinctrl is probing a
> pinctrl driver it would try to apply all the pinctrl settings
> listed in a dt node to the pinctrl driver it is probing instead
> of the pinctrl drivers they actually refer to. This was a bug
> introduced by an earlier patch (which unfortunately I forgot to
> include a fixes line reference to)
>
>   pinctrl: core: Use delayed work for hogs
>
> So if a pinctrl driver "A" had a dependency on another pinctrl
> driver "B" those dependencies wouldn't be properly created because
> all the "B" pinctrl DT entries would be attempted against "A"
> instead of "B". This caused failures if a pinctrl driver had a
> dependency on another pinctrl driver, of if creating a pinctrl
> driver that is a child of an MFD and that MFD has dependencies
> on another pinctrl driver.
>

Hard to say, but the kernel/dts has worked ok for 3+ years, from 3.17 until 4.17-rc. Nothing fancy, just normal hogs, in two groups.
Can send you relevant pieces of DT if interested.

--Mika


2018-04-18 15:58:51

by Richard Fitzgerald

[permalink] [raw]
Subject: Re: [REGRESSION][BISECTED] i.MX6 pinctrl hogs stopped working

On 10/04/18 19:33, Mika Penttilä wrote:
>
>
> On 10.04.2018 13:21, Richard Fitzgerald wrote:
>> On 04/04/18 06:33, Mika Penttilä wrote:
>>> Hi!
>>>
>>> Reverting this made the hogs on a i.MX6 board work again. :
>>>
>>>
>>> commit b89405b6102fcc3746f43697b826028caa94c823
>>> Author: Richard Fitzgerald <[email protected]>
>>> Date:   Wed Feb 28 15:53:06 2018 +0000
>>>
>>>      pinctrl: devicetree: Fix dt_to_map_one_config handling of hogs
>>>
>>>
>>>
>>> --Mika
>>>
>>
>> I think you should check whether the bug is with the i.MX6 driver
>> relying on the previous buggy behaviour of pinctrl. I haven't got
>> i.MX6 hardware to test myself.
>>
>> The bug I fixed in that patch was that when pinctrl is probing a
>> pinctrl driver it would try to apply all the pinctrl settings
>> listed in a dt node to the pinctrl driver it is probing instead
>> of the pinctrl drivers they actually refer to. This was a bug
>> introduced by an earlier patch (which unfortunately I forgot to
>> include a fixes line reference to)
>>
>>   pinctrl: core: Use delayed work for hogs
>>
>> So if a pinctrl driver "A" had a dependency on another pinctrl
>> driver "B" those dependencies wouldn't be properly created because
>> all the "B" pinctrl DT entries would be attempted against "A"
>> instead of "B". This caused failures if a pinctrl driver had a
>> dependency on another pinctrl driver, of if creating a pinctrl
>> driver that is a child of an MFD and that MFD has dependencies
>> on another pinctrl driver.
>>
>
> Hard to say, but the kernel/dts has worked ok for 3+ years, from 3.17 until 4.17-rc. Nothing fancy, just normal hogs, in two groups.
> Can send you relevant pieces of DT if interested.
>
> --Mika
>

Tell me where in the kernel tree the the dts files and the source for
the pinctrl driver that uses them and which dts node, and I will look
at what the driver is doing.


2018-04-27 09:14:50

by Richard Fitzgerald

[permalink] [raw]
Subject: Re: [REGRESSION][BISECTED] i.MX6 pinctrl hogs stopped working

On 17/04/18 09:50, Richard Fitzgerald wrote:
> On 10/04/18 19:33, Mika Penttilä wrote:
>>
>>
>> On 10.04.2018 13:21, Richard Fitzgerald wrote:
>>> On 04/04/18 06:33, Mika Penttilä wrote:
>>>> Hi!
>>>>
>>>> Reverting this made the hogs on a i.MX6 board work again. :
>>>>
>>>>
>>>> commit b89405b6102fcc3746f43697b826028caa94c823
>>>> Author: Richard Fitzgerald <[email protected]>
>>>> Date:   Wed Feb 28 15:53:06 2018 +0000
>>>>
>>>>       pinctrl: devicetree: Fix dt_to_map_one_config handling of hogs
>>>>
>>>>
>>>>
>>>> --Mika
>>>>
>>>
>>> I think you should check whether the bug is with the i.MX6 driver
>>> relying on the previous buggy behaviour of pinctrl. I haven't got
>>> i.MX6 hardware to test myself.
>>>
>>> The bug I fixed in that patch was that when pinctrl is probing a
>>> pinctrl driver it would try to apply all the pinctrl settings
>>> listed in a dt node to the pinctrl driver it is probing instead
>>> of the pinctrl drivers they actually refer to. This was a bug
>>> introduced by an earlier patch (which unfortunately I forgot to
>>> include a fixes line reference to)
>>>
>>>    pinctrl: core: Use delayed work for hogs
>>>
>>> So if a pinctrl driver "A" had a dependency on another pinctrl
>>> driver "B" those dependencies wouldn't be properly created because
>>> all the "B" pinctrl DT entries would be attempted against "A"
>>> instead of "B". This caused failures if a pinctrl driver had a
>>> dependency on another pinctrl driver, of if creating a pinctrl
>>> driver that is a child of an MFD and that MFD has dependencies
>>> on another pinctrl driver.
>>>
>>
>> Hard to say, but the kernel/dts has worked ok for 3+ years, from 3.17
>> until 4.17-rc. Nothing fancy, just normal hogs, in two groups.
>> Can send you relevant pieces of DT if interested.
>>
>> --Mika
>>
>
> Tell me where in the kernel tree the the dts files and the source for
> the pinctrl driver that uses them and which dts node, and I will look
> at what the driver is doing.

Hi,

Sorry, I have been very busy and haven't had time to look at the i.MX6
driver yet.