On Wed, Aug 31, 2011 at 04:36:47PM +0800, Andiry Xu wrote: > On Wed, 2011-08-31 at 00:27 +0800, Sarah Sharp wrote: > > So if a USB 2.0 device's endpoint ring must be empty for it to be in > > L1, > > we're fine on that side. But I'm concerned that when we get around to > > implementing USB 3.0 LPM, we'll have issues if your host controller > > cannot respond to the stop endpoint command when the device is in > > U1/U2. > > > From my observation, the ep rings are empty when the device is in U2 > state. But seems spec does not guarantee that. Mmm, you might want to double check with the hardware engineers about this issue, especially for USB 3.0 LPM. > > That's why I think you need to have the port in U0 to successfully > > place > > it in U3. Even if transitioning it directly from U2 to U3 works on > > one > > host controller, there's no guarantee that it will work on another > > host > > controller. > > > OK, according to the state machine figure, it appears a port can not > transition from U2 to U3 directly. So I think the driver should work > like this: > > When driver wants to put the port into U3: > disable hardware LPM if it's enabled; > resume the port to U0 if it's in U1/U2; > stop its endpoints; > put the port into U3. > > And when resume the port from U3 to U0, enable hardware LPM again. Is > that acceptable? Yes, that sounds correct. Sarah Sharp -- 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