linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andy Green <andy@warmcat.com>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Jaswinder Singh <jaswinder.singh@linaro.org>,
	Linux USB list <linux-usb@vger.kernel.org>,
	lkml <linux-kernel@vger.kernel.org>,
	arnd@arndb.de, broonie@opensource.wolfsonmicro.com,
	roger.quadros@nokia.com, greg@kroah.com,
	grant.likely@secretlab.ca,
	Nicolas Pitre <nicolas.pitre@linaro.org>
Subject: Re: RFC: Platform data for onboard USB assets
Date: Tue, 22 Mar 2011 22:37:42 +0000	[thread overview]
Message-ID: <4D8924B6.8040403@linaro.org> (raw)
In-Reply-To: <1300828125.2402.300.camel@pasglop>

On 03/22/2011 09:08 PM, Somebody in the thread at some point said:
>> Q(b) If yes, what 'key' is most suitable for identifying the right
>> device
>>    to attach the data to ?
>
> We already pointed out that in the case of soldered-in device, the
> "path" as in the series of -physical- ports leading to the device is
> going to be stable.

Agreed.

> For anything else, there's no solution. If the device doesn't have a
> unique ID, you are toast, period.

If you mean pluggable device tagging then I also agree it's for sure not 
in scope for this kind of action.

> On the other hand, I still think platform_data suck big time. Grant made
> some good points about the lack of proper typing for example. I believe

Well, you share that opinion with Grant at least, although reasons to 
back it up were in shorter supply.  "Proper typing" as a serious issue 
with platform_data rather than just being an impressive-sounding claim 
-- or a "good point" -- doesn't resonate with me at all  -->

There is proper typing for the all the members of the platform_data 
structs on both sides; both the board definition file and the driver 
both deal with a member u8 mac[6] as a u8 mac[6], say.  The only time a 
void * is involved is so the generic struct device can point to the 
driver-specific platform_data struct.  I guess we agree about that much, 
that the scope of untyped members is just void * one per struct device, 
to the platform_data.  Otherwise the thing is typesafe either side for 
members.

If the board definition file put a pointer to the wrong platform data 
struct in a device, it's true it'd accept it at compiletime and crash 
and burn at runtime.  But it'd be a gross bug in the code that'd always 
be wrong, like attaching platform data for configuring a usb host to a 
uart device or so.  It seems the guy writing this will notice quickly 
his uart doesn't work or blows OOPSes and investigate and permanently 
fix it.  The fallout of the void * involved is limited to that situation 
alone.

Likewise if the device path mapping stuff works as it seems is now 
generally accepted it would within restrictions typical for SoC 
environment, you either wrote code to deliver the right or the wrong 
platform_data there.  If it can't be you soldered a WLAN module on mmc1, 
you attach async platform_data appropriate for the WLAN module's driver, 
but actually, a WiMAX driver got applied and now the platform_data via 
the void * is wrong; the whole situation would be wrong because the 
wrong driver came.

So while I see the point about void * and no type checking, it doesn't 
allow any more subtle error than pointing at the wrong or the right 
platform_data struct in the code.  In practice, you will notice that 
whatever it is you thought you were setting via platform_data is getting 
set to something uncontrolled if it is "not the platform_data you are 
looking for" and go fix it in the code.  For these reasons of its 
problem being in such a narrow domain, it seems to me quite a weak stick 
to wave at platform_data.

> that a device-tree based approach is much better in the long run (and
> more flexible) despite Andy odd quasi-religious aversion for it.

As Mark Brown wrote earlier about this, the Device Tree "implementation 
just isn't there in mainline".

-Andy

  reply	other threads:[~2011-03-22 22:37 UTC|newest]

