All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Holler <holler@ahsoftware.de>
To: Linus Walleij <linus.walleij@linaro.org>,
	Tomeu Vizoso <tomeu.vizoso@collabora.com>,
	Grant Likely <grant.likely@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
	"linux-fbdev@vger.kernel.org" <linux-fbdev@vger.kernel.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"linux-pwm@vger.kernel.org" <linux-pwm@vger.kernel.org>,
	DRM PANEL DRIVERS <dri-devel@lists.freedesktop.org>,
	list@wandq.ahsoftware,
	"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
	linux-clk@vger.kernel.org,
	linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	open@wandq.ahsoftware,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	Dan Williams <dan.j.williams@intel.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>
Subject: Re: [PATCH 00/21] On-demand device registration
Date: Wed, 03 Jun 2015 00:54:31 +0200	[thread overview]
Message-ID: <556E3427.6000704@ahsoftware.de> (raw)
In-Reply-To: <CACRpkdasLwMfEHGMRd1X3K_DU7NMPreE8TMwqqDTg8k9wj=wJQ@mail.gmail.com>

Am 02.06.2015 um 10:48 schrieb Linus Walleij:
> On Mon, May 25, 2015 at 4:53 PM, Tomeu Vizoso
> <tomeu.vizoso@collabora.com> wrote:
> 
>> have looked into ordered probing as a
>> better way of solving this than moving nodes around in the DT or playing with
>> initcall levels.
>>
>> 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 registering devices as they are referenced by other
>> devices.
> 
> This is pretty cool, but a too local solution to a global problem.
> 
> Deferred probe and initcall reordering, silly as they may seem,
> does not require you to use device tree.
> 
> The real solution, which I think I pointed out already when we
> added deferred probe, is to put dependency graphs in the drivers
> and have the kernel device driver core percolate dependecies by
> walking the graph on probing driver, removing driver (usually the
> inverse use case), [runtime] suspend and [runtime] resumeing
> a driver. Possibly the dependencies will even be different
> depending on use case.
> 
> This is what systemd is doing in userspace for starting services:
> ask for your dependencies and wait for them if they are not
> there. So drivers ask for resources and wait for them. It also
> needs to be abstract, so for example we need to be able to
> hang on regulator_get() until the driver is up and providing that
> regulator, and as long as everything is in slowpath it should
> be OK. (And vice versa mutatis mutandis for clk, gpio, pin
> control, interrupts (!) and DMA channels for example.)
> 
> 
> So if this should be solved it should be solved in an abstract way
> in the device driver core available for all, then have calls calling
> out to DT, ACPI, possibly even PCI or USB (as these
> enumerate devices themselves) to obtain a certain
> dependency.

I suggest to start with making it possible to identify (at least most)
drivers. I've already posted a patch for that around a year ago and now
Tomeu did almost the same.

However one wants to make a deterministic order to load drivers, there
will be always the need to know which drivers one has to sort.

Regards,

Alexander Holler
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2015-06-02 22:54 UTC|newest]

Thread overview: 243+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-25 14:53 [PATCH 00/21] On-demand device registration Tomeu Vizoso
2015-05-25 14:53 ` Tomeu Vizoso
2015-05-25 14:53 ` Tomeu Vizoso
2015-05-25 14:53 ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 01/21] regulator: core: Reduce critical area in _regulator_get Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 17:18   ` Mark Brown
2015-05-25 17:18     ` Mark Brown
2015-05-25 17:45   ` Mark Brown
2015-05-25 17:45     ` Mark Brown
2015-05-25 14:53 ` [PATCH 02/21] ARM: tegra: Add gpio-ranges property Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
     [not found]   ` <1432565608-26036-3-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-05-26 19:41     ` Stephen Warren
2015-05-26 19:41       ` Stephen Warren
2015-05-26 19:41       ` Stephen Warren
     [not found]       ` <5564CC84.1030700-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2015-05-27 14:18         ` Tomeu Vizoso
2015-05-27 14:18           ` Tomeu Vizoso
2015-05-27 14:18           ` Tomeu Vizoso
     [not found]           ` <CAAObsKD7YbZX01A=SS7z_PxAMPweHy6sw5ut=50h50C=j9y0zA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-27 14:49             ` Stephen Warren
2015-05-27 14:49               ` Stephen Warren
2015-05-27 14:49               ` Stephen Warren
2015-05-28  8:26               ` Tomeu Vizoso
2015-05-28  8:26                 ` Tomeu Vizoso
     [not found]                 ` <CAAObsKB-ayRd7OB1W9nYBJzvBDK0RZk1U56Gqxn08sHPT5FvzA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-05-28 15:50                   ` Stephen Warren
2015-05-28 15:50                     ` Stephen Warren
2015-05-28 15:50                     ` Stephen Warren
     [not found]                     ` <5567393A.6000901-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2015-06-16  7:53                       ` Tomeu Vizoso
2015-06-16  7:53                         ` Tomeu Vizoso
2015-06-16  7:53                         ` Tomeu Vizoso
2015-06-02 11:28         ` Linus Walleij
2015-06-02 11:28           ` Linus Walleij
2015-06-02 11:28           ` Linus Walleij
     [not found]           ` <CACRpkdbtCDQLaPhWFT0a7NdJmxYzRvhU_efgUh2ZXhbc+FHg3g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-02 15:40             ` Stephen Warren
