]> git.baikalelectronics.ru Git - kernel.git/commit
libertas: detect TX lockups and reset hardware
authorDaniel Drake <dsd@laptop.org>
Mon, 3 Oct 2011 10:33:02 +0000 (11:33 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 3 Oct 2011 19:22:41 +0000 (15:22 -0400)
commit9f779a2d6feaa2a972cc030bbd92c6afa45a0bd8
tree396a99a8dfa0d9fd56706b325ca10086cc0ff237
parent529a058447896123cbd8ea54d26a191e6343bef4
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>
drivers/net/wireless/libertas/dev.h
drivers/net/wireless/libertas/main.c