[rt2x00-users] [RFC/RFT 4/5] rt2x00: rt2800usb: do not check packedid for aggregated frames
Helmut Schaa
helmut.schaa at googlemail.com
Mon Mar 12 21:45:56 EST 2012
On Wed, Mar 7, 2012 at 8:07 PM, Stanislaw Gruszka <sgruszka at redhat.com> 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>
Makes sense to me!
Acked-by: Helmut Schaa <helmut.schaa at googlemail.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);
> --
> 1.7.1
>
>
> _______________________________________________
> users mailing list
> users at rt2x00.serialmonkey.com
> http://rt2x00.serialmonkey.com/mailman/listinfo/users_rt2x00.serialmonkey.com
More information about the users
mailing list