Hi, On Tue, Jan 10, 2012 at 2:01 PM, Andreas Hartmann <andihartmann@xxxxxxxxxxxxxxx> wrote: > Helmut Schaa schrieb: > [...] >> So this looks good to me although the broken tx status for BAR frames >> is for sure a rt2800pci problem (or even a hw issue). > > Sorry - What do you mean with "hw issue"? Is my hw broken? Hehe, no :) > Or is it a specific "behavior" of exactly this device: I think most rt2800pci will behave the same and just interpret a BlockAck as response to a BAR in a different manner as a BlockAck in response to a Data frame. When we send the BAR we tell the hw that the frame needs to be acknowledged and according to the spec the hw will only count a normal ACK as successful transmission, the peer will however answer with a BlockAck as long as a BA session is active. It might be possible to advise the hw to allow the BAR to be acked by a BlockAck by specifying AMDPU=1 in the TXWI. Not sure if that breaks anything else. However, a BAR seems to be "ack-able" by both an ACK and a BlockAck according to 802.11-2007. If the recipient answers with an ACK the BA session might already be terminated and we would stop the BA session as soon as 3 BARs failed with the previous patch. This should be fine I guess. So you might just give the following a try (also fully untested and maybe with some of your debugging output enabled). Signed-off-by: Helmut Schaa <helmut.schaa@xxxxxxxxxxxxxx> --- diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c index e4641da..5d0a3d3 100644 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c @@ -393,6 +393,9 @@ static void rt2x00queue_create_tx_descriptor_ht(struct rt2x00_dev *rt2x00dev, txdesc->u.ht.txop = TXOP_SIFS; else txdesc->u.ht.txop = TXOP_HTTXOP; + + if (ieee80211_is_back_req(hdr->frame_control)) + __set_bit(ENTRY_TXD_HT_AMPDU, &txdesc->flags); } static void rt2x00queue_create_tx_descriptor(struct rt2x00_dev *rt2x00dev, -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html