rt2x00: Fix TX_STA_FIFO handling
authorHelmut Schaa <helmut.schaa@googlemail.com>
Mon, 14 Jun 2010 20:11:09 +0000 (22:11 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 15 Jun 2010 20:00:50 +0000 (16:00 -0400)
commit3afa626a05a1d9fceedb397a66e85c13e3ff2c26
tree7a730f014b45dd15ed8d71ace3a798cd9a9ebf54
parent52b58facff34318e8d98617480fc188edfc71386
rt2x00: Fix TX_STA_FIFO handling

Currently rt2800pci will read TX_STA_FIFO until the previously read value
matches the current value. However, it is obvious that TX_STA_FIFO only
contains values that can easily be the same for multiple consecutive frames
(especially when communicating with only one other STA). Hence, we often
ended up with reading only the first entry and ignoring the rest.

One result was that when the TX_STA_FIFO contained multiple entires, only
the first one was read and properly handled while the others remained in the
tx queue.

Thus, drop this check but introduce a maximum number of reads. All legacy
drivers use the size of the tx ring as limit but state that the TX_STA_FIFO
has only 16 entries. So, let's just stick with the tx ring size for now.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2800pci.c