2015-06-02 15:40               ` Stephen Warren
2015-06-02 15:40               ` Stephen Warren
     [not found]               ` <556DCE71.7050108-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2015-06-16  8:42                 ` Tomeu Vizoso
2015-06-16  8:42                   ` Tomeu Vizoso
2015-06-16  8:42                   ` Tomeu Vizoso
2015-06-16 20:32                   ` Stephen Warren
2015-06-16 20:32                     ` Stephen Warren
     [not found]                     ` <558087CE.5070903-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2015-06-17 10:04                       ` Tomeu Vizoso
2015-06-17 10:04                         ` Tomeu Vizoso
2015-06-17 10:04                         ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 03/21] ARM: tegra: Register drivers before devices Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 04/21] ARM: EXYNOS: " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-26  0:41   ` Krzysztof Kozlowski
2015-05-26  0:41     ` Krzysztof Kozlowski
2015-05-25 14:53 ` [PATCH 05/21] ARM i.MX6q: " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 06/21] of/platform: Add of_platform_device_ensure() Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-26 18:56   ` Dmitry Torokhov
2015-05-26 18:56     ` Dmitry Torokhov
2015-05-26 18:56     ` Dmitry Torokhov
2015-05-27  8:04     ` Tomeu Vizoso
2015-05-27  8:04       ` Tomeu Vizoso
2015-05-27  8:04       ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 07/21] of/platform: Ensure device registration on lookup Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 08/21] gpio: Probe GPIO drivers on demand Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 09/21] gpio: Probe pinctrl devices " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 10/21] regulator: core: Probe regulators " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 17:32   ` Mark Brown
2015-05-25 17:32     ` Mark Brown
2015-05-26  6:17     ` Tomeu Vizoso
2015-05-26  6:17       ` Tomeu Vizoso
2015-05-26  9:36       ` Mark Brown
2015-05-26  9:36         ` Mark Brown
2015-05-26 15:08         ` Tomeu Vizoso
2015-05-26 15:08           ` Tomeu Vizoso
2015-05-26 16:54           ` Mark Brown
2015-05-26 16:54             ` Mark Brown
2015-05-26 17:53             ` Tomeu Vizoso
2015-05-26 17:53               ` Tomeu Vizoso
2015-05-26 19:55               ` Mark Brown
2015-05-26 19:55                 ` Mark Brown
2015-05-25 14:53 ` [PATCH 11/21] drm: Probe panels " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 12/21] drm/tegra: Probe dpaux devices " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
     [not found] ` <1432565608-26036-1-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-05-25 14:53   ` [PATCH 13/21] i2c: core: Probe i2c master " Tomeu Vizoso
2015-05-25 14:53     ` Tomeu Vizoso
2015-05-25 14:53     ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 14/21] pwm: Probe PWM chip " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 15/21] backlight: Probe backlight " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-26  7:18   ` Lee Jones
2015-05-26  7:18     ` Lee Jones
2015-05-26  7:18     ` Lee Jones
2015-05-26  7:25     ` Sascha Hauer
2015-05-26  7:25       ` Sascha Hauer
2015-05-26  7:25       ` Sascha Hauer
2015-05-26  8:39       ` Lee Jones
2015-05-26  8:39         ` Lee Jones
2015-05-26  8:39         ` Lee Jones
2015-05-26 12:01         ` Tomeu Vizoso
2015-05-26 12:01           ` Tomeu Vizoso
2015-05-26 12:01           ` Tomeu Vizoso
2015-05-26 13:34           ` Lee Jones
2015-05-26 13:34             ` Lee Jones
2015-05-26 13:34             ` Lee Jones
2015-05-25 14:53 ` [PATCH 16/21] usb: phy: Probe phy " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-26 14:44   ` Felipe Balbi
2015-05-26 14:44     ` Felipe Balbi
2015-05-25 14:53 ` [PATCH 17/21] clk: Probe clk providers " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-28  6:16   ` Michael Turquette
2015-05-28  6:16     ` Michael Turquette
2015-05-28  6:16     ` Michael Turquette
2015-05-25 14:53 ` [PATCH 18/21] pinctrl: Probe pinctrl devices " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 19/21] phy: core: Probe phy providers " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 20/21] dma: of: Probe DMA controllers " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 21/21] power-supply: Probe power supplies " Tomeu Vizoso
2015-05-25 14:53   ` Tomeu Vizoso
2015-05-28  4:33 ` [PATCH 00/21] On-demand device registration Rob Herring
2015-05-28  4:33   ` Rob Herring
2015-05-28  4:33   ` Rob Herring
2015-05-28  4:33   ` Rob Herring
2015-06-03 19:57   ` Grygorii.Strashko@linaro.org
2015-06-03 19:57     ` Grygorii.Strashko@linaro.org
2015-06-03 19:57     ` Grygorii.Strashko-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org
2015-06-03 19:57     ` Grygorii.Strashko@linaro.org
2015-06-04  8:39     ` Tomeu Vizoso
2015-06-04  8:39       ` Tomeu Vizoso
2015-06-04  8:39       ` Tomeu Vizoso
2015-06-04  8:39       ` Tomeu Vizoso
2015-06-04 16:51       ` Grygorii.Strashko@linaro.org
2015-06-04 16:51         ` Grygorii.Strashko@linaro.org
2015-06-04 16:51         ` Grygorii.Strashko@linaro.org
2015-06-04 16:51         ` Grygorii.Strashko@linaro.org
2015-06-04 20:39     ` Alexander Holler
2015-06-04 20:39       ` Alexander Holler
2015-06-04 20:39       ` Alexander Holler
2015-06-04 20:39       ` Alexander Holler
2015-06-08 12:26       ` Enrico Weigelt, metux IT consult
2015-06-08 12:26         ` Enrico Weigelt, metux IT consult
2015-06-08 12:26         ` Enrico Weigelt, metux IT consult
2015-06-08 12:26         ` Enrico Weigelt, metux IT consult
2015-06-08 18:14         ` Alexander Holler
2015-06-08 18:14           ` Alexander Holler
2015-06-08 18:14           ` Alexander Holler
2015-06-08 18:14           ` Alexander Holler
2015-06-08 18:18           ` Alexander Holler
2015-06-08 18:18             ` Alexander Holler
2015-06-08 18:18             ` Alexander Holler
2015-06-08 18:18             ` Alexander Holler
2015-06-22 15:23   ` Tomeu Vizoso
2015-06-22 15:23     ` Tomeu Vizoso
2015-06-22 15:23     ` Tomeu Vizoso
2015-06-22 15:23     ` Tomeu Vizoso
2015-06-22 15:23     ` Tomeu Vizoso
2015-06-23  0:01     ` Rob Herring
2015-06-23  0:01       ` Rob Herring
2015-06-23  0:01       ` Rob Herring
2015-06-23  0:01       ` Rob Herring
2015-06-23  0:01       ` Rob Herring
2015-06-02  8:48 ` Linus Walleij
2015-06-02  8:48   ` Linus Walleij
2015-06-02  8:48   ` Linus Walleij
2015-06-02  8:48   ` Linus Walleij
2015-06-02 10:14   ` Tomeu Vizoso
2015-06-02 10:14     ` Tomeu Vizoso
2015-06-02 10:14     ` Tomeu Vizoso
2015-06-02 10:14     ` Tomeu Vizoso
2015-06-10  7:30     ` Linus Walleij
2015-06-10  7:30       ` Linus Walleij
2015-06-10  7:30       ` Linus Walleij
2015-06-10  7:30       ` Linus Walleij
2015-06-10  8:28       ` Alexander Holler
2015-06-11  8:12         ` Linus Walleij
2015-06-11  8:12           ` Linus Walleij
2015-06-11  8:12           ` Linus Walleij
2015-06-11 10:17           ` Alexander Holler
2015-06-11 10:17             ` Alexander Holler
2015-06-11 10:17             ` Alexander Holler
     [not found]             ` <5579602F.1070801-SXC+2es9fhnfWeYVQQPykw@public.gmane.org>
