* [PATCH v2 0/22] On-demand device probing
@ 2015-07-28 13:19 Tomeu Vizoso
2015-07-28 13:19 ` [PATCH v2 13/22] i2c: core: Probe i2c master devices on demand Tomeu Vizoso
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Tomeu Vizoso @ 2015-07-28 13:19 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA
Cc: Stephen Warren, Javier Martinez Canillas, Mark Brown,
Thierry Reding, Rafael J. Wysocki,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
Dmitry Torokhov, devicetree-u79uwXL29TY76Z2rM5mHXA, Linus Walleij,
linux-acpi-u79uwXL29TY76Z2rM5mHXA, Arnd Bergmann, Tomeu Vizoso,
linux-fbdev-u79uwXL29TY76Z2rM5mHXA,
linux-usb-u79uwXL29TY76Z2rM5mHXA, Felipe Balbi,
linux-pwm-u79uwXL29TY76Z2rM5mHXA,
alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw, Terje Bergström,
Len Brown, Rob Herring, David Airlie, Michael Turquette,
linux-clk-u79uwXL29TY76Z2rM5mHXA,
dmaengine-u79uwXL29TY76Z2rM5mHXA
Hello,
I have a problem with the panel on my Tegra Chromebook taking longer
than expected to be ready during boot (Stéphane Marchesin reported what
is basically the same issue in [0]), and have looked into ordered
probing as a better way of solving this than moving nodes around in the
DT or playing with initcall levels and linking order.
While reading the thread [1] that Alexander Holler started with his
series to make probing order deterministic, it occurred to me that it
should be possible to achieve the same by probing devices as they are
referenced by other devices.
This basically reuses the information that is already implicit in the
probe() implementations, saving us from refactoring existing drivers or
adding information to DTBs.
During review of v1 of this series Linus Walleij suggested that it
should be the device driver core to make sure that dependencies are
ready before probing a device. I gave this idea a try [2] but Mark Brown
pointed out to the logic duplication between the resource acquisition
and dependency discovery code paths (though I think it's fairly minor).
To address that code duplication I experimented with Arnd's devm_probe
[3] concept of having drivers declare their dependencies instead of
acquiring them during probe, and while it worked [4], I don't think we
end up winning anything when compared to just probing devices on-demand
from resource getters.
One remaining objection is to the "sprinkling" of calls to
fwnode_ensure_device() in the resource getters of each subsystem, but I
think it's the right thing to do given that the storage of resources is
currently subsystem-specific.
We could avoid the above by moving resource storage into the core, but I
don't think there's a compelling case for that.
I have tested this on boards with Tegra, iMX.6, Exynos and OMAP SoCs,
and these patches were enough to eliminate all the deferred probes
(except one in PandaBoard because omap_dma_system doesn't have a
firmware node as of yet).
With this series I get the kernel to output to the panel in 0.5s,
instead of 2.8s.
Regards,
Tomeu
[0] http://lists.freedesktop.org/archives/dri-devel/2014-August/066527.html
[1] https://lkml.org/lkml/2014/5/12/452
[2] https://lkml.org/lkml/2015/6/17/305
[3] http://article.gmane.org/gmane.linux.ports.arm.kernel/277689
[4] https://lkml.org/lkml/2015/7/21/441
Changes in v2:
- Move delay to platform.c
- Use set_primary_fwnode()
- Use of_node_full_name()
- Move the logic for finding a platform device from its firmware node to
of/platform.c as it's not needed for ACPI nodes.
- Add acpi_dev_get_device()
- Add fwnode_ensure_device() so the mechanism for probing devices on
demand is independent of the firmware format.
- Acquire regulator device lock before returning from regulator_dev_lookup()
Tomeu Vizoso (22):
platform: delay device-driver matches until late_initcall
of/platform: Set fwnode field for new devices
device property: add fwnode_get_name()
of/platform: add of_platform_device_find()
ACPI: add acpi_dev_get_device()
device property: add fwnode_ensure_device()
gpio: Probe GPIO drivers on demand
gpio: Probe pinctrl devices on demand
regulator: core: Reduce critical area in _regulator_get
regulator: core: Probe regulators on demand
drm: Probe panels on demand
drm/tegra: Probe dpaux devices on demand
i2c: core: Probe i2c master devices on demand
pwm: Probe PWM chip devices on demand
backlight: Probe backlight devices on demand
usb: phy: Probe phy devices on demand
clk: Probe clk providers on demand
pinctrl: Probe pinctrl devices on demand
phy: core: Probe phy providers on demand
dma: of: Probe DMA controllers on demand
power-supply: Probe power supplies on demand
ASoC: core: Probe components on demand
drivers/base/platform.c | 28 +++++++++++
drivers/base/property.c | 73 +++++++++++++++++++++++++++
drivers/clk/clk.c | 3 ++
drivers/dma/of-dma.c | 2 +
drivers/gpio/gpiolib-of.c | 4 ++
drivers/gpu/drm/drm_panel.c | 2 +
drivers/gpu/drm/tegra/dpaux.c | 2 +
drivers/i2c/i2c-core.c | 2 +
drivers/of/platform.c | 61 +++++++++++++++++++++++
drivers/phy/phy-core.c | 2 +
drivers/pinctrl/devicetree.c | 1 +
drivers/power/power_supply_core.c | 2 +
drivers/pwm/core.c | 2 +
drivers/regulator/core.c | 99 +++++++++++++++++++++----------------
drivers/usb/phy/phy.c | 2 +
drivers/video/backlight/backlight.c | 2 +
include/linux/acpi.h | 10 ++++
include/linux/of_platform.h | 1 +
include/linux/property.h | 4 ++
sound/soc/soc-core.c | 6 ++-
20 files changed, 264 insertions(+), 44 deletions(-)
--
2.4.3
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 13/22] i2c: core: Probe i2c master devices on demand
2015-07-28 13:19 [PATCH v2 0/22] On-demand device probing Tomeu Vizoso
@ 2015-07-28 13:19 ` Tomeu Vizoso
2015-08-09 12:34 ` Wolfram Sang
[not found] ` <1438089593-7696-1-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-07-30 3:06 ` Rob Herring
2 siblings, 1 reply; 7+ messages in thread
From: Tomeu Vizoso @ 2015-07-28 13:19 UTC (permalink / raw)
To: linux-kernel
Cc: Stephen Warren, Javier Martinez Canillas, Mark Brown,
Thierry Reding, Rafael J. Wysocki, linux-arm-kernel,
Dmitry Torokhov, devicetree, Linus Walleij, linux-acpi,
Arnd Bergmann, Tomeu Vizoso, Wolfram Sang, linux-i2c
When looking up an i2c master through its firmware node, probe it if it
hasn't already.
The goal is to reduce deferred probes to a minimum, as it makes it very
cumbersome to find out why a device failed to probe, and can introduce
very big delays in when a critical device is probed.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---
Changes in v2: None
drivers/i2c/i2c-core.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index e6d4935161e4..5520b413e3db 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -1353,6 +1353,8 @@ struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node *node)
{
struct device *dev;
+ fwnode_ensure_device(&node->fwnode);
+
dev = bus_find_device(&i2c_bus_type, NULL, node,
of_dev_node_match);
if (!dev)
--
2.4.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 0/22] On-demand device probing
[not found] ` <1438089593-7696-1-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
@ 2015-07-29 0:36 ` Rafael J. Wysocki
0 siblings, 0 replies; 7+ messages in thread
From: Rafael J. Wysocki @ 2015-07-29 0:36 UTC (permalink / raw)
To: Tomeu Vizoso
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, Stephen Warren,
Javier Martinez Canillas, Mark Brown, Thierry Reding,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
Dmitry Torokhov, devicetree-u79uwXL29TY76Z2rM5mHXA, Linus Walleij,
linux-acpi-u79uwXL29TY76Z2rM5mHXA, Arnd Bergmann,
linux-fbdev-u79uwXL29TY76Z2rM5mHXA,
linux-usb-u79uwXL29TY76Z2rM5mHXA, Felipe Balbi,
linux-pwm-u79uwXL29TY76Z2rM5mHXA,
alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw, Terje Bergström,
Len Brown, Rob Herring, David Airlie, Michael Turquette,
linux-clk-u79uwXL29TY76Z2rM5mHXA,
dmaengine-u79uwXL29TY76Z2rM5mHXA,
Jean-Christophe Plagniol-Villard
On Tuesday, July 28, 2015 03:19:31 PM Tomeu Vizoso wrote:
> Hello,
>
> I have a problem with the panel on my Tegra Chromebook taking longer
> than expected to be ready during boot (Stéphane Marchesin reported what
> is basically the same issue in [0]), and have looked into ordered
> probing as a better way of solving this than moving nodes around in the
> DT or playing with initcall levels and linking order.
>
> While reading the thread [1] that Alexander Holler started with his
> series to make probing order deterministic, it occurred to me that it
> should be possible to achieve the same by probing devices as they are
> referenced by other devices.
>
> This basically reuses the information that is already implicit in the
> probe() implementations, saving us from refactoring existing drivers or
> adding information to DTBs.
>
> During review of v1 of this series Linus Walleij suggested that it
> should be the device driver core to make sure that dependencies are
> ready before probing a device. I gave this idea a try [2] but Mark Brown
> pointed out to the logic duplication between the resource acquisition
> and dependency discovery code paths (though I think it's fairly minor).
>
> To address that code duplication I experimented with Arnd's devm_probe
> [3] concept of having drivers declare their dependencies instead of
> acquiring them during probe, and while it worked [4], I don't think we
> end up winning anything when compared to just probing devices on-demand
> from resource getters.
>
> One remaining objection is to the "sprinkling" of calls to
> fwnode_ensure_device() in the resource getters of each subsystem, but I
> think it's the right thing to do given that the storage of resources is
> currently subsystem-specific.
>
> We could avoid the above by moving resource storage into the core, but I
> don't think there's a compelling case for that.
>
> I have tested this on boards with Tegra, iMX.6, Exynos and OMAP SoCs,
> and these patches were enough to eliminate all the deferred probes
> (except one in PandaBoard because omap_dma_system doesn't have a
> firmware node as of yet).
>
> With this series I get the kernel to output to the panel in 0.5s,
> instead of 2.8s.
Can you trim your CC list somewhat, please?
I'm definitely going to look at this, but not before then next week.
Sorry about that.
Thanks,
Rafael
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 0/22] On-demand device probing
2015-07-28 13:19 [PATCH v2 0/22] On-demand device probing Tomeu Vizoso
2015-07-28 13:19 ` [PATCH v2 13/22] i2c: core: Probe i2c master devices on demand Tomeu Vizoso
[not found] ` <1438089593-7696-1-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
@ 2015-07-30 3:06 ` Rob Herring
2015-07-31 10:28 ` Tomeu Vizoso
2 siblings, 1 reply; 7+ messages in thread
From: Rob Herring @ 2015-07-30 3:06 UTC (permalink / raw)
To: Tomeu Vizoso
Cc: linux-fbdev@vger.kernel.org, Dmitry Torokhov, Linux PWM List,
David Airlie, Stephen Boyd, Linus Walleij, Linux-ALSA, dri-devel,
Sebastian Reichel, Thierry Reding, linux-i2c@vger.kernel.org,
Lee Jones, linux-clk, Alexandre Courbot, Terje Bergström,
Javier Martinez Canillas, Vinod Koul, linux-pm@vger.kernel.org,
Kishon Vijay Abraham I, linux-acpi@vger.kernel.org
On Tue, Jul 28, 2015 at 8:19 AM, Tomeu Vizoso
<tomeu.vizoso@collabora.com> wrote:
> Hello,
>
> I have a problem with the panel on my Tegra Chromebook taking longer
> than expected to be ready during boot (Stéphane Marchesin reported what
> is basically the same issue in [0]), and have looked into ordered
> probing as a better way of solving this than moving nodes around in the
> DT or playing with initcall levels and linking order.
>
> While reading the thread [1] that Alexander Holler started with his
> series to make probing order deterministic, it occurred to me that it
> should be possible to achieve the same by probing devices as they are
> referenced by other devices.
>
> This basically reuses the information that is already implicit in the
> probe() implementations, saving us from refactoring existing drivers or
> adding information to DTBs.
>
> During review of v1 of this series Linus Walleij suggested that it
> should be the device driver core to make sure that dependencies are
> ready before probing a device. I gave this idea a try [2] but Mark Brown
> pointed out to the logic duplication between the resource acquisition
> and dependency discovery code paths (though I think it's fairly minor).
>
> To address that code duplication I experimented with Arnd's devm_probe
> [3] concept of having drivers declare their dependencies instead of
> acquiring them during probe, and while it worked [4], I don't think we
> end up winning anything when compared to just probing devices on-demand
> from resource getters.
>
> One remaining objection is to the "sprinkling" of calls to
> fwnode_ensure_device() in the resource getters of each subsystem, but I
> think it's the right thing to do given that the storage of resources is
> currently subsystem-specific.
Seems like a minor change to me.
> We could avoid the above by moving resource storage into the core, but I
> don't think there's a compelling case for that.
>
> I have tested this on boards with Tegra, iMX.6, Exynos and OMAP SoCs,
> and these patches were enough to eliminate all the deferred probes
> (except one in PandaBoard because omap_dma_system doesn't have a
> firmware node as of yet).
>
> With this series I get the kernel to output to the panel in 0.5s,
> instead of 2.8s.
Generally, I think this looks pretty good. It is simple and the error
path is simply falling back to deferred probe.
One overall comment is I'm not so sure if fwnode_ensure_device
shouldn't just be of_ensure_device. At least currently, it looks like
all the calling locations are DT specific functions anyway. There's
very little logic within the function to really benefit sharing with
ACPI. It is basically just a call to of_platform_device_find and then
bus_probe_device. I expect the get functions will always call into
DT/ACPI specific functions which can then call the firmware specific
device find function.
Rob
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 0/22] On-demand device probing
2015-07-30 3:06 ` Rob Herring
@ 2015-07-31 10:28 ` Tomeu Vizoso
0 siblings, 0 replies; 7+ messages in thread
From: Tomeu Vizoso @ 2015-07-31 10:28 UTC (permalink / raw)
To: Rob Herring
Cc: linux-fbdev@vger.kernel.org, Linux USB List, Wolfram Sang,
David Airlie, Rafael J. Wysocki, Linus Walleij, Linux-ALSA,
dri-devel, Liam Girdwood, devicetree@vger.kernel.org,
Thierry Reding, linux-i2c@vger.kernel.org, Lee Jones, linux-clk,
Alexandre Courbot, Terje Bergström, Javier Martinez Canillas,
Vinod Koul, Stephen Warren, Kishon Vijay Abraham I, linux-acpi
On 30 July 2015 at 05:06, Rob Herring <robherring2@gmail.com> wrote:
> On Tue, Jul 28, 2015 at 8:19 AM, Tomeu Vizoso
> <tomeu.vizoso@collabora.com> wrote:
>> Hello,
>>
>> I have a problem with the panel on my Tegra Chromebook taking longer
>> than expected to be ready during boot (Stéphane Marchesin reported what
>> is basically the same issue in [0]), and have looked into ordered
>> probing as a better way of solving this than moving nodes around in the
>> DT or playing with initcall levels and linking order.
>>
>> While reading the thread [1] that Alexander Holler started with his
>> series to make probing order deterministic, it occurred to me that it
>> should be possible to achieve the same by probing devices as they are
>> referenced by other devices.
>>
>> This basically reuses the information that is already implicit in the
>> probe() implementations, saving us from refactoring existing drivers or
>> adding information to DTBs.
>>
>> During review of v1 of this series Linus Walleij suggested that it
>> should be the device driver core to make sure that dependencies are
>> ready before probing a device. I gave this idea a try [2] but Mark Brown
>> pointed out to the logic duplication between the resource acquisition
>> and dependency discovery code paths (though I think it's fairly minor).
>>
>> To address that code duplication I experimented with Arnd's devm_probe
>> [3] concept of having drivers declare their dependencies instead of
>> acquiring them during probe, and while it worked [4], I don't think we
>> end up winning anything when compared to just probing devices on-demand
>> from resource getters.
>>
>> One remaining objection is to the "sprinkling" of calls to
>> fwnode_ensure_device() in the resource getters of each subsystem, but I
>> think it's the right thing to do given that the storage of resources is
>> currently subsystem-specific.
>
> Seems like a minor change to me.
>
>> We could avoid the above by moving resource storage into the core, but I
>> don't think there's a compelling case for that.
>>
>> I have tested this on boards with Tegra, iMX.6, Exynos and OMAP SoCs,
>> and these patches were enough to eliminate all the deferred probes
>> (except one in PandaBoard because omap_dma_system doesn't have a
>> firmware node as of yet).
>>
>> With this series I get the kernel to output to the panel in 0.5s,
>> instead of 2.8s.
>
> Generally, I think this looks pretty good. It is simple and the error
> path is simply falling back to deferred probe.
>
> One overall comment is I'm not so sure if fwnode_ensure_device
> shouldn't just be of_ensure_device. At least currently, it looks like
> all the calling locations are DT specific functions anyway. There's
> very little logic within the function to really benefit sharing with
> ACPI. It is basically just a call to of_platform_device_find and then
> bus_probe_device. I expect the get functions will always call into
> DT/ACPI specific functions which can then call the firmware specific
> device find function.
That's fine with me. I just went that way because I assumed the plan
was for subsystems to move to consume fw data through fwnode and drop
as much fw-specific code as possible.
But I have just looked at fwnode_get_named_gpiod and the OF and ACPI
code paths are so dissimilar that I guess that's not so and would be
better to do as you say.
Thanks,
Tomeu
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 13/22] i2c: core: Probe i2c master devices on demand
2015-07-28 13:19 ` [PATCH v2 13/22] i2c: core: Probe i2c master devices on demand Tomeu Vizoso
@ 2015-08-09 12:34 ` Wolfram Sang
2015-08-09 13:37 ` Tomeu Vizoso
0 siblings, 1 reply; 7+ messages in thread
From: Wolfram Sang @ 2015-08-09 12:34 UTC (permalink / raw)
To: Tomeu Vizoso
Cc: linux-kernel, Stephen Warren, Javier Martinez Canillas,
Mark Brown, Thierry Reding, Rafael J. Wysocki, linux-arm-kernel,
Dmitry Torokhov, devicetree, Linus Walleij, linux-acpi,
Arnd Bergmann, linux-i2c
[-- Attachment #1: Type: text/plain, Size: 1160 bytes --]
On Tue, Jul 28, 2015 at 03:19:44PM +0200, Tomeu Vizoso wrote:
> When looking up an i2c master through its firmware node, probe it if it
> hasn't already.
>
> The goal is to reduce deferred probes to a minimum, as it makes it very
> cumbersome to find out why a device failed to probe, and can introduce
> very big delays in when a critical device is probed.
>
> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
What is the status of this series? The boot time reduction sounds great.
> ---
>
> Changes in v2: None
>
> drivers/i2c/i2c-core.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
> index e6d4935161e4..5520b413e3db 100644
> --- a/drivers/i2c/i2c-core.c
> +++ b/drivers/i2c/i2c-core.c
> @@ -1353,6 +1353,8 @@ struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node *node)
> {
> struct device *dev;
>
> + fwnode_ensure_device(&node->fwnode);
TBH, the function name doesn't tell me a lot. It ensures what?
> +
> dev = bus_find_device(&i2c_bus_type, NULL, node,
> of_dev_node_match);
> if (!dev)
> --
> 2.4.3
>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 13/22] i2c: core: Probe i2c master devices on demand
2015-08-09 12:34 ` Wolfram Sang
@ 2015-08-09 13:37 ` Tomeu Vizoso
0 siblings, 0 replies; 7+ messages in thread
From: Tomeu Vizoso @ 2015-08-09 13:37 UTC (permalink / raw)
To: Wolfram Sang
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Stephen Warren, Javier Martinez Canillas, Mark Brown,
Thierry Reding, Rafael J. Wysocki,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
Dmitry Torokhov,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Linus Walleij,
linux-acpi-u79uwXL29TY76Z2rM5mHXA, Arnd Bergmann,
linux-i2c-u79uwXL29TY76Z2rM5mHXA
On 9 August 2015 at 14:34, Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org> wrote:
> On Tue, Jul 28, 2015 at 03:19:44PM +0200, Tomeu Vizoso wrote:
>> When looking up an i2c master through its firmware node, probe it if it
>> hasn't already.
>>
>> The goal is to reduce deferred probes to a minimum, as it makes it very
>> cumbersome to find out why a device failed to probe, and can introduce
>> very big delays in when a critical device is probed.
>>
>> Signed-off-by: Tomeu Vizoso <tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
>
> What is the status of this series?
See here for a summary:
http://lkml.kernel.org/g/1438870315-18689-1-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org
> The boot time reduction sounds great.
Note that this should not reduce total boot time substantially, as the
time wasted due to superfluous probe deferrals is really small when
compared to the time spent in delays due to hardware constraints. If
you want to reduce total boot time, async probing may be helpful in
some scenarios.
Regards,
Tomeu
>> ---
>>
>> Changes in v2: None
>>
>> drivers/i2c/i2c-core.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
>> index e6d4935161e4..5520b413e3db 100644
>> --- a/drivers/i2c/i2c-core.c
>> +++ b/drivers/i2c/i2c-core.c
>> @@ -1353,6 +1353,8 @@ struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node *node)
>> {
>> struct device *dev;
>>
>> + fwnode_ensure_device(&node->fwnode);
>
> TBH, the function name doesn't tell me a lot. It ensures what?
>
>> +
>> dev = bus_find_device(&i2c_bus_type, NULL, node,
>> of_dev_node_match);
>> if (!dev)
>> --
>> 2.4.3
>>
--
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
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-08-09 13:37 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-28 13:19 [PATCH v2 0/22] On-demand device probing Tomeu Vizoso
2015-07-28 13:19 ` [PATCH v2 13/22] i2c: core: Probe i2c master devices on demand Tomeu Vizoso
2015-08-09 12:34 ` Wolfram Sang
2015-08-09 13:37 ` Tomeu Vizoso
[not found] ` <1438089593-7696-1-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-07-29 0:36 ` [PATCH v2 0/22] On-demand device probing Rafael J. Wysocki
2015-07-30 3:06 ` Rob Herring
2015-07-31 10:28 ` Tomeu Vizoso
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).