rt2x00: configure different txdesc parameters for non HT channel
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / net / wireless / rt2x00 / rt2x00queue.c
index 9b1b2b7a7807226717a6a1b463cdf9fdc7a70f2e..acd013353cc731d4fdac71dc16b93eafadcfb359 100644 (file)
@@ -320,14 +320,6 @@ static void rt2x00queue_create_tx_descriptor_ht(struct rt2x00_dev *rt2x00dev,
                txdesc->u.ht.wcid = sta_priv->wcid;
        }
 
-       txdesc->u.ht.ba_size = 7;       /* FIXME: What value is needed? */
-
-       /*
-        * Only one STBC stream is supported for now.
-        */
-       if (tx_info->flags & IEEE80211_TX_CTL_STBC)
-               txdesc->u.ht.stbc = 1;
-
        /*
         * If IEEE80211_TX_RC_MCS is set txrate->idx just contains the
         * mcs rate to be used
@@ -351,6 +343,24 @@ static void rt2x00queue_create_tx_descriptor_ht(struct rt2x00_dev *rt2x00dev,
                        txdesc->u.ht.mcs |= 0x08;
        }
 
+       if (test_bit(CONFIG_HT_DISABLED, &rt2x00dev->flags)) {
+               if (!(tx_info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT))
+                       txdesc->u.ht.txop = TXOP_SIFS;
+               else
+                       txdesc->u.ht.txop = TXOP_BACKOFF;
+
+               /* Left zero on all other settings. */
+               return;
+       }
+
+       txdesc->u.ht.ba_size = 7;       /* FIXME: What value is needed? */
+
+       /*
+        * Only one STBC stream is supported for now.
+        */
+       if (tx_info->flags & IEEE80211_TX_CTL_STBC)
+               txdesc->u.ht.stbc = 1;
+
        /*
         * This frame is eligible for an AMPDU, however, don't aggregate
         * frames that are intended to probe a specific tx rate.