2015-06-11 11:24               ` Alexander Holler
2015-06-11 11:24                 ` Alexander Holler
2015-06-11 11:24                 ` Alexander Holler
     [not found]                 ` <55796FDE.7080701-SXC+2es9fhnfWeYVQQPykw@public.gmane.org>
2015-06-11 11:49                   ` Alexander Holler
2015-06-11 11:49                     ` Alexander Holler
2015-06-11 11:49                     ` Alexander Holler
2015-06-11 12:30             ` Linus Walleij
2015-06-11 12:30               ` Linus Walleij
2015-06-11 12:30               ` Linus Walleij
2015-06-11 16:40               ` Alexander Holler
2015-06-11 16:40                 ` Alexander Holler
     [not found]                 ` <5579B9E8.9040609-SXC+2es9fhnfWeYVQQPykw@public.gmane.org>
2015-06-12  7:25                   ` Linus Walleij
2015-06-12  7:25                     ` Linus Walleij
2015-06-12  7:25                     ` Linus Walleij
     [not found]                     ` <CACRpkdbDSS0yw=q_cR17Bvg+kgTfU3Vcd2gSjx1p4V-CzOZ_SA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-12 11:19                       ` Alexander Holler
2015-06-12 11:19                         ` Alexander Holler
2015-06-12 11:19                         ` Alexander Holler
2015-06-12 11:36                         ` Alexander Holler
2015-06-12 11:36                           ` Alexander Holler
2015-06-13 18:27                           ` Alexander Holler
2015-06-13 18:27                             ` Alexander Holler
2015-06-13 18:27                             ` Alexander Holler
     [not found]                             ` <557C7609.30400-SXC+2es9fhnfWeYVQQPykw@public.gmane.org>
