Messages in this thread | | | From | Linus Walleij <> | Date | Tue, 15 Nov 2016 07:52:50 +0100 | Subject | Re: [PATCH 1/5] pinctrl: core: Use delayed work for hogs |
| |
On Tue, Nov 15, 2016 at 1:47 AM, Tony Lindgren <tony@atomide.com> wrote:
> 8< -------------------------------- > From tony Mon Sep 17 00:00:00 2001 > From: Tony Lindgren <tony@atomide.com> > Date: Tue, 25 Oct 2016 08:33:35 -0700 > Subject: [PATCH] pinctrl: core: Use delayed work for hogs > > 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 late init. This is > needed to be able to add pinctrl generic helper functions that expect > to know struct pinctrl_dev handle. Note that we now need to call > create_pinctrl() directly as we don't want to add the pin controller > to the list of controllers until the hogs are claimed. We also need > to pass the pinctrl_dev to the device tree parser functions as they > otherwise won't find the right controller at this point. > > Signed-off-by: Tony Lindgren <tony@atomide.com>
This looks a lot better!
So if I understand correctly, we can guarantee that the delayed work will not execute until the device driver probe() has finished, and it *will* execute immediately after that?
So: - Device driver probes - Delayed work is called - Next initcall
I'm not 100% familiar with how delayed work works... :/
Yours, Linus Walleij
| |