]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/wireless/rt2x00/rt2x00config.c
rt2x00: Add support for CTS protection in rt2x00lib
[linux-2.6-omap-h63xx.git] / drivers / net / wireless / rt2x00 / rt2x00config.c
index 5e2d81a9e4382a7ad9d852a0cebf43b1965d5df1..f20ca712504f734a39e8d5ee5a2264ad955365f7 100644 (file)
@@ -80,11 +80,12 @@ void rt2x00lib_config_erp(struct rt2x00_dev *rt2x00dev,
                          struct ieee80211_bss_conf *bss_conf)
 {
        struct rt2x00lib_erp erp;
-       int retval;
 
        memset(&erp, 0, sizeof(erp));
 
        erp.short_preamble = bss_conf->use_short_preamble;
+       erp.cts_protection = bss_conf->use_cts_prot;
+
        erp.ack_timeout = PLCP + get_duration(ACK_SIZE, 10);
        erp.ack_consume_time = SIFS + PLCP + get_duration(ACK_SIZE, 10);
 
@@ -101,14 +102,7 @@ void rt2x00lib_config_erp(struct rt2x00_dev *rt2x00dev,
                erp.ack_consume_time += PREAMBLE;
        }
 
-       retval = rt2x00dev->ops->lib->config_erp(rt2x00dev, &erp);
-
-       if (retval) {
-               spin_lock(&intf->lock);
-               intf->delayed_flags |= DELAYED_CONFIG_ERP;
-               queue_work(rt2x00dev->hw->workqueue, &rt2x00dev->intf_work);
-               spin_unlock(&intf->lock);
-       }
+       rt2x00dev->ops->lib->config_erp(rt2x00dev, &erp);
 }
 
 void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev,
@@ -137,6 +131,7 @@ void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev,
         */
        rt2x00dev->ops->lib->config(rt2x00dev, &libconf, CONFIG_UPDATE_ANTENNA);
        rt2x00lib_reset_link_tuner(rt2x00dev);
+       rt2x00_reset_link_ant_rssi(&rt2x00dev->link);
 
        rt2x00dev->link.ant.active.rx = libconf.ant.rx;
        rt2x00dev->link.ant.active.tx = libconf.ant.tx;