[rt2x00-users] [RFC/RFT 4/5] rt2x00: rt2800usb: do not check packedid for aggregated frames
Gertjan van Wingerde
gwingerde at gmail.com
Sat Mar 10 08:21:10 EST 2012
On 03/07/12 20:07, Stanislaw Gruszka wrote:
> Tx statuses of aggregated subframes contain packetid of first subframe
> in the AMPDU. We can not identify AMPDU subframes based on packedid, so
> simply assume that status match first pending frame in the queue. Thats
> mostly the same what 2800pci do.
>
> Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>
> ---
> drivers/net/wireless/rt2x00/rt2800usb.c | 5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
> index 151bde6..1eb0cc3 100644
> --- a/drivers/net/wireless/rt2x00/rt2800usb.c
> +++ b/drivers/net/wireless/rt2x00/rt2800usb.c
> @@ -502,7 +502,7 @@ rt2800usb_txdone_entry_check(struct queue_entry *entry, u32 reg)
> __le32 *txwi;
> u32 word;
> int wcid, ack, pid;
> - int tx_wcid, tx_ack, tx_pid;
> + int tx_wcid, tx_ack, tx_pid, is_agg;
>
> /*
> * This frames has returned with an IO error,
> @@ -515,6 +515,7 @@ rt2800usb_txdone_entry_check(struct queue_entry *entry, u32 reg)
> wcid = rt2x00_get_field32(reg, TX_STA_FIFO_WCID);
> ack = rt2x00_get_field32(reg, TX_STA_FIFO_TX_ACK_REQUIRED);
> pid = rt2x00_get_field32(reg, TX_STA_FIFO_PID_TYPE);
> + is_agg = rt2x00_get_field32(reg, TX_STA_FIFO_TX_AGGRE);
>
> /*
> * Validate if this TX status report is intended for
> @@ -527,7 +528,7 @@ rt2800usb_txdone_entry_check(struct queue_entry *entry, u32 reg)
> tx_ack = rt2x00_get_field32(word, TXWI_W1_ACK);
> tx_pid = rt2x00_get_field32(word, TXWI_W1_PACKETID);
>
> - if ((wcid != tx_wcid) || (ack != tx_ack) || (pid != tx_pid)) {
> + if (wcid != tx_wcid || ack != tx_ack || (!is_agg && pid != tx_pid)) {
> WARNING(entry->queue->rt2x00dev,
> "TX status report missed for queue %d entry %d\n",
> entry->queue->qid, entry->entry_idx);
--
---
Gertjan
More information about the users
mailing list