On Tue, 27 Jul 2010, Sujith wrote: > Alan Stern wrote: > > That's good! It's _supposed_ to fail when the firmware changes. The > > next step should be that the device is reinitialized and re-enumerated, > > this time using the new descriptors. > > So the issue turned out to be that the target device is powered down > when usb_reset_device() is called. This flushes the firmware from the > target and the subsequent re-enumeration reads the old descriptors ... Why is the device powered down? Does it turn itself off? > Apparently this is a limitation, as indicated in the comment: > > /* FIXME let caller ask to power down the port: > * - some devices won't enumerate without a VBUS power cycle > * - SRP saves power that way > * - ... new call, TBD ... > * That's easy if this hub can switch power per-port, and > * khubd reactivates the port later (timer, SRP, etc). > * Powerdown must be optional, because of reset/DFU. > */ Apparently you have misunderstood that comment. There is no power-down during reset. That comment suggests that sometimes a caller may _want_ the port to be powered down, but the existing code never does so. > Am not familiar with the USB core, but would something like a quirk be required > to handle such devices ? Your question is unclear. What sort of devices do you mean? 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