diff options
author | Daniel Drake <dsd@laptop.org> | 2011-10-03 14:33:02 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-10-03 23:22:41 +0400 |
commit | 8f641d93c38ae93c67263d4e03f793092d471b12 (patch) | |
tree | 396a99a8dfa0d9fd56706b325ca10086cc0ff237 /drivers/net/wireless/libertas/dev.h | |
parent | 8a3a3c85e44d58f5af0adac74a0b866ba89a1978 (diff) | |
download | linux-8f641d93c38ae93c67263d4e03f793092d471b12.tar.xz |
libertas: detect TX lockups and reset hardware
Recent patches added support for resetting the SD8686 hardware when
commands time out, which seems to happen quite frequently soon after
resuming the system from a Wake-on-WLAN-triggered resume.
At http://dev.laptop.org/ticket/10969 we see the same thing happen
with transmits. In this case, the hardware will fail to respond to
a frame passed for transmission, and libertas (correctly) will block
all further commands and transmissions as the hardware can only
deal with one thing at a time. This results in a lockup while the
system waits indefinitely for the dead card to respond.
Hook up a TX lockup timer to detect this and reset the hardware.
Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/dev.h')
-rw-r--r-- | drivers/net/wireless/libertas/dev.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/libertas/dev.h b/drivers/net/wireless/libertas/dev.h index fb3e40bf5902..f3fd447131c2 100644 --- a/drivers/net/wireless/libertas/dev.h +++ b/drivers/net/wireless/libertas/dev.h @@ -158,6 +158,7 @@ struct lbs_private { /* protected by hard_start_xmit serialization */ u8 txretrycount; struct sk_buff *currenttxskb; + struct timer_list tx_lockup_timer; /* Locks */ struct mutex lock; |