Thread (29 messages) 29 messages, 4 authors, 2013-08-12

ath9k_htc firmware problem [was: Re: FUSB200 xhci issue]

From: Alan Stern <stern@rowland.harvard.edu>
Date: 2013-08-09 14:32:46

On Fri, 9 Aug 2013, Sujith Manoharan wrote:
Christian Lamparter wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help