linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: holler@ahsoftware.de (Alexander Holler)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 0/9] dt: dependencies (for deterministic driver initialization order based on the DT)
Date: Tue, 26 Aug 2014 14:00:40 +0200	[thread overview]
Message-ID: <53FC76E8.5050009@ahsoftware.de> (raw)
In-Reply-To: <20140826114718.GB641@ulmo>

Am 26.08.2014 13:47, schrieb Thierry Reding:
> On Tue, Aug 26, 2014 at 01:23:54PM +0200, Alexander Holler wrote:
>> Am 26.08.2014 13:08, schrieb Thierry Reding:
>>> On Tue, Aug 26, 2014 at 12:44:35PM +0200, Alexander Holler wrote:
>>>> Am 26.08.2014 12:25, schrieb Thierry Reding:
>>>>> On Tue, Aug 26, 2014 at 11:42:04AM +0200, Alexander Holler wrote:
>>>>
>>>>>> You need either the type information in the DTB (that's why I've add those
>>>>>> "dependencies" to identify phandles), or you need to know every binding (at
>>>>>> "dependency-resolve-time" to identify phandles. The latter is impracticable
>>>>>> to implement in a generic way (for use with every possible binding).
>>>>>
>>>>> Like I already mentioned, this could be done in drivers who contain that
>>>>> information already anyway. Or parts of it could be done in subsystem-
>>>>> specific callbacks where a generic binding is available.
>>>>
>>>> That would end up with almost the same ugly driver-based workarounds as now.
>>>> It's much better if a driver author only has to define it's prerequisits (in
>>>> form of dependencies in the dts) and could be sure the driver will only be
>>>> probed if those are met, than to do that stuff based on a subsystem or even
>>>> driver level.
>>>>
>>>> If you add dependency-information to drivers, you have two problems:
>>>
>>> We already have all that dependency information in drivers anyway. Each
>>> driver requests the resources at .probe() time. What I proposed (it was
>>> really Arnd who proposed it first) is to move that information out of
>>> code and into some sort of table that could be used by the driver core
>>> to figure out dependencies.
>>>
>>>> - How do you get these information from the driver (remember, currently
>>>> there is only one initial call, a initcall which might do almost anything)
>>>
>>> While I don't think it's necessary, that's something that could be
>>> changed. I mean, we have access to the full source code of this
>>> operating system, so we can change every aspect of it. If we can't find
>>> a way to make this work with the current initcall sequence it's always
>>> an option to extend that sequence so that it meets our needs.
>>>
>>>> - These information might become outdated and you would have to change all
>>>> drivers. E.g. if the name of a dependency (driver) changes it wouldn't be
>>>> done with changing the dts (maybe plural), but you would have to change the
>>>> source of all dependant drivers too.
>>>
>>> No. Drivers implement a DT binding. That binding defines what power
>>> supplies, clocks, pinmux, ... the device needs. Those constitute the
>>> dependencies. We most certainly don't want to depend on driver names
>>> since there can be a multitude of different drivers that provide a given
>>> dependency.
>>>
>>> What drivers should provide (and what they already provide today) is the
>>> name of the property and the index of the cell that they expect to find
>>> a phandle in as well as the type of the phandle. That's all that's
>>> necessary, really. Everything else can be derived from that phandle and
>>> the type.
>>
>> Drivers don't provide that information (dependencies) in any usable way. And
>> as you said yourself, it's already contained in phandles. So what we are
>> discussing here about? The proposal to use phandles for that is already on
>> the table since several month. ;)
>>
>> Sorry, but I don't understand what you want to propose.
>
> In many cases we simply don't know where phandles are stored since we
> don't have the type information in DT. But drivers already know the type
> of a specific phandle and where to get it from, so the proposal is to
> make that knowledge more generally useful so that it can be used for
> dependency resolution.

How?

Anyway, I'm leaving this discussion. I've already made a proposal which 
solved most mentioned problems (imho) and even offered usable patches 
(ok, they suffer under the "not invented here" syndrom, but ...). ;)

But please continue this discussion, I will try to not disturb it anymore.

Regards,

