linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: b-cousson@ti.com (Cousson, Benoit)
To: linux-arm-kernel@lists.infradead.org
Subject: How to handle named resources with DT?
Date: Fri, 12 Aug 2011 17:09:33 +0200	[thread overview]
Message-ID: <4E45422D.4050708@ti.com> (raw)
In-Reply-To: <201108121635.42953.arnd@arndb.de>

On 8/12/2011 4:35 PM, Arnd Bergmann wrote:
> On Friday 12 August 2011, Felipe Balbi wrote:
>> On Fri, Aug 12, 2011 at 01:02:18PM +1000, David Gibson wrote:
>>
>> the whole point of using *byname() is for the driver to not care about
>> the order of the resources. So if driver has to provided an ordered list
>> of names, what's the benefit ? Sounds really stupid to provide an
>> ordered list of names to an ordered list of resources, just to use
>> *byname() instead of just assuming the list of resources is already
>> ordered.
>
> It only make sense for drivers that support both device tree probing
> and legacy probing of static platform devices.
>
> Note how almost all drivers use only platform_get_resource and not
> platform_get_resource_byname:
>
> arnd at ocdc-kvm:~/linux-arm$ git grep -wl platform_get_resource | wc -l
> 565
> arnd at ocdc-kvm:~/linux-arm$ git grep -wl platform_get_resource_byname | wc -l
> 41
> arnd at ocdc-kvm:~/linux-arm$ git grep -wl platform_get_resource_byname | xargs grep -wL platform_get_resource | wc -l # both
> 28
> arnd at ocdc-kvm:~/linux-arm$ git grep -wl platform_get_resource_byname | xargs grep -wl platform_get_resource  | wc -l # only _byname
> 13

That's true, but this is mainly because most of the time there is only 
one irq, dma or mem resource, so the _byname is not useful.
As soon as you start having multiple entries, relying on the order 
become less readable and error prone. Then getting the resource by name 
become useful.
There are probably a lot of API that are less used than this one, but 
does that mean that we have to remove them?

The extreme case (soon in mainline) in OMAP is that one:

static struct omap_hwmod_addr_space omap44xx_aess_addrs[] = {
	{
		.name		= "dmem",
		.pa_start	= 0x40180000,
		.pa_end		= 0x4018ffff
	},
	{
		.name		= "cmem",
		.pa_start	= 0x401a0000,
		.pa_end		= 0x401a1fff
	},
	{
		.name		= "smem",
		.pa_start	= 0x401c0000,
		.pa_end		= 0x401c5fff
	},
	{
		.name		= "pmem",
		.pa_start	= 0x401e0000,
		.pa_end		= 0x401e1fff
	},
	{
		.name		= "reg",
		.pa_start	= 0x401f1000,
		.pa_end		= 0x401f13ff,
		.flags		= ADDR_TYPE_RT
     }
};

In that case, the driver knows exactly where is the relevant memory 
buffer he has to use.

> 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.

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.
Moreover that seems much more consistent with the device tree format in 
general that does rely a lot on named properties for passing parameter 
to driver. That just my .2 cents.

Regards,
Benoit

  reply	other threads:[~2011-08-12 15:09 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 [this message]
2011-08-12 17:21                                     ` Grant Likely
2011-08-24 19:15                                       ` Kevin Hilman
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=4E45422D.4050708@ti.com \
    --to=b-cousson@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).