mwl8k: clarify WME transmit queue 0/1 swizzling
authorLennert Buytenhek <buytenh@wantstofly.org>
Thu, 22 Oct 2009 18:20:25 +0000 (20:20 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 4 Nov 2009 23:44:45 +0000 (18:44 -0500)
Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwl8k.c

index 496d3c5..76c9263 100644 (file)
@@ -84,12 +84,6 @@ MODULE_DEVICE_TABLE(pci, mwl8k_table);
                                 MWL8K_A2H_INT_RX_READY | \
                                 MWL8K_A2H_INT_TX_DONE)
 
-/* WME stream classes */
-#define WME_AC_BE      0               /* best effort */
-#define WME_AC_BK      1               /* background */
-#define WME_AC_VI      2               /* video */
-#define WME_AC_VO      3               /* voice */
-
 #define MWL8K_RX_QUEUES                1
 #define MWL8K_TX_QUEUES                4
 
@@ -968,24 +962,10 @@ static int rxq_process(struct ieee80211_hw *hw, int index, int limit)
  * Packet transmission.
  */
 
-/* Transmit queue assignment.  */
-enum {
-       MWL8K_WME_AC_BK = 0,            /* background access */
-       MWL8K_WME_AC_BE = 1,            /* best effort access */
-       MWL8K_WME_AC_VI = 2,            /* video access */
-       MWL8K_WME_AC_VO = 3,            /* voice access */
-};
-
 /* Transmit packet ACK policy */
 #define MWL8K_TXD_ACK_POLICY_NORMAL            0
 #define MWL8K_TXD_ACK_POLICY_BLOCKACK          3
 
-#define GET_TXQ(_ac) (\
-               ((_ac) == WME_AC_VO) ? MWL8K_WME_AC_VO : \
-               ((_ac) == WME_AC_VI) ? MWL8K_WME_AC_VI : \
-               ((_ac) == WME_AC_BK) ? MWL8K_WME_AC_BK : \
-               MWL8K_WME_AC_BE)
-
 #define MWL8K_TXD_STATUS_OK                    0x00000001
 #define MWL8K_TXD_STATUS_OK_RETRY              0x00000002
 #define MWL8K_TXD_STATUS_OK_MORE_RETRY         0x00000004
@@ -2069,6 +2049,12 @@ mwl8k_set_edca_params(struct ieee80211_hw *hw, __u8 qnum,
        if (cmd == NULL)
                return -ENOMEM;
 
+       /*
+        * Queues 0 (BE) and 1 (BK) are swapped in hardware for
+        * this call.
+        */
+       qnum ^= !(qnum >> 1);
+
        cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_EDCA_PARAMS);
        cmd->header.length = cpu_to_le16(sizeof(*cmd));
        cmd->action = cpu_to_le16(MWL8K_SET_EDCA_ALL);