rt2x00: wireless CLI ID and packet ID must not be 0
authorIvo van Doorn <ivdoorn@gmail.com>
Mon, 17 Aug 2009 16:55:15 +0000 (18:55 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 20 Aug 2009 15:36:01 +0000 (11:36 -0400)
In the TX descriptor the Packet ID must not be 0,
so add 1 to the ID. The wireless CLI ID is not allowed
to be 0 either, but also must be initialized with the
wcid value rather then keyid.

Based on a patch for rt2800pci from Benoit

Signed-off-by: Benoit PAPILLAULT <benoit.papillault@free.fr>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2800usb.c

index 6de2edab51ec81346654c5b73ff6a533e6d643ce..3633e5878ee4e462b7ac1c2a1925c36e01b23a68 100644 (file)
@@ -1995,11 +1995,11 @@ static void rt2800usb_write_tx_desc(struct rt2x00_dev *rt2x00dev,
        rt2x00_set_field32(&word, TXWI_W1_BW_WIN_SIZE, txdesc->ba_size);
        rt2x00_set_field32(&word, TXWI_W1_WIRELESS_CLI_ID,
                           test_bit(ENTRY_TXD_ENCRYPT, &txdesc->flags) ?
-                              txdesc->key_idx : 0xff);
+                              (skbdesc->entry->entry_idx + 1) : 0xff);
        rt2x00_set_field32(&word, TXWI_W1_MPDU_TOTAL_BYTE_COUNT,
                           skb->len - txdesc->l2pad);
        rt2x00_set_field32(&word, TXWI_W1_PACKETID,
-                          skbdesc->entry->entry_idx);
+                          skbdesc->entry->queue->qid + 1);
        rt2x00_desc_write(txwi, 1, word);
 
        /*