Thread (18 messages) 18 messages, 2 authors, 2016-12-02

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

From: Tony Lindgren <hidden>
Date: 2016-11-15 15:41:34
Also in: linux-gpio, linux-omap, lkml

* Linus Walleij [off-list ref] [161114 22:53]:
On Tue, Nov 15, 2016 at 1:47 AM, Tony Lindgren [off-list ref] wrote:
quoted
8< --------------------------------
From tony Mon Sep 17 00:00:00 2001
From: Tony Lindgren <redacted>
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 <redacted>
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... :/
Yeah well the delayed work gets scheduled for next jiffy but may
be pre-empted as it runs in process context.

So in the worst case it could that we still may need to fix few
drivers to support -EPROBE_DEFER. I wonder if we should check for
hogs in probe already and only defer if hogs are defined?

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help