From: Andy Green <andy@warmcat.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Greg KH <greg@kroah.com>,
Grant Likely <grant.likely@secretlab.ca>,
devicetree-discuss@lists.ozlabs.org,
Mark Brown <broonie@opensource.wolfsonmicro.com>,
Nicolas Pitre <nicolas.pitre@linaro.org>,
Linux USB list <linux-usb@vger.kernel.org>,
lkml <linux-kernel@vger.kernel.org>
Subject: Re: RFC: Platform data for onboard USB assets
Date: Fri, 18 Mar 2011 21:33:00 +0000 [thread overview]
Message-ID: <4D83CF8C.3020605@linaro.org> (raw)
In-Reply-To: <201103182106.13888.arnd@arndb.de>
On 03/18/2011 08:06 PM, Somebody in the thread at some point said:
Hi -
> The main deficiency of platform_data is that it's very inflexible,
> you have to write code for each new board you want to support,
> something that we've generally moved away from in Linux a decade
> ago.
Well: Greg was also reduced to explaining that device renaming in
userland was decided "a long time ago". It's not argumentation, it is
an appeal to an alleged tradition.
You think that striving away to create this Device Tree description of a
specific board and maintaining it in a bootloader is LESS work somehow
that registering platform devices in an array in the board definition
file? I think not.
> Another problem is that you need to hardcode data structures,
> which is arguably less flexible than key/value pairs.
After you dereferenced your static string via your API, and I
dereferenced my platform_data member, we both end up with a pointer to
data. Board definition file also gets a chance to set that data at
runtime: for example, take a look at the MAC-setting part of my
patchset. What exactly was your point?
> That is 142 unique files in the kernel referencing this (mostly
> powerpc, but also some others), both device drivers and dts files,
Powerpc would appear to be fairly considered as legacy, not the future.
>> =====> If Device Tree APIs is mandated to implement functionality fixes
>> to drivers and platform_data is blocked for this, then we end up with
>> different, rotting functionality for platform_data basis and drivers
>> that remain broken on the many, many, platforms that don't have and will
>> never have Device Tree. That does NOT sound like the right approach.
>
> See the device tree fragment patches that Grant just posted.
> It should become really easy to combine both methods, or to
> gradually migrate without breaking anything.
I take it Grant got over his initial offhand opinion of this RFC -->
''Oh, please no.
platform_data is an ugly non-type-checked anonymous pointer. If you
need to pass data to a driver, use something better designed. A
device tree fragment would work, or provide some kind of query api.
platform_data is definitely the wrong approach.''
I'm super happy if he mastered his distress and suddenly -- no doubt
completely asynchronously to this thread -- decided to interoperate with
platform_data as equals. If that is indeed what has happened.
> The USB layer is not architecture specific, so when we add hacks
> to it for dealing with nondiscoverable hardware properties, we
> should use methods that are accepted everywhere, which platform
> data is not.
EVERY struct device has a platform_data member.
In the very deepest sense, platform_data is already accepted EVERYWHERE
including USB and MMC / SDIO devices.
It is not platform_data that has to make its case.
-Andy
next prev parent reply other threads:[~2011-03-18 21:33 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20110311165642.GA9996@kroah.com>
[not found] ` <20110317214042.GQ31411@opensource.wolfsonmicro.com>
[not found] ` <20110317214736.GA29014@kroah.com>
[not found] ` <20110317214736.GA29014-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2011-03-17 22:33 ` RFC: Platform data for onboard USB assets Arnd Bergmann
[not found] ` <201103172333.01474.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-17 22:53 ` Greg KH
[not found] ` <20110317225328.GB31581-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2011-03-17 23:18 ` Andy Green
2011-03-17 23:25 ` Greg KH
[not found] ` <20110317232503.GA14561-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2011-03-18 7:42 ` Andy Green
[not found] ` <4D830CEC.4040608-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-03-18 22:54 ` Benjamin Herrenschmidt
2011-03-18 22:57 ` Andy Green
[not found] ` <4D8296D1.9060106-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-03-18 4:54 ` Grant Likely
[not found] ` <20110318045401.GA18545-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>
2011-03-18 8:19 ` Arnd Bergmann
2011-03-17 23:27 ` Grant Likely
2011-03-18 7:49 ` Andy Green
[not found] ` <4D830E97.4010403-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-03-18 8:25 ` Arnd Bergmann
[not found] ` <201103180925.30074.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-18 8:38 ` Andy Green
2011-03-17 23:22 ` Andy Green
[not found] ` <4D82979B.2050003-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-03-18 15:00 ` Arnd Bergmann
[not found] ` <201103181600.09877.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-18 15:15 ` Mark Brown
2011-03-18 17:52 ` Andy Green
[not found] ` <4D839BCD.6030202-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-03-18 18:20 ` David Anders
[not found] ` <4D83A25C.804-l0cyMroinI0@public.gmane.org>
2011-03-18 18:25 ` Mark Brown
[not found] ` <20110318182518.GA2271-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2011-03-18 20:02 ` Andy Green
2011-03-18 21:11 ` Arnd Bergmann
[not found] ` <201103182211.36869.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-18 21:17 ` Andy Green
2011-03-18 20:06 ` Arnd Bergmann
2011-03-18 21:33 ` Andy Green [this message]
[not found] ` <4D83CF8C.3020605-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-03-18 23:25 ` Mark Brown
[not found] ` <20110318232553.GA11422-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2011-03-18 23:33 ` Andy Green
[not found] ` <201103182106.13888.arnd-r2nGTMty4D4@public.gmane.org>
2011-03-18 21:36 ` Grant Likely
2011-03-18 22:47 ` Benjamin Herrenschmidt
2011-03-18 21:28 ` Grant Likely
[not found] ` <AANLkTi=Vy4Cu9rf7SpOFL1umN37bJgXhq9jEQpUrqjgw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-03-18 23:04 ` Andy Green
2011-03-18 22:37 ` Benjamin Herrenschmidt
2011-03-18 22:39 ` Andy Green
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=4D83CF8C.3020605@linaro.org \
--to=andy@warmcat.com \
--cc=andy.green@linaro.org \
--cc=arnd@arndb.de \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=grant.likely@secretlab.ca \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=nicolas.pitre@linaro.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).