Re: Resetting SS device; SET ADDRESS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 9 Feb 2011, Sarah Sharp wrote:

> > Probably the reason you never saw this error scenario before is that
> > you never tried updating the firmware in a device.  In particular, when
> > the descriptors get changed the entire device structure is destroyed,
> > then the device has to be reset a second time and re-enumerated.  
> > Apparently this fools xhci-hcd into thinking the device was never
> > assigned an address when in fact it was.  Maybe the second reset got
> > skipped.
> 
> Oh, I see.  Lubin, was this a USB 3.0 device?  If so, the re-enumeration
> process would have skipped the second reset because it thought this was
> an initial device connect.
> 
> Is there anyway to tell that the device is undergoing re-enumeration
> because the descriptor changed?  I vaguely recall some field in the
> usb_device structure for that...

No, you must be thinking of something else.  The old device structure
gets destroyed and there's no indication in the new device structure of
anything unusual.

>  If not, I'll just have to make the hub
> code always reset USB 3.0 devices, which will slow down initial
> connections and booting over USB 3.0.

It can't get any worse than USB 2.0 already is, which isn't so 
terrible.  On the other hand, why did xhci-hcd try to send the second 
Set-Address request?  As I understand it, the driver knows that 
Set-Address is required:

	following initial device detection, or

	following a reset.

Neither of these was true here.  Perhaps xhci-hcd should always ignore 
Set-Address requests from usbcore and automatically issue its own 
requests following initial link training and resets.

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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux