From: Rob Herring <robh@kernel.org>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Rob Herring <robh+dt@kernel.org>,
Stephen Warren <swarren@wwwdotorg.org>,
Javier Martinez Canillas <javier@osg.samsung.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Mark Brown <broonie@kernel.org>,
Thierry Reding <thierry.reding@gmail.com>,
Alan Stern <stern@rowland.harvard.edu>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Linus Walleij <linus.walleij@linaro.org>,
linux-acpi@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH v6 04/22] of: add function to allow probing a device from a OF node
Date: Sat, 24 Oct 2015 15:09:06 -0500 [thread overview]
Message-ID: <562BE562.8090704@kernel.org> (raw)
In-Reply-To: <8510008.IC14Fu2Aos@vostro.rjw.lan>
On 10/24/2015 08:55 AM, Rafael J. Wysocki wrote:
> On Thursday, October 22, 2015 03:03:37 PM Tomeu Vizoso wrote:
>> On 22 October 2015 at 03:06, Rafael J. Wysocki <rjw@rjwysocki.net> wrote:
>>> On Monday, September 21, 2015 04:02:44 PM Tomeu Vizoso wrote:
>>>> Walks the OF tree up and finds the closest ancestor that has a struct
>>>> device associated with it, probing it if isn't bound to a driver yet.
>>>>
>>>> The above should ensure that the dependency represented by the passed OF
>>>> node is available, because probing a device should cause its descendants
>>>> to be probed as well (when they get registered).
>>>>
>>>> Subsystems can use this when looking up resources for drivers, to reduce
>>>> the chances of deferred probes because of the probing order of devices.
>>>>
>>>> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
>>>> ---
>>>>
>>>> Changes in v5:
>>>> - Move the assignment to device_node->device for AMBA devices to another
>>>> commit.
>>>> - Hold a reference to the struct device while it's in use in
>>>> of_device_probe().
>>>>
>>>> Changes in v4:
>>>> - Rename of_platform_probe to of_device_probe
>>>> - Use device_node.device instead of device_node.platform_dev
>>>>
>>>> Changes in v3:
>>>> - Set and use device_node.platform_dev instead of reversing the logic to
>>>> find the platform device that encloses a device node.
>>>> - Drop the fwnode API to probe firmware nodes and add OF-only API for
>>>> now. I think this same scheme could be used for machines with ACPI,
>>>> but I haven't been able to find one that had to defer its probes because
>>>> of the device probe order.
>>>>
>>>> drivers/of/device.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++
>>>> include/linux/of_device.h | 3 +++
>>>> 2 files changed, 64 insertions(+)
>>>>
>>>> diff --git a/drivers/of/device.c b/drivers/of/device.c
>>>> index 8b91ea241b10..836be71fc90e 100644
>>>> --- a/drivers/of/device.c
>>>> +++ b/drivers/of/device.c
>>>> @@ -286,3 +286,64 @@ int of_device_uevent_modalias(struct device *dev, struct kobj_uevent_env *env)
>>>>
>>>> return 0;
>>>> }
>>>> +
>>>> +/**
>>>> + * of_device_probe() - Probe device associated with OF node
>>>> + * @np: node to probe
>>>> + *
>>>> + * Probe the device associated with the passed device node.
>>>> + */
>>>> +void of_device_probe(struct device_node *np)
>>>
>>> Same question as from Greg: How does a subsystem know whether or not to use
>>> this function?
>>
>> Maybe I don't understand the comment, but as the commit message says,
>> subsystems can use this when looking up resources for drivers. Or you
>> mean that this information should be in the API docs?
>
> I'm not really sure this is the only case.
>
> Most likely, you'd end up with that being called by every subsystem using DT
> just in case.
No, it is binding dependent. If a consumer is looking up the provider
from the binding, then yes it needs a call. There may be some cases
where it doesn't make sense. But that is why it is called from the
binding specific code.
> And then each of those subsystems would need to call acpi_device_probe(), and
> then another_platform_firmware_interface_device_probe() and so on.
>
> Don't you see a problem here?
Only for the 3rd firmware interface. ;)
Let's get agreement on the flow and structure and how to address other
issues like suspend, then we can worry about whether this needs to be
abstracted from subsystems. We can discuss more this week at KS.
Rob
next prev parent reply other threads:[~2015-10-25 22:54 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-21 14:02 [PATCH v6 0/22] On-demand device probing Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 01/22] driver core: handle -EPROBE_DEFER from bus_type.match() Tomeu Vizoso
2015-10-22 1:00 ` Rafael J. Wysocki
2015-09-21 14:02 ` [PATCH v6 02/22] ARM: amba: Move reading of periphid to amba_match() Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 03/22] of/platform: Point to struct device from device node Tomeu Vizoso
2015-09-22 0:39 ` Rob Herring
[not found] ` <CAL_JsqK5CH+a-xQYcocqPb0XqV3F1shC48YQxsTFf9sXjx_xHQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-09-22 6:45 ` Tomeu Vizoso
[not found] ` <1442844182-27787-4-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-10-22 1:02 ` Rafael J. Wysocki
2015-10-22 13:01 ` Tomeu Vizoso
2015-10-24 13:57 ` Rafael J. Wysocki
2015-10-27 14:48 ` Tomeu Vizoso
2015-10-27 15:43 ` Rafael J. Wysocki
2015-10-27 21:24 ` Rob Herring
2015-09-21 14:02 ` [PATCH v6 04/22] of: add function to allow probing a device from a OF node Tomeu Vizoso
[not found] ` <1442844182-27787-5-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-10-22 1:06 ` Rafael J. Wysocki
[not found] ` <10119606.2TraDKGPVy-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org>
2015-10-22 13:03 ` Tomeu Vizoso
2015-10-22 23:54 ` Mark Brown
2015-10-24 14:28 ` Rafael J. Wysocki
2015-10-24 13:55 ` Rafael J. Wysocki
2015-10-24 20:09 ` Rob Herring [this message]
2015-10-26 0:13 ` Mark Brown
2015-10-26 0:15 ` Dmitry Torokhov
[not found] ` <20151026001301.GT29919-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-10-26 2:48 ` Rafael J. Wysocki
2015-10-26 3:09 ` Mark Brown
2015-10-26 8:16 ` Geert Uytterhoeven
2015-10-27 14:46 ` Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 05/22] gpio: Probe GPIO drivers on demand Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 06/22] gpio: Probe pinctrl devices " Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 07/22] regulator: core: Remove regulator_list Tomeu Vizoso
2015-09-21 19:38 ` Mark Brown
[not found] ` <20150921193803.GB30445-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-09-22 7:21 ` Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 08/22] regulator: core: Probe regulators on demand Tomeu Vizoso
[not found] ` <1442844182-27787-9-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-09-21 19:39 ` Mark Brown
2015-09-21 14:02 ` [PATCH v6 09/22] drm: Probe panels " Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 10/22] drm/tegra: Probe dpaux devices " Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 11/22] i2c: core: Probe i2c adapters and " Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 12/22] pwm: Probe PWM chip " Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 13/22] backlight: Probe backlight " Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 14/22] usb: phy: Probe phy " Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 15/22] clk: Probe clk providers " Tomeu Vizoso
[not found] ` <1442844182-27787-1-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-09-21 14:02 ` [PATCH v6 16/22] pinctrl: Probe pinctrl devices " Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 17/22] phy: core: Probe phy providers " Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 18/22] dma: of: Probe DMA controllers " Tomeu Vizoso
2015-09-21 14:02 ` [PATCH v6 19/22] power-supply: Probe power supplies " Tomeu Vizoso
2015-09-21 14:03 ` [PATCH v6 20/22] driver core: Allow deferring probes until late init Tomeu Vizoso
2015-09-26 18:15 ` Rob Herring
2015-09-29 8:05 ` Tomeu Vizoso
2015-09-29 16:58 ` Rob Herring
2015-09-21 14:03 ` [PATCH v6 21/22] driver core: Start processing deferred probes earlier Tomeu Vizoso
2015-10-05 23:52 ` Frank Rowand
2015-10-06 2:49 ` Rob Herring
[not found] ` <CAL_JsqKBKSsvEuoufc=xesSvcA1bf-X43O0YOvuntUJE5NYCJA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-06 10:45 ` Mark Brown
2015-09-21 14:03 ` [PATCH v6 22/22] of/platform: Defer probes of registered devices Tomeu Vizoso
2015-10-21 5:54 ` Scott Wood
2015-10-21 13:44 ` Rob Herring
[not found] ` <CAL_JsqLhZmc8cEC+tFJ25KLe0bQZsWmrRWGBMQake9VN6OjvdQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-21 22:51 ` Scott Wood
[not found] ` <1445467912.701.90.camel-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-10-22 13:04 ` Tomeu Vizoso
2015-10-22 21:27 ` Scott Wood
[not found] ` <1445549230.701.116.camel-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-10-24 13:51 ` Rafael J. Wysocki
2015-10-28 14:40 ` Tomeu Vizoso
2015-10-29 4:17 ` Rob Herring
[not found] ` <CAAObsKDR6pTEDK-G+jw+cr9MD-XoZqU8niqvDFHqFM0ve-+Smw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-29 16:06 ` Scott Wood
[not found] ` <1445406845.701.55.camel-KZfg59tc24xl57MIdRCFDg@public.gmane.org>
2015-10-22 0:34 ` Michael Ellerman
2015-09-26 18:17 ` [PATCH v6 0/22] On-demand device probing Rob Herring
[not found] ` <5606E120.3070305-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2015-09-26 19:22 ` Greg Kroah-Hartman
[not found] ` <20150926192218.GA15657-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-09-30 10:09 ` Tomeu Vizoso
2015-09-30 10:23 ` Greg Kroah-Hartman
2015-09-29 8:08 ` Tomeu Vizoso
2015-10-13 19:57 ` Tomeu Vizoso
2015-10-13 21:21 ` Rob Herring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=562BE562.8090704@kernel.org \
--to=robh@kernel.org \
--cc=arnd@arndb.de \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=javier@osg.samsung.com \
--cc=linus.walleij@linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rjw@rjwysocki.net \
--cc=robh+dt@kernel.org \
--cc=stern@rowland.harvard.edu \
--cc=swarren@wwwdotorg.org \
--cc=thierry.reding@gmail.com \
--cc=tomeu.vizoso@collabora.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).