Alexander Holler

  reply	other threads:[~2014-08-26 12:00 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-12 16:47 [RFC PATCH 0/9] dt: dependencies (for deterministic driver initialization order based on the DT) Alexander Holler
2014-05-12 16:47 ` [RFC PATCH 1/9] dt: deps: dtc: Automatically add new property 'dependencies' which contains a list of referenced phandles Alexander Holler
2014-05-17 12:16   ` Tomasz Figa
2014-05-19 12:35     ` Alexander Holler
     [not found]       ` <CAJgR-BhRtc1XGqk-TVOrf2y_pYS+nratkPrf+OenP4SFcyK3ng@mail.gmail.com>
2014-05-19 17:26         ` Alexander Holler
2014-05-27 20:02       ` Grant Likely
2014-05-27 20:31         ` Alexander Holler
2014-05-12 16:47 ` [RFC PATCH 2/9] dt: deps: dependency based device creation Alexander Holler
2014-05-14 14:05   ` Grant Likely
2014-05-14 14:49     ` Alexander Holler
2014-05-14 17:20       ` Alexander Holler
2014-05-14 20:06       ` Grant Likely
2014-05-14 21:10         ` Alexander Holler
2014-05-16 11:00           ` Grant Likely
2014-05-18  9:53             ` Alexander Holler
2014-05-16 17:31           ` Alexander Shiyan
2014-05-14 15:51     ` Alexander Holler
2014-05-17 14:24     ` Tomasz Figa
2014-05-18 14:59       ` Grant Likely
2014-05-19  8:41         ` Alexander Holler
2014-05-12 16:47 ` [RFC PATCH 3/9] dt: deps: dtc: Add option to print initialization order Alexander Holler
     [not found]   ` <CAJgR-BhnFngGr9qxa7NvF7GExiCAr1=HS16AtN20uj7nCmLcKQ@mail.gmail.com>
2014-05-12 22:58     ` Alexander Holler
2014-05-12 16:47 ` [RFC PATCH 4/9] dt: deps: dtc: Add option to print dependency graph as dot (Graphviz) Alexander Holler
2014-05-12 16:47 ` [RFC PATCH 5/9] dt: deps: register drivers based on the initialization order based on DT Alexander Holler
2014-05-14 14:13   ` Grant Likely
2014-05-14 14:58     ` Alexander Holler
2014-05-14 19:32       ` Grant Likely
2014-05-12 16:47 ` [RFC PATCH 6/9] dt: deps: WIP: well done drivers Alexander Holler
2014-05-12 16:47 ` [RFC PATCH 7/9] dt: deps: kirkwood: make it possible to use CONFIG_OF_DEPENDENCIES Alexander Holler
2014-05-12 16:47 ` [RFC PATCH 8/9] dt: deps: dts: kirkwood: dockstar: add dependency ehci -> usb power regulator Alexander Holler
2014-05-12 16:48 ` [RFC PATCH 9/9] dt: deps: omap2: make it possible to use CONFIG_OF_DEPENDENCIES Alexander Holler
2014-05-13 15:40 ` [PATCH 10/9] dt: deps: fix bug not registering late drivers when OF_DEPENDENCIES is disabled Alexander Holler
2014-05-13 19:27 ` [RFC PATCH 11/9] dt: deps: dtc: introduce new (virtual) property no-dependencies Alexander Holler
2014-05-14 14:19 ` [RFC PATCH 0/9] dt: dependencies (for deterministic driver initialization order based on the DT) Grant Likely
2014-05-14 15:02   ` Alexander Holler
2014-05-14 16:05     ` Grant Likely
2014-05-14 16:23       ` Alexander Holler
2014-05-14 17:30         ` Rob Herring
2014-05-14 17:45           ` Alexander Holler
2014-05-14 17:53             ` Alexander Holler
2014-05-14 18:16               ` Alexander Holler
2014-05-14 19:13                 ` Alexander Holler
2014-05-14 19:06             ` Rob Herring
2014-05-14 19:24               ` Alexander Holler
2014-05-15  1:46                 ` Alexander Holler
2014-05-14 23:00               ` Alexander Holler
2014-08-21 14:02   ` Thierry Reding
2014-08-21 19:19     ` Alexander Holler
2014-08-22 13:19       ` Mark Rutland
2014-08-22 15:45         ` Alexander Holler
2014-08-25  9:39         ` Thierry Reding
2014-08-25 13:08           ` Jon Loeliger
2014-08-25 13:37             ` Thierry Reding
2014-08-25 14:13               ` Jon Loeliger
2014-08-25 14:41                 ` Thierry Reding
2014-08-26  8:42               ` Grant Likely
2014-08-26  8:49                 ` Thierry Reding
2014-08-26  9:42                   ` Alexander Holler
2014-08-26 10:11                     ` Mark Rutland
2014-08-26 10:24                       ` Thierry Reding
2014-08-27 10:34                       ` Grant Likely
2014-08-27 14:44                         ` Catalin Marinas
2014-08-27 16:22                           ` Stephen Warren
2014-08-27 16:30                             ` Alexander Holler
2014-08-27 16:37                               ` Stephen Warren
2014-08-27 16:58                                 ` Alexander Holler
2014-08-27 17:52                                 ` Catalin Marinas
2014-08-27 18:14                                   ` Alexander Holler
2014-08-28  6:50                                 ` Alexander Holler
2014-08-28  9:23                                   ` Catalin Marinas
2014-08-29  1:43                                     ` Alexander Holler
2014-08-26 10:25                     ` Thierry Reding
2014-08-26 10:44                       ` Alexander Holler
2014-08-26 11:01                         ` Alexander Holler
2014-08-26 11:08                         ` Thierry Reding
2014-08-26 11:23                           ` Alexander Holler
2014-08-26 11:47                             ` Thierry Reding
2014-08-26 12:00                               ` Alexander Holler [this message]
2014-08-26 13:58                                 ` Jon Loeliger
2014-08-26 14:17                                   ` Thierry Reding
2014-08-27  7:16                                   ` Alexander Holler
2014-08-27  9:26                                     ` Alexander Holler
2014-08-26  7:56             ` Alexander Holler
2014-08-26  8:51             ` Grant Likely
2014-08-26  9:56               ` Alexander Holler
2014-08-26 10:18               ` Alexander Holler
2014-08-26  9:54           ` Mark Rutland

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=53FC76E8.5050009@ahsoftware.de \
    --to=holler@ahsoftware.de \
    --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).