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

From: Tony Lindgren
Date: Fri Nov 11 2016 - 15:56:27 EST


* Tony Lindgren <tony@xxxxxxxxxxx> [161111 12:32]:
> * Tony Lindgren <tony@xxxxxxxxxxx> [161111 12:27]:
> > * Linus Walleij <linus.walleij@xxxxxxxxxx> [161111 12:17]:
> > > On Tue, Oct 25, 2016 at 11:02 PM, Tony Lindgren <tony@xxxxxxxxxxx> wrote:
> > >
> > > > Having the pin control framework call pin controller functions
> > > > before it's probe has finished is not nice as the pin controller
> > > > device driver does not yet have struct pinctrl_dev handle.
> > > >
> > > > Let's fix this issue by adding deferred work for hogs. This is
> > > > needed to be able to add pinctrl generic helper functions.
> > > >
> > > > Note that the pinctrl functions already take care of the necessary
> > > > locking.
> > > >
> > > > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
> > >
> > > I don't see why this is necessary?
> >
> > It's needed because the pin controller driver has not yet
> > finished it's probe at this point. We end up calling functions
> > in the device driver where no struct pinctrl_dev is yet known
> > to the driver. Asking a device driver to do something before
> > it's probe is done does not quite follow the Linux driver model :)
>
> To clarify, that's an issue with multiple instances of the same
> driver probing as there's no static pointer to driver specific
> data.

To clarify even more, the following patches in this series need
struct pinctrl_dev to pass to the generic functions :)

Tony