From: Rob Herring <robh@kernel.org>
To: Tomeu Vizoso <tomeu.vizoso@collabora.com>, linux-kernel@vger.kernel.org
Cc: Stephen Warren <swarren@wwwdotorg.org>,
Javier Martinez Canillas <javier@osg.samsung.com>,
Mark Brown <broonie@kernel.org>,
Thierry Reding <thierry.reding@gmail.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
linux-arm-kernel@lists.infradead.org,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
devicetree@vger.kernel.org,
Linus Walleij <linus.walleij@linaro.org>,
linux-acpi@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
Frank Rowand <frowand.list@gmail.com>,
Grant Likely <grant.likely@linaro.org>
Subject: Re: [PATCH v4 04/22] of: add function to allow probing a device from a OF node
Date: Tue, 8 Sep 2015 20:29:24 -0500 [thread overview]
Message-ID: <55EF8B74.7090909@kernel.org> (raw)
In-Reply-To: <1441628627-5143-5-git-send-email-tomeu.vizoso@collabora.com>
On 09/07/2015 07:23 AM, 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>
Looks pretty good to me. One comment below.
[...]
> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> index baf04d7249bd..f089d95ac961 100644
> --- a/drivers/of/platform.c
> +++ b/drivers/of/platform.c
> @@ -269,6 +269,8 @@ static struct amba_device *of_amba_device_create(struct device_node *node,
> goto err_free;
> }
>
> + node->device = &dev->dev;
> +
This seems oddly placed. Can you move to patch 3?
> return dev;
>
> err_free:
> diff --git a/include/linux/of_device.h b/include/linux/of_device.h
> index cc7dd687a89d..da8d489e73ad 100644
> --- a/include/linux/of_device.h
> +++ b/include/linux/of_device.h
> @@ -40,6 +40,7 @@ extern ssize_t of_device_get_modalias(struct device *dev,
>
> extern void of_device_uevent(struct device *dev, struct kobj_uevent_env *env);
> extern int of_device_uevent_modalias(struct device *dev, struct kobj_uevent_env *env);
> +extern void of_device_probe(struct device_node *np);
>
> static inline void of_device_node_put(struct device *dev)
> {
> @@ -84,6 +85,8 @@ static inline int of_device_uevent_modalias(struct device *dev,
> return -ENODEV;
> }
>
> +static inline void of_device_probe(struct device_node *np) { }
> +
> static inline void of_device_node_put(struct device *dev) { }
>
> static inline const struct of_device_id *__of_match_device(
>
WARNING: multiple messages have this Message-ID (diff)
From: robh@kernel.org (Rob Herring)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 04/22] of: add function to allow probing a device from a OF node
Date: Tue, 8 Sep 2015 20:29:24 -0500 [thread overview]
Message-ID: <55EF8B74.7090909@kernel.org> (raw)
In-Reply-To: <1441628627-5143-5-git-send-email-tomeu.vizoso@collabora.com>
On 09/07/2015 07:23 AM, 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>
Looks pretty good to me. One comment below.
[...]
> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> index baf04d7249bd..f089d95ac961 100644
> --- a/drivers/of/platform.c
> +++ b/drivers/of/platform.c
> @@ -269,6 +269,8 @@ static struct amba_device *of_amba_device_create(struct device_node *node,
> goto err_free;
> }
>
> + node->device = &dev->dev;
> +
This seems oddly placed. Can you move to patch 3?
> return dev;
>
> err_free:
> diff --git a/include/linux/of_device.h b/include/linux/of_device.h
> index cc7dd687a89d..da8d489e73ad 100644
> --- a/include/linux/of_device.h
> +++ b/include/linux/of_device.h
> @@ -40,6 +40,7 @@ extern ssize_t of_device_get_modalias(struct device *dev,
>
> extern void of_device_uevent(struct device *dev, struct kobj_uevent_env *env);
> extern int of_device_uevent_modalias(struct device *dev, struct kobj_uevent_env *env);
> +extern void of_device_probe(struct device_node *np);
>
> static inline void of_device_node_put(struct device *dev)
> {
> @@ -84,6 +85,8 @@ static inline int of_device_uevent_modalias(struct device *dev,
> return -ENODEV;
> }
>
> +static inline void of_device_probe(struct device_node *np) { }
> +
> static inline void of_device_node_put(struct device *dev) { }
>
> static inline const struct of_device_id *__of_match_device(
>
next prev parent reply other threads:[~2015-09-09 1:29 UTC|newest]
Thread overview: 113+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-07 12:23 [PATCH v4 0/22] On-demand device probing Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
[not found] ` <1441628627-5143-1-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-09-07 12:23 ` [PATCH v4 01/22] driver core: Add pre_probe callback to bus_type Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-11 12:04 ` Mark Brown
2015-09-11 12:04 ` Mark Brown
2015-09-07 12:23 ` [PATCH v4 05/22] gpio: Probe GPIO drivers on demand Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-25 17:01 ` Linus Walleij
2015-09-25 17:01 ` Linus Walleij
2015-09-07 12:23 ` [PATCH v4 11/22] i2c: core: Probe i2c adapters and devices " Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-10-20 10:42 ` Wolfram Sang
2015-10-20 10:42 ` Wolfram Sang
2015-09-07 12:23 ` [PATCH v4 12/22] pwm: Probe PWM chip " Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 13/22] backlight: Probe backlight " Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 16/22] pinctrl: Probe pinctrl " Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-25 17:03 ` Linus Walleij
2015-09-25 17:03 ` Linus Walleij
2015-09-07 12:23 ` [PATCH v4 02/22] ARM: amba: Move reading of periphid to pre_probe() Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 03/22] of/platform: Point to struct device from device node Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 04/22] of: add function to allow probing a device from a OF node Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-09 1:29 ` Rob Herring [this message]
2015-09-09 1:29 ` Rob Herring
2015-09-10 14:53 ` Tomeu Vizoso
2015-09-10 14:53 ` Tomeu Vizoso
2015-09-11 12:08 ` Mark Brown
2015-09-11 12:08 ` Mark Brown
2015-09-16 8:17 ` Tomeu Vizoso
2015-09-16 8:17 ` Tomeu Vizoso
2015-09-16 19:35 ` Mark Brown
2015-09-16 19:35 ` Mark Brown
[not found] ` <1441628627-5143-5-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-10-21 11:29 ` Geert Uytterhoeven
2015-10-21 11:29 ` Geert Uytterhoeven
2015-10-21 11:29 ` Geert Uytterhoeven
2015-10-21 11:29 ` Geert Uytterhoeven
2015-09-07 12:23 ` [PATCH v4 06/22] gpio: Probe pinctrl devices on demand Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-25 17:02 ` Linus Walleij
2015-09-25 17:02 ` Linus Walleij
2015-09-07 12:23 ` [PATCH v4 07/22] regulator: core: Reduce critical area in _regulator_get Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-11 12:10 ` Mark Brown
2015-09-11 12:10 ` Mark Brown
2015-09-07 12:23 ` [PATCH v4 08/22] regulator: core: Probe regulators on demand Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 09/22] drm: Probe panels " Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 10/22] drm/tegra: Probe dpaux devices " Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 14/22] usb: phy: Probe phy " Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 15/22] clk: Probe clk providers " Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 17/22] phy: core: Probe phy " Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 18/22] dma: of: Probe DMA controllers " Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 19/22] power-supply: Probe power supplies " Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 20/22] driver core: Allow deferring probes until late init Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-11 12:17 ` Mark Brown
2015-09-11 12:17 ` Mark Brown
2015-09-14 9:04 ` Tomeu Vizoso
2015-09-14 9:04 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 21/22] driver core: Start processing deferred probes earlier Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-11 12:24 ` Mark Brown
2015-09-11 12:24 ` Mark Brown
2015-09-15 13:16 ` Tomeu Vizoso
2015-09-15 13:16 ` Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 22/22] of/platform: Defer probes of registered devices Tomeu Vizoso
2015-09-07 12:23 ` Tomeu Vizoso
2015-09-07 20:50 ` [PATCH v4 0/22] On-demand device probing Rob Herring
2015-09-07 20:50 ` Rob Herring
2015-09-07 20:50 ` Rob Herring
2015-09-07 20:50 ` Rob Herring
2015-09-08 7:30 ` Tomeu Vizoso
2015-09-08 7:30 ` Tomeu Vizoso
2015-09-08 7:30 ` Tomeu Vizoso
2015-09-08 7:30 ` Tomeu Vizoso
2015-09-08 7:30 ` Tomeu Vizoso
2015-09-09 1:33 ` Rob Herring
2015-09-09 1:33 ` Rob Herring
2015-09-09 1:33 ` Rob Herring
2015-09-09 1:33 ` Rob Herring
[not found] ` <55EF8C65.4030706-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2015-09-09 9:40 ` Tomeu Vizoso
2015-09-09 9:40 ` Tomeu Vizoso
2015-09-09 9:40 ` Tomeu Vizoso
2015-09-09 9:40 ` Tomeu Vizoso
2015-09-09 9:40 ` Tomeu Vizoso
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=55EF8B74.7090909@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=frowand.list@gmail.com \
--cc=grant.likely@linaro.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=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.