]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/mac80211/rc80211_simple.c
[MAC80211]: don't send invalid QoS frames
[linux-2.6-omap-h63xx.git] / net / mac80211 / rc80211_simple.c
index 2048cfd1ca70093781e30bd5bb52b9c5696773a0..ef91ce428acaafaede5a9d0fd6f3609984152c59 100644 (file)
@@ -147,14 +147,6 @@ static void rate_control_simple_tx_status(void *priv, struct net_device *dev,
        srctrl = sta->rate_ctrl_priv;
        srctrl->tx_num_xmit++;
        if (status->excessive_retries) {
-               sta->antenna_sel_tx = sta->antenna_sel_tx == 1 ? 2 : 1;
-               sta->antenna_sel_rx = sta->antenna_sel_rx == 1 ? 2 : 1;
-               if (local->sta_antenna_sel == STA_ANTENNA_SEL_SW_CTRL_DEBUG) {
-                       printk(KERN_DEBUG "%s: " MAC_FMT " TX antenna --> %d "
-                              "RX antenna --> %d (@%lu)\n",
-                              dev->name, MAC_ARG(hdr->addr1),
-                              sta->antenna_sel_tx, sta->antenna_sel_rx, jiffies);
-               }
                srctrl->tx_num_failures++;
                sta->tx_retry_failed++;
                sta->tx_num_consecutive_failures++;
@@ -187,9 +179,13 @@ static void rate_control_simple_tx_status(void *priv, struct net_device *dev,
                }
 #endif
 
-               if (per_failed > local->rate_ctrl_num_down) {
+               /*
+                * XXX: Make these configurable once we have an
+                * interface to the rate control algorithms
+                */
+               if (per_failed > RATE_CONTROL_NUM_DOWN) {
                        rate_control_rate_dec(local, sta);
-               } else if (per_failed < local->rate_ctrl_num_up) {
+               } else if (per_failed < RATE_CONTROL_NUM_UP) {
                        rate_control_rate_inc(local, sta);
                }
                srctrl->tx_avg_rate_sum += status->control.rate->rate;
@@ -283,14 +279,16 @@ static void rate_control_simple_rate_init(void *priv, void *priv_sta,
        int i;
        sta->txrate = 0;
        mode = local->oper_hw_mode;
-       /* TODO: what is a good starting rate for STA? About middle? Maybe not
-        * the lowest or the highest rate.. Could consider using RSSI from
-        * previous packets? Need to have IEEE 802.1X auth succeed immediately
-        * after assoc.. */
+       /* TODO: This routine should consider using RSSI from previous packets
+        * as we need to have IEEE 802.1X auth succeed immediately after assoc..
+        * Until that method is implemented, we will use the lowest supported rate
+        * as a workaround, */
        for (i = 0; i < mode->num_rates; i++) {
                if ((sta->supp_rates & BIT(i)) &&
-                   (mode->rates[i].flags & IEEE80211_RATE_SUPPORTED))
+                   (mode->rates[i].flags & IEEE80211_RATE_SUPPORTED)) {
                        sta->txrate = i;
+                       break;
+               }
        }
 }
 
@@ -425,7 +423,7 @@ static void __exit rate_control_simple_exit(void)
 }
 
 
-module_init(rate_control_simple_init);
+subsys_initcall(rate_control_simple_init);
 module_exit(rate_control_simple_exit);
 
 MODULE_DESCRIPTION("Simple rate control algorithm for ieee80211");