On Fri, 22 May 2015, Rong Wang wrote: > Hi, > > We have one USB 2.0 Controller on an ARM SoC, with internal PHY > confirming to UTMI. > The PHY would detect unexpected disconnect (amplitude of the > differential envelop still < 625 mV) > and assert the HostDisconnect signal to the Controller to indicate a > disconnection event. > When the HostDisconnect signal is asserted, the Controller will first > do some internal clean work > before it update CCS and CSC in PORTSCx and reports a Port Change > Detect interrupt. > We want to improve the situation Why do you want to improve the situation? What's wrong with the way it is now? Detecting a disconnect while the differential amplitude is < 625 mv is perfectly legal. The USB-2.0 spec requires: "Signals with differential amplitudes <= 525 mV must never activate the Disconnection Envelope Detector" (section 7.1.7.3). > by masking the HostDisconnect signal > from PHY (take the > cost into consideration), but it will cause no CCS and CSC update in > PORTSCx, and no PCD interrupt. Thus the true disconnection only can be > determined by an XactErr. Once the driver > determine that it's a true disconnect, the HostDisconnect signal can > be unmasked and the > Controller will detect this disconnect. > We are worried about the workaroud, since there may be many corner > cases we have not taken into consideration, such as the race condition > on connect and disconnect. It sounds like you are going to make the situation worse, not improve it. > So have you encountered this situation before? Or is there any > suggestion on this workaround? I don't see any reason to make any changes. Alan Stern -- 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