Thread overview: 156+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-11  9:50 RFC: Platform data for onboard USB assets Andy Green
2011-03-11 12:31 ` Arnd Bergmann
2011-03-11 12:44   ` Andy Green
2011-03-11 14:42     ` Roger Quadros
2011-03-11 15:12       ` Roger Quadros
2011-03-11 15:22       ` Arnd Bergmann
2011-03-11 15:50         ` Roger Quadros
2011-03-11 15:55           ` Arnd Bergmann
2011-03-11 15:29   ` Mark Brown
2011-03-11 15:54     ` Arnd Bergmann
2011-03-11 16:03       ` Mark Brown
2011-03-11 16:14         ` Greg KH
2011-03-11 16:27           ` Mark Brown
2011-03-11 16:35             ` Greg KH
2011-03-11 16:48               ` Mark Brown
2011-03-11 16:56                 ` Greg KH
2011-03-11 17:08                   ` Mark Brown
2011-03-11 17:23                     ` Greg KH
2011-03-11 17:41                       ` Mark Brown
2011-03-17  2:14                       ` Nicolas Pitre
2011-03-17 20:13                         ` Greg KH
2011-03-17 20:18                           ` Mark Brown
2011-03-17 20:26                             ` Greg KH
2011-03-17 21:24                               ` Mark Brown
2011-03-17 21:31                                 ` Greg KH
2011-03-17 21:40                                   ` Mark Brown
2011-03-17 21:47                                     ` Greg KH
2011-03-17 22:33                                       ` Arnd Bergmann
2011-03-17 22:53                                         ` Greg KH
2011-03-17 23:18                                           ` Andy Green
2011-03-17 23:25                                             ` Greg KH
2011-03-18  7:42                                               ` Andy Green
2011-03-18 22:54                                                 ` Benjamin Herrenschmidt
2011-03-18 22:57                                                   ` Andy Green
2011-03-18  4:54                                             ` Grant Likely
2011-03-18  8:19                                               ` Arnd Bergmann
2011-03-17 23:22                                         ` Andy Green
2011-03-18 15:00                                           ` Arnd Bergmann
2011-03-18 15:15                                             ` Mark Brown
2011-03-18 17:52                                             ` Andy Green
2011-03-18 18:20                                               ` David Anders
2011-03-18 18:25                                                 ` Mark Brown
2011-03-18 20:02                                                   ` Andy Green
2011-03-18 21:11                                                     ` Arnd Bergmann
2011-03-18 21:17                                                       ` Andy Green
2011-03-18 20:06                                               ` Arnd Bergmann
2011-03-18 21:33                                                 ` Andy Green
2011-03-18 23:25                                                   ` Mark Brown
2011-03-18 23:33                                                     ` Andy Green
2011-03-18 21:36                                                 ` Grant Likely
2011-03-18 22:47                                                 ` Benjamin Herrenschmidt
2011-03-18 21:28                                               ` Grant Likely
2011-03-18 23:04                                                 ` Andy Green
2011-03-18 22:37                                           ` Benjamin Herrenschmidt
2011-03-18 22:39                                             ` Andy Green
2011-03-17 23:27                                         ` Grant Likely
2011-03-18  7:49                                           ` Andy Green
2011-03-18  8:25                                             ` Arnd Bergmann
2011-03-18  8:38                                               ` Andy Green
2011-03-17 22:11                               ` Arnd Bergmann
2011-03-17 22:20                                 ` Greg KH
2011-03-18  8:42                                 ` Roger Quadros
2011-03-18  9:01                                   ` Arnd Bergmann
2011-03-18  9:55                                     ` Roger Quadros
2011-03-18 10:09                                       ` Andy Green
2011-03-17 21:03                           ` Nicolas Pitre
2011-03-17 21:32                             ` Greg KH
2011-03-11 16:26         ` Andy Green
2011-03-11 16:45           ` Alan Stern
2011-03-11 16:51             ` Andy Green
2011-03-11 17:08               ` Greg KH
2011-03-11 18:09                 ` Andy Green
2011-03-11 19:12                   ` Alan Stern
2011-03-11 20:05                     ` Andy Green
2011-03-11 20:21                       ` Greg KH
2011-03-11 21:07                         ` Andy Green
2011-03-11 21:44                           ` Greg KH
2011-03-11 22:24                             ` Andy Green
2011-03-12 16:00                             ` Alan Stern
2011-03-12 23:02                               ` Andy Green
2011-03-11 19:37                   ` Greg KH
2011-03-11 16:53             ` Mark Brown
2011-03-11 16:08 ` Greg KH
2011-03-11 16:20   ` Andy Green
2011-03-11 16:36     ` Greg KH
2011-03-11 16:41       ` Andy Green
2011-03-11 22:07         ` Benjamin Herrenschmidt
2011-03-11 21:52 ` Benjamin Herrenschmidt
2011-03-11 22:45 ` Grant Likely
2011-03-11 22:47   ` Andy Green
2011-03-11 23:39     ` Grant Likely
2011-03-14 14:54   ` Arnd Bergmann
2011-03-22 15:05 ` Jaswinder Singh
2011-03-22 16:04   ` Andy Green
2011-03-22 18:19     ` Jaswinder Singh
2011-03-22 18:37       ` Andy Green
2011-03-22 18:59         ` Jaswinder Singh
2011-03-22 19:35           ` Andy Green
     [not found] ` <AANLkTim=ezye=1fQP_1a2SWbPnbENP9B+k27Z3AkS=zf@mail.gmail.com>
