All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Green <andy@warmcat.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Greg KH <greg@kroah.com>,
	Mark Brown <broonie@opensource.wolfsonmicro.com>,
	Arnd Bergmann <arnd@arndb.de>,
	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, 11 Mar 2011 20:05:56 +0000	[thread overview]
Message-ID: <4D7A80A4.6040008@linaro.org> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1103111406270.1975-100000@iolanthe.rowland.org>

On 03/11/2011 07:12 PM, Somebody in the thread at some point said:

Hi -

>> I don't believe I referred to class devices anywhere.  It does not
>> matter if the main chip function is class device or not.
>
> It matters because the class specification for a USB device is never
> going to mention information sources that are outside the USB protocol,
> such as board definitions.  Consequently a class driver will never need
> to use such a thing.

Is a gadget driver a class driver?  Because I can set the MAC address 
for my g_ether from the kernel commandline which is most definitely an 
"information source outside the USB protocol".  That is exactly the kind 
of thing I am talking about enabling also to be taken from 
usb_device->dev.platform_data.

>>> Also, do you have a real example of a USB driver today that needs this?
>>
>> I think you find without devpath ->  platform_data mapping, the kind of
>> layout given above is made quite difficult to support in Linux.
>
> What would be needed to support such a mapping?  It seems to me that we
> probably have all the necessary ingredients in place already.

What I was imagining is getting the platform data structs from a header 
in include/linux/

#include <linux/onboard_device_1.h>
#include <linux/onboard_device_2.h>

Using a .name defined to be the first member to match to specific bus 
member devpath prepended with bus class:

struct onboard_device_1_platform_data device_1_platform_data {
	.name = "usb\1-0",
	.some_feature = 1,
};

struct onboard_device_2_platform_data device_2_platform_data {
	.name = "usb\1-1",
	.some_feature = 2,
};

Aggregating them into an array

void *devpath_to_platform_data_mapping[] = {
	device_1_platform_data,
	device_2_platform_data,
};

Registering the array in the machine file

register_platform_data_by_devpath(devpath_to_platform_data_mapping,
	ARRAY_SIZE(devpath_to_platform_data_mapping));

It needs to set two globals for pointer and member count

void
register_platform_data_by_devpath(void *map, int count)
{
	platform_data_mapping = map;
	platform_data_mapping_count = count;
}

Later, when a USB device is instantiated, if platform_data_mapping is 
not NULL, it checks to see if the devname it just synthesized matches 
any in the table that have static usb/ prefix, and if so, sets 
usb_device->dev.platform_data to the table entry.

Well, it's an RFC so if you have a better plan I am all ears.

-Andy

  reply	other threads:[~2011-03-11 20:06 UTC|newest]

Thread overview: 185+ 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:33                                         ` Arnd Bergmann
2011-03-17 22:53                                         ` Greg KH
2011-03-17 22:53                                           ` Greg KH
2011-03-17 23:18                                           ` Andy Green
2011-03-17 23:18                                             ` Andy Green
2011-03-17 23:25                                             ` Greg KH
2011-03-18  7:42                                               ` Andy Green
2011-03-18  7:42                                                 ` Andy Green
2011-03-18 22:54                                                 ` Benjamin Herrenschmidt
2011-03-18 22:54                                                   ` Benjamin Herrenschmidt
2011-03-18 22:57                                                   ` Andy Green
2011-03-18 22:57                                                     ` Andy Green
2011-03-18  4:54                                             ` Grant Likely
2011-03-18  4:54                                               ` Grant Likely
2011-03-18  8:19                                               ` Arnd Bergmann
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:00                                             ` Arnd Bergmann
2011-03-18 15:15                                             ` Mark Brown
2011-03-18 15:15                                               ` Mark Brown
2011-03-18 17:52                                             ` Andy Green
2011-03-18 17:52                                               ` Andy Green
2011-03-18 18:20                                               ` David Anders
2011-03-18 18:20                                                 ` David Anders
2011-03-18 18:25                                                 ` Mark Brown
2011-03-18 18:25                                                   ` Mark Brown
2011-03-18 20:02                                                   ` Andy Green
2011-03-18 20:02                                                     ` Andy Green
2011-03-18 21:11                                                     ` Arnd Bergmann
2011-03-18 21:17                                                       ` Andy Green
2011-03-18 21:17                                                         ` Andy Green
2011-03-18 20:06                                               ` Arnd Bergmann
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:25                                                     ` Mark Brown
2011-03-18 23:33                                                     ` Andy Green
2011-03-18 23:33                                                       ` Andy Green
2011-03-18 21:36                                                 ` Grant Likely
2011-03-18 21:36                                                   ` Grant Likely
2011-03-18 22:47                                                 ` Benjamin Herrenschmidt
2011-03-18 22:47                                                   ` Benjamin Herrenschmidt
2011-03-18 21:28                                               ` Grant Likely
2011-03-18 21:28                                                 ` Grant Likely
2011-03-18 23:04                                                 ` Andy Green
2011-03-18 23:04                                                   ` Andy Green
2011-03-18 22:37                                           ` Benjamin Herrenschmidt
2011-03-18 22:37                                             ` Benjamin Herrenschmidt
2011-03-18 22:39                                             ` Andy Green
2011-03-18 22:39                                               ` Andy Green
2011-03-17 23:27                                         ` Grant Likely
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:25                                               ` Arnd Bergmann
2011-03-18  8:38                                               ` Andy Green
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 [this message]
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
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-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 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=4D7A80A4.6040008@linaro.org \
    --to=andy@warmcat.com \
    --cc=andy.green@linaro.org \
    --cc=arnd@arndb.de \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.