[rt2x00-users] [RFC 2/2] rt2x00: Fix tx status reporting for reordered frames in rt2800pci

Helmut Schaa helmut.schaa at googlemail.com
Fri Apr 1 21:04:30 EST 2011


Am Freitag, 1. April 2011 schrieb Gertjan van Wingerde:
> Hmm, but that would mean that we already have issues with rt2800usb, as there
> is no reason to assume that the behaviour of the USB chipsets would be different
> in this matter.

I guess so, yes.

> To me, all the more reason to properly flesh this out in a common way between
> rt2800pci and rt2800usb. I really see no reason why the handling of a
> TX_STA_FIFO
> value would have to be different between the two.

I agree.

However, according to Ivo, the introduction of rt2800_txdone_entry_check
improved the behavior in rt2800usb because of the high probabality of lost tx
status reports.

In rt2800pci this broke operation because in some cases a lost tx status
was assumed while the tx status was just not matching what rt2800lib
expected (aggr, wcid and pid fields).

From what I've learned about the hardware we cannot trust the aggr and pid
field if aggregation is used. And the wcid field might be different then what
we expect due to reordering (also only if aggregation is used).

So, IMO in the long run rt2800_txdone_entry_check should be dropped
completely or replaced with the wcid reordering approach I took in this
patch.

Till then I don't see how we can share the tx status handling between rt2800usb
and rt2800pci without introducing disadvantages for one of them. Maybe limiting
the number of frames in flight in rt2800usb to 16 will give us a reliable
tx status reporting which in turn would allow us to use the same tx status
handling code for both, rt2800usb and pci.

Thanks,
Helmut



More information about the users mailing list