Tried to fix up the threading... On Monday, February 02, 2009, Sarah Sharp wrote: > On Mon, Feb 02, 2009 at 01:36:26PM -0800, Paul Zimmerman wrote: >> On Monday, February 02, 2009, Sarah Sharp wrote: >>> On Sat, Jan 31, 2009 at 12:08:49PM +0530, Viral Mehta wrote: >>>> >>>> I still do not understand how exactly core and gadget side driver or >>>> controller or peripheral controller will address >>>> backward/forward compatibility issues. >>>> >>>> Like USB3.0 device can be attached to USB2.0 bus and USB2.0 devices can >>>> be attached to USB3.0 bus. >>> >>> A USB 3.0 device attached to a USB 2.0 port will show up as a USB 2.0 >>> device. The USB 3.0 device will not see the USB 3.0 terminations and >>> will just enumerate as a USB 2.0 device with USB 2.0 device descriptors. >>> No support is necessary for that case, because the USB core knows how to >>> deal with USB 2.0 devices. >>> >>> For the case of a USB 2.0 device plugged into a USB 3.0 port (under >>> xHCI, presumably), there will need to be some changes to support the >>> xHCI driver. Those changes are part of my xHCI host controller >>> patchset. >> >> I think the issue on the gadget side, is that a USB3 device will want to >> support connecting to a USB2 host too. So whatever changes are added to the >> gadget code for USB3, it must be possible to dynamically switch to either >> USB2 or USB3 mode, depending upon the type of host detected. > > Sure, that makes sense. It should be similar to how current gadget devices > handle switching between LS/FS/HS. ISTR that a USB 3.0 device must implement > one of the slower speeds (LS/FS/HS), but it is up to the device which one it > supports. So any new code to switch between speeds would have to take that > into account. > > Dave Brownell, is there common infrastructure for speed switching in the gadget > core, or is it on a per-PCD basis? It's not the speed switching I'm concerned about. It's the difference in the mass-storage protocols. For now, USB2 only supports the original MS class, and USB3 only supports the UASP class. So a device that wants to be backward-compatible needs to support both. So either the current file-storage gadget needs to support both protocols, or we need a new gadget for UASP, and allow the gadget driver to be switched at run time. -- Paul -- 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