Ath5k: flush work
authorJiri Slaby <jirislaby@gmail.com>
Tue, 15 Jul 2008 15:44:20 +0000 (17:44 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 29 Jul 2008 20:36:27 +0000 (16:36 -0400)
commit274c7c3638cd027b46f76d0caef96c1bad8b6701
tree8f487576932dd957d7de5f2f3054b2c39c7a850b
parent10488f8ad62be3b860bad74e60b4fe6ab87aece3
Ath5k: flush work

Make sure that the irq is not in progress after stop. This means
two things:
- ensure the intr setting register is set by flushing posted values
- call synchronize_irq() after that

Also flush stop tx write, inform callers of the tx stop about still
pending transfers (unsuccessful stop) and finally don't wait another
3ms in ath5k_rx_stop, since ath5k_hw_stop_rx_dma ensures transfer to
be finished.

Make sure all writes will be ordered in respect to locks by mmiowb().

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Acked-by: Nick Kossifidis <mickflemm@gmail.com>
Cc: Luis R. Rodriguez <mcgrof@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath5k/base.c
drivers/net/wireless/ath5k/hw.c