Re: [PATCH 1/5] pinctrl: core: Use delayed work for hogs

From: Tony Lindgren
Date: Wed Jan 11 2017 - 11:28:18 EST


* Linus Walleij <linus.walleij@xxxxxxxxxx> [170111 07:34]:
> On Tue, Jan 10, 2017 at 8:19 PM, Tony Lindgren <tony@xxxxxxxxxxx> wrote:
>
> > Below is an experimental fix to intorduce pinctrl_start() that I've
> > tested with pinctrl-single. Then we should probably make all pin controller
> > drivers call pinctrl_start() to properly fix the issue of struct pinctrl_dev
> > handle not being initialized before driver functions are called.
>
> Hm I guess that could work, but can we keep pinctrl_register() with the old
> semantics and add a separate pinctrl_register_and_defer()
> for those who just wanna start it later by a separate call?
>
> Then we don't need any special flags.

OK I'll take a look.

> > Or do you guys have any better ideas?
>
> Not really. So you mean revert the previous patch and apply something
> like this instead?

Let me first take a look to see if we can fix it by making drivers using
GENERIC_PINCTRL_GROUPS or GENERIC_PINMUX_FUNCTIONS register with
pinctrl_register_and_defer(). I'll post a patch for that today.

Then maybe for v4.12 we can attempt to move all pin controller drivers
to using it so we can fix the problem for good.

Regards,

Tony