linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: khilman@ti.com (Kevin Hilman)
To: linux-arm-kernel@lists.infradead.org
Subject: How to handle named resources with DT?
Date: Wed, 24 Aug 2011 12:15:03 -0700	[thread overview]
Message-ID: <87r54a1v0o.fsf@ti.com> (raw)
In-Reply-To: <CACxGe6s-2EAuvSqzn6yzDvCyVXa8vVVqG2X=1XFrUBnB=jsdxQ@mail.gmail.com> (Grant Likely's message of "Fri, 12 Aug 2011 11:21:43 -0600")

Grant Likely <grant.likely@secretlab.ca> writes:

> On Fri, Aug 12, 2011 at 9:09 AM, Cousson, Benoit <b-cousson@ti.com> wrote:
>> On 8/12/2011 4:35 PM, Arnd Bergmann wrote:
 
[...]

>>
>>> I think it's much easier to change the existing users of _byname over
>>> to fixed indexes than to come up with a new scheme that is better.

I disagree.  It's not only about ordering.  More on that below.

>> As you said previously, since we have to support both legacy probing and DT
>> for some time, it will be easier for these drivers to rely on the same API.
>>
>> Considering that adding that new property is not a huge effort anyway and
>> _byname API is a standard API that any driver should be able to use if
>> needed, it still worth adding the DT support for named resources for my
>> point of view.
>
> The assumption being made here is that the current Linux
> implementation detail dictates the binding design, but it does not.
>
> Binding authors should certainly look at the Linux implementation for
> inspiration, but established DT patterns still prevail if they are
> suitable for describing the hardware. In this case the pattern is that
> tuples in the reg property are strongly ordered and specified by the
> driver binding.
>
> So, I remain unconvinced that the 'reg' property binding is
> insufficient.  

If significant, in-tree usages of the feature for platform_devices is
not enough, What are you looking for as convincing arguments? 

> I have no plans to merge support for fetching _byname values from the
> device tree.

I find this an unfortunate position to hold to in this climate of
consolidation.

One of the goals of consolidation is to have core features handled by
core code.  To me this is a classic trade-off.  Either we implement it
in core code, or we force all the users (drivers, in this case) to
implement it themselves.  IMO, consolidation should be pointing us to
solving these kinds of problems in core code, rather than spreading it
across a bunch of drivers (and device code where the data lives.)
Especially so in this case since there are existing, in-tree users
demonstrating the usefulness of _byname.

Not implementing this in core code means all drivers using _byname have
to be converted, adding multiple lines of (IMHO ugly) code when it could
be implemented cleanly by core code, keeping drivers much more readable.
To me, the fact that there would also be an API difference compared to
the existing platform_device probing (which will stay for the forseeable
future) would be a major eye-sore in the drivers.

In addition, converting all the drivers away from _byname is not just a
matter of changing the drivers.  It also means of course you have to
make sure that all of the data is in order.  On OMAP, that means
reworking and/or regenerating all of the hwmod data to ensure it is in
the right order.  Sounds like the kind of churn that would get us
flamed.

But that's not all...

It's not just about data ordering.  As already pointed out, use of
_byname is also used to differentiate between different
versions/capabilities of the IP.  The driver can determine based on the
availability of a named resource the capabilities of the device.
Forcing resource ordering means some other mechanism also has to be
added for detection of the IP version and/or capabilities.

In summary, with the push towards consolidation, we're also trying to
have common drivers that support multiple versions of an IP across
differnet SoCs with varying capabilities.  Having named resources on the
platform_device is an established way of handling this cleanly in the
driver without the driver having to check SoC-specific or IP-version
specific registers.

Kevin

  reply	other threads:[~2011-08-24 19:15 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-09  9:23 How to handle named resources with DT? Cousson, Benoit
2011-08-09 16:29 ` G, Manjunath Kondaiah
2011-08-09 16:57   ` Cousson, Benoit
2011-08-09 17:23     ` Grant Likely
2011-08-09 17:47       ` Cousson, Benoit
2011-08-09 17:52         ` Matt Porter
2011-08-09 18:26         ` Scott Wood
2011-08-09 20:57           ` Grant Likely
2011-08-09 21:08             ` Cousson, Benoit
2011-08-09 21:17               ` Grant Likely
2011-08-09 21:44                 ` Cousson, Benoit
2011-08-09 21:49                   ` Grant Likely
2011-08-09 21:53                     ` Cousson, Benoit
2011-08-10  1:52                       ` David Gibson
2011-08-10  7:11                         ` Paul Walmsley
2011-08-10 15:01                         ` Cousson, Benoit
2011-08-10 15:18                         ` Scott Wood
2011-08-10 15:21                           ` Cousson, Benoit
2011-08-10 19:22                         ` Grant Likely
2011-08-10 19:57                           ` David Brown
2011-08-10 20:12                             ` Grant Likely
2011-08-11 12:28                           ` Cousson, Benoit
2011-08-12  3:02                             ` David Gibson
2011-08-12  8:14                               ` Cousson, Benoit
2011-08-12  8:41                               ` Felipe Balbi
2011-08-12 14:35                                 ` Arnd Bergmann
2011-08-12 15:09                                   ` Cousson, Benoit
2011-08-12 17:21                                     ` Grant Likely
2011-08-24 19:15                                       ` Kevin Hilman [this message]
2011-08-24 23:16                                         ` Felipe Balbi
2011-08-25 10:28                                           ` Russell King - ARM Linux
2011-08-25 15:05                                             ` Arnd Bergmann
2011-08-25 18:16                                               ` Kevin Hilman
2011-08-25 21:02                                                 ` Arnd Bergmann
2011-08-26 11:01                                                   ` Removing platform_get_resource_byname() (was Re: How to handle named resources with DT?) Paul Walmsley
2011-08-26  4:12                                                 ` How to handle named resources with DT? David Gibson
2011-08-26 10:58                                                   ` Arnd Bergmann
2011-08-26 13:06                                                     ` David Gibson
2011-08-26 15:35                                                       ` Arnd Bergmann
2011-08-26 15:41                                                         ` Arnd Bergmann
2011-08-27 14:37                                                           ` David Gibson
2011-08-27 18:13                                                             ` Arnd Bergmann
2011-08-27 19:31                                                               ` Paul Walmsley
2011-08-29 17:16                                                                 ` Arnd Bergmann
2011-08-28  8:39                                                               ` David Gibson
2011-08-28 23:06                                                                 ` Paul Walmsley
2011-08-28 23:43                                                                   ` Russell King - ARM Linux
2011-08-29  1:57                                                                   ` Paul Walmsley
2011-08-29 17:18                                                                 ` Arnd Bergmann
2011-08-27 21:47                                                       ` Paul Walmsley
2011-08-29 21:54                                                         ` Mark Brown
2011-08-26 14:13                                                     ` Cousson, Benoit
2011-08-30  2:29                                                       ` David Gibson
2011-08-30  9:27                                                         ` Felipe Balbi
2011-08-31  2:32                                                           ` David Gibson
2011-08-27 20:00                                                     ` Paul Walmsley
2011-08-25 17:38                                             ` Cousson, Benoit
2011-08-09 21:52                   ` Scott Wood
2011-08-09 20:55         ` Grant Likely
2011-08-09 21:06           ` Cousson, Benoit
2011-08-09 21:16             ` Grant Likely
2011-08-09 21:37               ` Cousson, Benoit
2011-08-12  4:10                 ` Shawn Guo
2011-08-12  8:56                   ` Cousson, Benoit
2011-08-12 11:47                     ` Shawn Guo
2011-08-12 14:40                     ` Arnd Bergmann
2011-08-10  1:29       ` David Gibson
2011-08-10  6:08         ` Paul Walmsley
2011-08-09 19:51 ` Russell King - ARM Linux
2011-08-09 20:59   ` Cousson, Benoit

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=87r54a1v0o.fsf@ti.com \
    --to=khilman@ti.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).