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

From: Alan Stern
Date: Fri Aug 29 2008 - 12:05:20 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/