On Fri, 9 Aug 2013, Sujith Manoharan wrote: > Christian Lamparter wrote: > > So, if we call usb_reset_device there and the driver is unbound > > and later rebound. the next ath9k_htc .probe will start again and > > again and again not knowing that it is already initialized > > (and we have a loop). > > The HW/FW is buggy and this workaround is required: > http://marc.info/?l=linux-usb&m=127960864905646&w=2 I see the problem. The device loses its firmware when it gets reset or its port is disabled. This is really a very serious bug. For one thing, it means the device cannot support runtime PM. (Not unless the driver caches a copy of the firmware and reloads it every time the device resumes.) IMO a bug like this should disqualify the device from being allowed to wear the USB logo. One way around the problem might be for the firmware-loading thread to issue a usb_set_configuration call to switch to config 0 (i.e., to unconfigure the device), then patch the host's copy of the descriptor, and then switch back to the original configuration. This _will_ unbind and rebind the driver, so it definitely will need a way to tell whether the firmware has already been loaded. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html