2011-03-22 15:12   ` Mark Brown
2011-03-22 15:23     ` Jaswinder Singh
2011-03-24 18:56     ` Grant Likely
2011-03-22 21:08   ` Benjamin Herrenschmidt
2011-03-22 22:37     ` Andy Green [this message]
2011-03-23  1:03       ` Benjamin Herrenschmidt
2011-03-23  2:26         ` Nicolas Pitre
2011-03-23  3:23           ` Benjamin Herrenschmidt
2011-03-23  4:21             ` Nicolas Pitre
2011-03-23  4:56               ` Greg KH
2011-03-23  5:44               ` Benjamin Herrenschmidt
2011-03-23  9:38               ` Alan Cox
2011-03-23 10:53                 ` Mark Brown
2011-03-23 15:04                   ` Greg KH
2011-03-23 15:10                     ` Mark Brown
2011-03-23 15:24                     ` Andy Green
2011-03-23 15:45                       ` Arnd Bergmann
2011-03-23 15:38                     ` Nicolas Pitre
2011-03-23  9:31             ` Andy Green
2011-03-23  9:47               ` Alan Cox
2011-03-23 10:06                 ` Andy Green
2011-03-23 10:32                   ` Arnd Bergmann
2011-03-23 10:39                     ` Andy Green
2011-03-23 10:56                       ` Alan Cox
2011-03-23 11:13                         ` Andy Green
2011-03-23 11:34                           ` Alan Cox
2011-03-23 12:02                             ` Andy Green
2011-03-23 15:08                     ` Greg KH
2011-03-23 16:12                       ` Arnd Bergmann
2011-03-23 16:22                         ` Greg KH
2011-03-23 16:34                           ` Andy Green
2011-03-23 16:56                           ` [RFC] usbnet: use eth%d name for known ethernet devices Arnd Bergmann
2011-03-23 17:04                             ` Andy Green
2011-03-23 17:11                               ` Arnd Bergmann
2011-03-24 10:45                                 ` Andy Green
2011-03-23 17:13                             ` Arnd Bergmann
2011-03-23 17:54                               ` David Anders
2011-03-23 18:46                             ` Greg KH
2011-03-23 19:35                               ` Arnd Bergmann
     [not found]                                 ` <AANLkTim7hPfTv3gDYnh+jGxHBg0OvX=r1FKYoHnH7H_o@mail.gmail.com>
2011-03-23 19:57                                   ` Arnd Bergmann
2011-03-23 19:59                                     ` Randy Dunlap
2011-03-23 23:17                                       ` Michal Nazarewicz
2011-03-23 23:19                                         ` Randy Dunlap
2011-03-23 23:38                                         ` Steve Calfee
2011-03-24  0:01                                           ` Ben Hutchings
2011-03-24 13:13                                             ` Arnd Bergmann
2011-03-24 13:15                                               ` Arnd Bergmann
2011-03-24 13:44                                                 ` Andy Green
2011-03-24 13:56                                                 ` Alan Stern
2011-03-24 17:20                                                 ` Alexey Orishko
2011-03-25 11:57                                                   ` Arnd Bergmann
2011-03-25 16:26                                                     ` Alexey Orishko
2011-03-25 16:43                                                       ` Arnd Bergmann
2011-03-24 19:17                   ` RFC: Platform data for onboard USB assets Grant Likely
2011-03-24 20:10                     ` Andy Green
2011-03-23 14:55                 ` Nicolas Pitre
2011-03-23 10:22               ` Benjamin Herrenschmidt
2011-03-23 15:11                 ` Nicolas Pitre

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=4D8924B6.8040403@linaro.org \
    --to=andy@warmcat.com \
    --cc=andy.green@linaro.org \
    --cc=arnd@arndb.de \
    --cc=benh@kernel.crashing.org \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=grant.likely@secretlab.ca \
    --cc=greg@kroah.com \
    --cc=jaswinder.singh@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=nicolas.pitre@linaro.org \
    --cc=roger.quadros@nokia.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).