From: Alexander Holler <holler@ahsoftware.de>
To: Andrzej Hajda <a.hajda@samsung.com>,
Tomeu Vizoso <tomeu.vizoso@collabora.com>,
Linus Walleij <linus.walleij@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-fbdev@vger.kernel.org" <linux-fbdev@vger.kernel.org>,
linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
open@wandq.ahsoftware,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-pwm@vger.kernel.org" <linux-pwm@vger.kernel.org>,
"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
list@wandq.ahsoftware, Rob Herring <robh+dt@kernel.org>,
DRM PANEL DRIVERS <dri-devel@lists.freedesktop.org>,
dmaengine@vger.kernel.org,
Dan Williams <dan.j.williams@intel.com>,
linux-usb@vger.kernel.org, linux-clk@vger.kernel.org,
Grant Likely <grant.likely@linaro.org>
Subject: Re: [PATCH 00/21] On-demand device registration
Date: Wed, 10 Jun 2015 20:38:40 +0200 [thread overview]
Message-ID: <55788430.3070600@ahsoftware.de> (raw)
In-Reply-To: <55782C3D.5000606@samsung.com>
Am 10.06.2015 um 14:23 schrieb Andrzej Hajda:
> On 06/10/2015 12:19 PM, Tomeu Vizoso wrote:
>> On 10 June 2015 at 09:30, Linus Walleij <linus.walleij@linaro.org> wrote:
>>> On Tue, Jun 2, 2015 at 12:14 PM, Tomeu Vizoso
>>> <tomeu.vizoso@collabora.com> wrote:
>>>> On 2 June 2015 at 10:48, Linus Walleij <linus.walleij@linaro.org> wrote:
>>>
>>>>> 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.)
>>>>
>>>> I understood above that you propose probing devices in order, but now
>>>> you mention that resource getters would block until the dependency is
>>>> fulfilled which confuses me because if we are probing in order then
>>>> all dependencies would be fulfilled before the device in question gets
>>>> probed.
>>>
>>> Sorry, the problem space is a bit convoluted so the answers
>>> get a bit convoluted. Maybe I'm thinking aloud and altering the course
>>> of my thoughts as I type...
>>>
>>> I guess there can be explicit dependencies for resources like this
>>> patch does, but another way would be for all resource fetch functions
>>> to be instrumented, so that you do not block until you try to take
>>> a resource that is not yet there, e.g.:
>>>
>>> regulator_get(...) -> not available, so:
>>> - identify target regulator provider - this will need instrumentation
>>> - probe it
>>>
>>> It then turns out the regulator driver is on the i2c bus, so we
>>> need to probe the i2c driver:
>>> - identify target i2c host for the regulator driver - this will need
>>> instrumentation
>>> - probe the i2c host driver
>>>
>>> i2c host comes out, probes the regulator driver, regulator driver
>>> probes and then the regulator_get() call returns.
>>
>> Hmm, if I understand correctly what you say, this is exactly what this
>> particular series does:
>>
>> regulator_get -> of_platform_device_ensure -> probe() on the platform
>> device that encloses the requested device node (i2c host) -> i2c slave
>> gets probed and the regulator registered -> regulator_get returns the
>> requested resource
>
> The downside of this solution is that it will not work without device
> tree or even without device dependencies not explicitly specified in
> device tree.
Solution for what? The goal isn't to search another fancy
registration/initialization algorithm.
So I wonder which problem that would solve at all. It doesn't give you
some deterministic initialization order nor does it (re)solve
dependencies (besides directly from one driver to another, but that
isn't enough), nor does it solve the problem of identifying drivers (the
other end of such an instrumented on-demand-initialization-call). So all
it would be is some fancy on-demand initialization without having solved
any problem.
Sorry if that sounds hard. Maybe I miss something. But I don't see any
currently existing problem the above described solution would solve,
besides beeing something different (which shouldn't be the goal).
Alexander Holler
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2015-06-10 18:38 UTC|newest]
Thread overview: 52+ 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 ` [PATCH 02/21] ARM: tegra: Add gpio-ranges property 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
[not found] ` <5564CC84.1030700-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
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-28 8:26 ` Tomeu Vizoso
[not found] ` <CAAObsKB-ayRd7OB1W9nYBJzvBDK0RZk1U56Gqxn08sHPT5FvzA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
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-02 11:28 ` Linus Walleij
[not found] ` <CACRpkdbtCDQLaPhWFT0a7NdJmxYzRvhU_efgUh2ZXhbc+FHg3g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
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 20:32 ` Stephen Warren
[not found] ` <558087CE.5070903-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2015-06-17 10:04 ` Tomeu Vizoso
2015-05-25 14:53 ` [PATCH 06/21] of/platform: Add of_platform_device_ensure() Tomeu Vizoso
[not found] ` <1432565608-26036-7-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-05-26 18:56 ` Dmitry Torokhov
2015-05-27 8:04 ` Tomeu Vizoso
[not found] ` <1432565608-26036-1-git-send-email-tomeu.vizoso-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2015-05-25 14:53 ` [PATCH 07/21] of/platform: Ensure device registration on lookup Tomeu Vizoso
2015-05-28 4:33 ` [PATCH 00/21] On-demand device registration Rob Herring
[not found] ` <CAL_Jsq+EWLEJhRudTGAwYsOg4tX2-pGhygeQGHae9RL8rBpMiA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-03 19:57 ` Grygorii.Strashko-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org
2015-06-04 8:39 ` Tomeu Vizoso
2015-06-04 16:51 ` Grygorii.Strashko@linaro.org
[not found] ` <556F5C24.1030101-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-06-04 20:39 ` Alexander Holler
2015-06-08 12:26 ` Enrico Weigelt, metux IT consult
2015-06-08 18:14 ` Alexander Holler
2015-06-08 18:18 ` Alexander Holler
2015-06-22 15:23 ` Tomeu Vizoso
2015-06-23 0:01 ` Rob Herring
2015-06-02 8:48 ` Linus Walleij
2015-06-02 10:14 ` Tomeu Vizoso
2015-06-10 7:30 ` Linus Walleij
2015-06-10 8:28 ` Alexander Holler
2015-06-11 8:12 ` Linus Walleij
2015-06-11 10:17 ` Alexander Holler
[not found] ` <5579602F.1070801-SXC+2es9fhnfWeYVQQPykw@public.gmane.org>
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 12:30 ` Linus Walleij
2015-06-11 16:40 ` Alexander Holler
[not found] ` <5579B9E8.9040609-SXC+2es9fhnfWeYVQQPykw@public.gmane.org>
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:36 ` 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
[not found] ` <CACRpkdaVZmq_w_qgEgTP5oqfH3K1+80O7z7o7CJx-dhivUGhDQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-15 9:42 ` Alexander Holler
2015-06-11 13:09 ` Tomeu Vizoso
2015-06-10 10:19 ` Tomeu Vizoso
2015-06-10 12:23 ` Andrzej Hajda
2015-06-10 18:38 ` Alexander Holler [this message]
2015-06-11 8:15 ` Linus Walleij
2015-06-11 9:56 ` Tomeu Vizoso
2015-06-02 22:54 ` Alexander Holler
2015-06-03 21:12 ` Rob Clark
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=55788430.3070600@ahsoftware.de \
--to=holler@ahsoftware.de \
--cc=a.hajda@samsung.com \
--cc=dan.j.williams@intel.com \
--cc=devicetree@vger.kernel.org \
--cc=dmaengine@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-clk@vger.kernel.org \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@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 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).