2015-06-15  8:58                               ` Linus Walleij
2015-06-15  8:58                                 ` Linus Walleij
2015-06-15  8:58                                 ` Linus Walleij
     [not found]                                 ` <CACRpkdaVZmq_w_qgEgTP5oqfH3K1+80O7z7o7CJx-dhivUGhDQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-15  9:42                                   ` Alexander Holler
2015-06-15  9:42                                     ` Alexander Holler
2015-06-15  9:42                                     ` Alexander Holler
2015-06-11 13:09             ` Tomeu Vizoso
2015-06-11 13:09               ` Tomeu Vizoso
2015-06-11 13:09               ` Tomeu Vizoso
2015-06-10 10:19       ` Tomeu Vizoso
2015-06-10 10:19         ` Tomeu Vizoso
2015-06-10 10:19         ` Tomeu Vizoso
2015-06-10 10:19         ` Tomeu Vizoso
2015-06-10 12:23         ` Andrzej Hajda
2015-06-10 12:23           ` Andrzej Hajda
2015-06-10 12:23           ` Andrzej Hajda
2015-06-10 18:38           ` Alexander Holler
2015-06-11  8:15         ` Linus Walleij
2015-06-11  8:15           ` Linus Walleij
2015-06-11  8:15           ` Linus Walleij
2015-06-11  8:15           ` Linus Walleij
2015-06-11  9:56           ` Tomeu Vizoso
2015-06-11  9:56             ` Tomeu Vizoso
2015-06-11  9:56             ` Tomeu Vizoso
2015-06-02 22:54   ` Alexander Holler [this message]
2015-06-03 21:12 ` Rob Clark
2015-06-03 21:12   ` Rob Clark
2015-06-03 21:12   ` Rob Clark
2015-06-03 21:12   ` Rob Clark
2015-06-04 21:03   ` Alexander Holler
2015-06-04 21:03     ` Alexander Holler
2015-06-04 21:03     ` Alexander Holler
2015-06-04 21:03     ` Alexander Holler

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=556E3427.6000704@ahsoftware.de \
    --to=holler@ahsoftware.de \
    --cc=dan.j.williams@intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=grant.likely@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=list@wandq.ahsoftware \
    --cc=mark.rutland@arm.com \
    --cc=open@wandq.ahsoftware \
    --cc=robh+dt@kernel.org \
    --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.