Re: [PATCH] pinctrl: devicetree: Fix dt_to_map_one_config handling of hogs

From: Linus Walleij
Date: Fri Mar 02 2018 - 03:43:04 EST


On Wed, Feb 28, 2018 at 4:53 PM, Richard Fitzgerald
<rf@xxxxxxxxxxxxxxxxxxxxx> wrote:

> When dt_to_map_one_config() is called with a pinctrl_dev passed
> in, it should only be using this if the node being looked up
> is a hog. The code was always using the passed pinctrl_dev
> without checking whether the dt node referred to it.
>
> A pin controller can have pinctrl-n dependencies on other pin
> controllers in these cases:
>
> - the pin controller hardware is external, for example I2C, so
> needs other pin controller(s) to be setup to communicate with
> the hardware device.
>
> - it is a child of a composite MFD so its of_node is shared with
> the parent MFD and other children of that MFD. Any part of that
> MFD could have dependencies on other pin controllers.
>
> Because of this, dt_to_map_one_config() can't assume that if it
> has a pinctrl_dev passed in then the node it looks up must be
> a hog. It could be a reference to some other pin controller.
>
> Signed-off-by: Richard Fitzgerald <rf@xxxxxxxxxxxxxxxxxxxxx>

Seems correct. Also the code is a little more clear
after the patch.

Patch applied.

It'd be nice to see some testing of this, I hope linux-next is a good
testing ground.

Yours,
Linus Walleij