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

From: Richard Fitzgerald
Date: Tue Apr 10 2018 - 06:21:39 EST


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.