wl1271: Fix tid-configuration of TX frames
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>
Wed, 1 Sep 2010 09:31:11 +0000 (11:31 +0200)
committerLuciano Coelho <luciano.coelho@nokia.com>
Tue, 28 Sep 2010 09:30:01 +0000 (12:30 +0300)
Incorrect TID was configured for TX frames. This resulted in incorrect
queues to be used for classes in transmission.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
drivers/net/wireless/wl12xx/wl1271_tx.c
drivers/net/wireless/wl12xx/wl1271_tx.h

index 0f99eff..1b8295c 100644 (file)
@@ -110,9 +110,9 @@ static int wl1271_tx_fill_hdr(struct wl1271 *wl, struct sk_buff *skb,
        /* configure the tx attributes */
        tx_attr = wl->session_counter << TX_HW_ATTR_OFST_SESSION_COUNTER;
 
-       /* queue */
+       /* queue (we use same identifiers for tid's and ac's */
        ac = wl1271_tx_get_queue(skb_get_queue_mapping(skb));
-       desc->tid = wl1271_tx_ac_to_tid(ac);
+       desc->tid = ac;
 
        desc->aid = TX_HW_DEFAULT_AID;
        desc->reserved = 0;
index 48bf926..d12a129 100644 (file)
@@ -139,23 +139,6 @@ static inline int wl1271_tx_get_queue(int queue)
        }
 }
 
-/* wl1271 tx descriptor needs the tid and we need to convert it from ac */
-static inline int wl1271_tx_ac_to_tid(int ac)
-{
-       switch (ac) {
-       case 0:
-               return 0;
-       case 1:
-               return 2;
-       case 2:
-               return 4;
-       case 3:
-               return 6;
-       default:
-               return 0;
-       }
-}
-
 void wl1271_tx_work(struct work_struct *work);
 void wl1271_tx_complete(struct wl1271 *wl);
 void wl1271_tx_reset(struct wl1271 *wl);