[PATCH v2] drivers/pinctrl: grab default handles from device core
Linus Walleij
linus.walleij at linaro.org
Fri Jan 11 15:22:10 EST 2013
On Thu, Jan 10, 2013 at 11:07 PM, Stephen Warren <swarren at wwwdotorg.org> wrote:
> I see that an attempt was made to solve this problem, in the patch
> immediately preceding this one (at least, as applied in the pinctrl
> tree). However, that patch only addresses the case where the pin
> controller is being looked up in the map, and not the case when
> converting device tree to the map in the first place. The patch below
> solves this:
>
> diff --git a/drivers/pinctrl/devicetree.c b/drivers/pinctrl/devicetree.c
> index fe2d1af..fd40a11 100644
> --- a/drivers/pinctrl/devicetree.c
> +++ b/drivers/pinctrl/devicetree.c
> @@ -141,6 +141,11 @@ static int dt_to_map_one_config(struct pinctrl *p,
> const char *statename,
> pctldev = find_pinctrl_by_of_node(np_pctldev);
> if (pctldev)
> break;
> + /* Do not defer probing of hogs (circular loop) */
> + if (np_pctldev == p->dev->of_node) {
> + of_node_put(np_pctldev);
> + return -ENODEV;
> + }
> }
> of_node_put(np_pctldev);
OK I've duplicated this, will send out as patch.
Yours,
Linus Walleij
More information about the linux-arm-kernel
mailing list