Re: [PATCH] usb: add Freescale QE/CPM USB peripheral controller driver

Alan Stern
2008-08-29T16:05:18Z

On Fri, 29 Aug 2008, Arnd Bergmann wrote:

> > > Does building a kernel image that can run on different hardware without
> > > rebuilding also violate the "relevant standards"?
> >
> > No.  That isn't what Arnd was concerned about.  He noted that even if
> > you did build multiple modules, only one of them could be loaded at any
> > time.
>
> Well, actually it was exactly what I was concerned about ;-)
>
> The way I understand the code, it is layered into the hardware specific
> part and the protocol specific part, which are connected through
> the interfaces I pointed out.

That's right.

> The standard requires that there can only be one protocol handler
> per physical interface, which is a reasonable limitation.

No, you've got it exactly backward. There can be multiple protocol
handlers per physical interface, but there must be only one physical
interface per device.

> However, what the Linux implementation actually enforces is
> that there can only be one hardware specific driver built or loaded
> into the kernel, which just looks like an arbitrary restriction
> that does not actually help.

Not at all -- it is an implementation of the constraint that there be
only one physical interface.

> If the gadget hardware drivers were registering the device with a
> gadget_bus_type, you could still enforce the "only one protocol"
> rule by binding every protocol to every device in that bus type.

There is no such rule.

Alan Stern