Sarah Sharp wrote:
One new thing for USB 3.0 devices is the requirement for an endpoint
companion descriptor after every endpoint. You can see what sort of
information is in that descriptor by looking at section 9.6.7 of the USB
3.0 bus spec. I have a patch to add the structure to
include/linux/usb/ch9.h and parse that descriptor on the host side.
Would the gadget size need more than that?
There's also a new Binary Object Store descriptor required for USB 3.0
devices (section 9.6.2.2). I don't have any patches that deal with
descriptor yet. David Vrabel said the wireless USB stack has some code
to parse the BOS descriptor. The new SuperSpeed USB Device Capability
BOS descriptor structure would still need to be added to
include/linux/usb/ch9.h.
Wireless USB needs very similar functionality. I'm looking at:
1. Only supporting composite devices.
2. Converting the remaining non-composite gadget drivers to be composite
ones (file_storage and printer I think).
3. Adding a list of BOS descriptor children. Gadgets and UDCDs can add
to this list with usb_composite_add_bos() or similar.
4. Splitting the whole configuration descriptor blob into a list of
individual configuration, interface and endpoint descriptors.
5. Adding a usb_composite_add_ep_companion() or similar. This would
allow a udcd to add one (1) endpoint companion that is used for all
endpoints. This is good enough for WUSB.
In the longer term I will also be looking at:
1. Adding a kernel-user space interface for radio and association
management.
2. Supporting multiple UDCDs with gadget drivers being dynamically bound
to one or more of the UDCs. This will require removing much of the
compile time #ifdef and #include <*.c> stuff.
David
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html