linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: tomeu.vizoso@collabora.com (Tomeu Vizoso)
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: Wed, 16 Sep 2015 10:17:43 +0200	[thread overview]
Message-ID: <CAAObsKBihtEeNN_NyTmB+U9NAJV6UmJ5LJrqBbO7h9KZPPh8LQ@mail.gmail.com> (raw)
In-Reply-To: <20150911120824.GP12027@sirena.org.uk>

On 11 September 2015 at 14:08, Mark Brown <broonie@kernel.org> wrote:
> On Mon, Sep 07, 2015 at 02:23:29PM +0200, 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).
>
> I'm still not seeing how this works for MFDs where the MFD binding is
> present directly in DT.

The same problem should happen with simple-bus nodes such as
nvidia,tegra124-host1x in which children devices are represented in
the DT (and registered right after their parent) and depend on their
parent for their operation.

Looked at why it wasn't being a problem in my tests and Thierry
mentioned that tegra_host1x_driver takes care of the synchronization
between the bus and their children. So children would make use of the
bus only once it has finished probing and is ready to work (the init
and exit callbacks in host1x_client_ops signal when the bus is safe to
use).

AFAICS, this is a must currently for correct operation in simple-bus
and simple-mfd situations, because probing order is currently very
unpredictable and it's totally possible for the probing of a child to
start before the probing of its parent has finished (if async probing
is enabled or if a module is loaded that registers a child's driver at
the wrong time).

I would prefer if the core would take care of making sure that parents
are always probed before their children, but the unconditional locking
of the parent device stands in the way.

Regards,

Tomeu

  reply	other threads:[~2015-09-16  8:17 UTC|newest]

Thread overview: 43+ 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 ` [PATCH v4 01/22] driver core: Add pre_probe callback to bus_type Tomeu Vizoso
2015-09-11 12:04   ` Mark Brown
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 ` [PATCH v4 03/22] of/platform: Point to struct device from device node 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-09  1:29   ` Rob Herring
2015-09-10 14:53     ` Tomeu Vizoso
2015-09-11 12:08   ` Mark Brown
2015-09-16  8:17     ` Tomeu Vizoso [this message]
2015-09-16 19:35       ` Mark Brown
2015-10-21 11:29   ` Geert Uytterhoeven
2015-09-07 12:23 ` [PATCH v4 05/22] gpio: Probe GPIO drivers on demand Tomeu Vizoso
2015-09-25 17:01   ` Linus Walleij
2015-09-07 12:23 ` [PATCH v4 06/22] gpio: Probe pinctrl devices " Tomeu Vizoso
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-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 ` [PATCH v4 09/22] drm: Probe panels " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 10/22] drm/tegra: Probe dpaux devices " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 11/22] i2c: core: Probe i2c adapters and " Tomeu Vizoso
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 ` [PATCH v4 13/22] backlight: Probe backlight " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 14/22] usb: phy: Probe phy " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 15/22] clk: Probe clk providers " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 16/22] pinctrl: Probe pinctrl devices " Tomeu Vizoso
2015-09-25 17:03   ` Linus Walleij
2015-09-07 12:23 ` [PATCH v4 17/22] phy: core: Probe phy providers " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 18/22] dma: of: Probe DMA controllers " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 19/22] power-supply: Probe power supplies " Tomeu Vizoso
2015-09-07 12:23 ` [PATCH v4 20/22] driver core: Allow deferring probes until late init Tomeu Vizoso
2015-09-11 12:17   ` Mark Brown
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-11 12:24   ` Mark Brown
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 20:50 ` [PATCH v4 0/22] On-demand device probing Rob Herring
2015-09-08  7:30   ` Tomeu Vizoso
2015-09-09  1:33     ` Rob Herring
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=CAAObsKBihtEeNN_NyTmB+U9NAJV6UmJ5LJrqBbO7h9KZPPh8LQ@mail.gmail.com \
    --to=tomeu.vizoso@collabora.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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).