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
next prev parent 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.