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

From: Richard Fitzgerald
Date: Fri Apr 27 2018 - 05:13:36 EST


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 <rf@xxxxxxxxxxxxxxxxxxxxx>
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.