]> git.baikalelectronics.ru Git - kernel.git/commit
p54spi: use firmware/DMA bug workaround that work under hight load in p54spi_rx
authorMax Filippov <jcmvbkbc@gmail.com>
Sun, 17 May 2009 23:02:35 +0000 (03:02 +0400)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 20 May 2009 18:46:28 +0000 (14:46 -0400)
commitc46b22d9276bc26da3845722453dcde0c515f14a
treef7415ab89e184c943cc9f61e87a5b92e46d2e819
parenta9127a7711b29c8549df21a702806018bcaf68e9
p54spi: use firmware/DMA bug workaround that work under hight load in p54spi_rx

Under high load first data word, read after available data size
is sometimes lost in p54spi_rx. It seems to depend on frequency
of interrupts and latency of data read request relatively to
'data available' interrupt. The worst consequence of this bug
is loss of packet transmission acknowledgement, which in turn
causes overflow of tx queues and permanent link loss.

Read data size and first data word in one SPI transaction.
No packets from LMAC should have length less than 1 word,
so this shouldn't interfere with the next read transaction.

Also call p54spi_sleep if p54spi_wake succeeded.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/p54/p54spi.c