Re: RFC: Platform data for onboard USB assets

Arnd Bergmann
2011-03-11T12:31:21Z

Hi Andy,

On Friday 11 March 2011, Andy Green wrote:
>
> platform_data is a well established way in Linux to pass configuration
> data up to on-board assets from a machine file like mach-xyz.c. It's
> also supported to pass platform_data up to devices that are probed
> asynchronously from busses like i2c as well, which is very handy.
>
> However AFAIK it's not possible to bind platform_data to probed USB
> devices as it stands.
>
> There are now boards which have on-board USB assets, for example OMAP4
> Panda which has a USB <-> Ethernet bridge wired up permanently. It'd be
> convenient to also be able to pass optional platform_data to these
> devices when they are asynchronously probed.

Sorry, but I think it's a bad idea to use platform data for this.
USB is a bus that we can reasonably probe, while we use platform_data
only for stuff that we can by definition not probe at all.

> The particular use that suggested this is on Panda, it would be ideal to
> be able to set a flag in the usb device's platform data that forces it
> to be named eth%d since it's a hardwired asset on the board with an RJ45
> socket.

I understand the problem, but IMHO there really needs to be a better
solution for this. As far as I understand, the underlying problem is
that USB ethernet devices with a proper MAC address get a different
device name from devices with a generated random MAC address, and
the people that designed this board were trying to save a few cents
by not allocating a MAC address for the ethernet device [1], right?

I believe we should fix this particular problem locally, instead of
coming up with generic infrastructure for broken hardware.

One relatively easy solution would be to allow passing a MAC address
to this particular device driver as a module parameter, and generating
a fixed MAC address in the regular vendor space when installing the
boot loader. That would also solve the problem that a DHCP server
currently assigns a new IP address to a panda board at every boot.

Arnd
---
[1] https://bugs.launchpad.net/linux-linaro/+bug/622429