rt2x00: Rename config_preamble() to config_erp()
authorIvo van Doorn <ivdoorn@gmail.com>
Sun, 9 Mar 2008 21:46:18 +0000 (22:46 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 13 Mar 2008 20:02:36 +0000 (16:02 -0400)
Rename config_preamble() to config_erp() and cleanup argument
list by putting it all into a single structure.
This will make the function more meaningful and easier to
expand later. This second option is mostly intended to make
the patch "mac80211: proper short-slot handling" from Johannes Berg
easier to apply for rt2x00.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2400pci.c
drivers/net/wireless/rt2x00/rt2500pci.c
drivers/net/wireless/rt2x00/rt2500usb.c
drivers/net/wireless/rt2x00/rt2x00.h
drivers/net/wireless/rt2x00/rt2x00config.c
drivers/net/wireless/rt2x00/rt2x00dev.c
drivers/net/wireless/rt2x00/rt2x00lib.h
drivers/net/wireless/rt2x00/rt2x00mac.c
drivers/net/wireless/rt2x00/rt61pci.c
drivers/net/wireless/rt2x00/rt73usb.c

index 0ac0c6e08732c4358bf16136854f43360445b14f..70f711e86362f12ff2279f97a3c4f350fa184838 100644 (file)
@@ -304,10 +304,8 @@ static void rt2400pci_config_intf(struct rt2x00_dev *rt2x00dev,
                                              conf->bssid, sizeof(conf->bssid));
 }
 
-static int rt2400pci_config_preamble(struct rt2x00_dev *rt2x00dev,
-                                    const int short_preamble,
-                                    const int ack_timeout,
-                                    const int ack_consume_time)
+static int rt2400pci_config_erp(struct rt2x00_dev *rt2x00dev,
+                               struct rt2x00lib_erp *erp)
 {
        int preamble_mask;
        u32 reg;
@@ -315,11 +313,13 @@ static int rt2400pci_config_preamble(struct rt2x00_dev *rt2x00dev,
        /*
         * When short preamble is enabled, we should set bit 0x08
         */
-       preamble_mask = short_preamble << 3;
+       preamble_mask = erp->short_preamble << 3;
 
        rt2x00pci_register_read(rt2x00dev, TXCSR1, &reg);
-       rt2x00_set_field32(&reg, TXCSR1_ACK_TIMEOUT, ack_timeout);
-       rt2x00_set_field32(&reg, TXCSR1_ACK_CONSUME_TIME, ack_consume_time);
+       rt2x00_set_field32(&reg, TXCSR1_ACK_TIMEOUT,
+                          erp->ack_timeout);
+       rt2x00_set_field32(&reg, TXCSR1_ACK_CONSUME_TIME,
+                          erp->ack_consume_time);
        rt2x00pci_register_write(rt2x00dev, TXCSR1, reg);
 
        rt2x00pci_register_read(rt2x00dev, ARCSR2, &reg);
@@ -1601,7 +1601,7 @@ static const struct rt2x00lib_ops rt2400pci_rt2x00_ops = {
        .kick_tx_queue          = rt2400pci_kick_tx_queue,
        .fill_rxdone            = rt2400pci_fill_rxdone,
        .config_intf            = rt2400pci_config_intf,
-       .config_preamble        = rt2400pci_config_preamble,
+       .config_erp             = rt2400pci_config_erp,
        .config                 = rt2400pci_config,
 };
 
index d85e1a44d5cdecc10d338f932b04ae3d45fea6d8..a46206c69760d41b560720210f864a0467330e5c 100644 (file)
@@ -307,10 +307,8 @@ static void rt2500pci_config_intf(struct rt2x00_dev *rt2x00dev,
                                              conf->bssid, sizeof(conf->bssid));
 }
 
-static int rt2500pci_config_preamble(struct rt2x00_dev *rt2x00dev,
-                                    const int short_preamble,
-                                    const int ack_timeout,
-                                    const int ack_consume_time)
+static int rt2500pci_config_erp(struct rt2x00_dev *rt2x00dev,
+                               struct rt2x00lib_erp *erp)
 {
        int preamble_mask;
        u32 reg;
@@ -318,11 +316,13 @@ static int rt2500pci_config_preamble(struct rt2x00_dev *rt2x00dev,
        /*
         * When short preamble is enabled, we should set bit 0x08
         */
-       preamble_mask = short_preamble << 3;
+       preamble_mask = erp->short_preamble << 3;
 
        rt2x00pci_register_read(rt2x00dev, TXCSR1, &reg);
-       rt2x00_set_field32(&reg, TXCSR1_ACK_TIMEOUT, ack_timeout);
-       rt2x00_set_field32(&reg, TXCSR1_ACK_CONSUME_TIME, ack_consume_time);
+       rt2x00_set_field32(&reg, TXCSR1_ACK_TIMEOUT,
+                          erp->ack_timeout);
+       rt2x00_set_field32(&reg, TXCSR1_ACK_CONSUME_TIME,
+                          erp->ack_consume_time);
        rt2x00pci_register_write(rt2x00dev, TXCSR1, reg);
 
        rt2x00pci_register_read(rt2x00dev, ARCSR2, &reg);
@@ -1911,7 +1911,7 @@ static const struct rt2x00lib_ops rt2500pci_rt2x00_ops = {
        .kick_tx_queue          = rt2500pci_kick_tx_queue,
        .fill_rxdone            = rt2500pci_fill_rxdone,
        .config_intf            = rt2500pci_config_intf,
-       .config_preamble        = rt2500pci_config_preamble,
+       .config_erp             = rt2500pci_config_erp,
        .config                 = rt2500pci_config,
 };
 
index 7ea4247442b3c7dd4ea7fa63b61f29ca2698b22b..43da93a22e7798c0866cc3abde79fff3da766510 100644 (file)
@@ -356,10 +356,8 @@ static void rt2500usb_config_intf(struct rt2x00_dev *rt2x00dev,
                                              (3 * sizeof(__le16)));
 }
 
-static int rt2500usb_config_preamble(struct rt2x00_dev *rt2x00dev,
-                                    const int short_preamble,
-                                    const int ack_timeout,
-                                    const int ack_consume_time)
+static int rt2500usb_config_erp(struct rt2x00_dev *rt2x00dev,
+                               struct rt2x00lib_erp *erp)
 {
        u16 reg;
 
@@ -371,12 +369,12 @@ static int rt2500usb_config_preamble(struct rt2x00_dev *rt2x00dev,
                return -EAGAIN;
 
        rt2500usb_register_read(rt2x00dev, TXRX_CSR1, &reg);
-       rt2x00_set_field16(&reg, TXRX_CSR1_ACK_TIMEOUT, ack_timeout);
+       rt2x00_set_field16(&reg, TXRX_CSR1_ACK_TIMEOUT, erp->ack_timeout);
        rt2500usb_register_write(rt2x00dev, TXRX_CSR1, reg);
 
        rt2500usb_register_read(rt2x00dev, TXRX_CSR10, &reg);
        rt2x00_set_field16(&reg, TXRX_CSR10_AUTORESPOND_PREAMBLE,
-                          !!short_preamble);
+                          !!erp->short_preamble);
        rt2500usb_register_write(rt2x00dev, TXRX_CSR10, reg);
 
        return 0;
@@ -1842,7 +1840,7 @@ static const struct rt2x00lib_ops rt2500usb_rt2x00_ops = {
        .kick_tx_queue          = rt2500usb_kick_tx_queue,
        .fill_rxdone            = rt2500usb_fill_rxdone,
        .config_intf            = rt2500usb_config_intf,
-       .config_preamble        = rt2500usb_config_preamble,
+       .config_erp             = rt2500usb_config_erp,
        .config                 = rt2500usb_config,
 };
 
index 8718ad3dcc00f67847323632c59f01cb1f2ecf19..a324ff3ed7e7f898a99645658464bc0552becaad 100644 (file)
@@ -384,7 +384,7 @@ struct rt2x00_intf {
         */
        unsigned int delayed_flags;
 #define DELAYED_UPDATE_BEACON          0x00000001
-#define DELAYED_CONFIG_PREAMBLE                0x00000002
+#define DELAYED_CONFIG_ERP             0x00000002
 };
 
 static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif)
@@ -450,6 +450,16 @@ struct rt2x00lib_conf {
        short eifs;
 };
 
+/*
+ * Configuration structure for erp settings.
+ */
+struct rt2x00lib_erp {
+       int short_preamble;
+
+       int ack_timeout;
+       int ack_consume_time;
+};
+
 /*
  * Configuration structure wrapper around the
  * rt2x00 interface configuration handler.
@@ -558,10 +568,8 @@ struct rt2x00lib_ops {
 #define CONFIG_UPDATE_MAC              ( 1 << 2 )
 #define CONFIG_UPDATE_BSSID            ( 1 << 3 )
 
-       int (*config_preamble) (struct rt2x00_dev *rt2x00dev,
-                               const int short_preamble,
-                               const int ack_timeout,
-                               const int ack_consume_time);
+       int (*config_erp) (struct rt2x00_dev *rt2x00dev,
+                          struct rt2x00lib_erp *erp);
        void (*config) (struct rt2x00_dev *rt2x00dev,
                        struct rt2x00lib_conf *libconf,
                        const unsigned int flags);
index 69959124d25dd93a325805efc47623611e193dac..72111694154e20e2c8657e96d1a838b627b921e1 100644 (file)
@@ -75,43 +75,40 @@ void rt2x00lib_config_intf(struct rt2x00_dev *rt2x00dev,
        rt2x00dev->ops->lib->config_intf(rt2x00dev, intf, &conf, flags);
 }
 
-void rt2x00lib_config_preamble(struct rt2x00_dev *rt2x00dev,
-                              struct rt2x00_intf *intf,
-                              const unsigned int short_preamble)
+void rt2x00lib_config_erp(struct rt2x00_dev *rt2x00dev,
+                         struct rt2x00_intf *intf,
+                         struct ieee80211_bss_conf *bss_conf)
 {
+       struct rt2x00lib_erp erp;
        int retval;
-       int ack_timeout;
-       int ack_consume_time;
 
-       ack_timeout = PLCP + get_duration(ACK_SIZE, 10);
-       ack_consume_time = SIFS + PLCP + get_duration(ACK_SIZE, 10);
+       memset(&erp, 0, sizeof(erp));
+
+       erp.short_preamble = bss_conf->use_short_preamble;
+       erp.ack_timeout = PLCP + get_duration(ACK_SIZE, 10);
+       erp.ack_consume_time = SIFS + PLCP + get_duration(ACK_SIZE, 10);
 
        if (rt2x00dev->hw->conf.flags & IEEE80211_CONF_SHORT_SLOT_TIME)
-               ack_timeout += SHORT_DIFS;
+               erp.ack_timeout += SHORT_DIFS;
        else
-               ack_timeout += DIFS;
+               erp.ack_timeout += DIFS;
 
-       if (short_preamble) {
-               ack_timeout += SHORT_PREAMBLE;
-               ack_consume_time += SHORT_PREAMBLE;
+       if (bss_conf->use_short_preamble) {
+               erp.ack_timeout += SHORT_PREAMBLE;
+               erp.ack_consume_time += SHORT_PREAMBLE;
        } else {
-               ack_timeout += PREAMBLE;
-               ack_consume_time += PREAMBLE;
+               erp.ack_timeout += PREAMBLE;
+               erp.ack_consume_time += PREAMBLE;
        }
 
-       retval = rt2x00dev->ops->lib->config_preamble(rt2x00dev,
-                                                     short_preamble,
-                                                     ack_timeout,
-                                                     ack_consume_time);
-
-       spin_lock(&intf->lock);
+       retval = rt2x00dev->ops->lib->config_erp(rt2x00dev, &erp);
 
        if (retval) {
-               intf->delayed_flags |= DELAYED_CONFIG_PREAMBLE;
+               spin_lock(&intf->lock);
+               intf->delayed_flags |= DELAYED_CONFIG_ERP;
                queue_work(rt2x00dev->hw->workqueue, &rt2x00dev->intf_work);
+               spin_unlock(&intf->lock);
        }
-
-       spin_unlock(&intf->lock);
 }
 
 void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev,
index 455d0763503e70a95fb43b70aa47f621ae0972f1..d6b12789ba77c2599953c7375b85546be9dd9f9b 100644 (file)
@@ -447,9 +447,8 @@ static void rt2x00lib_intf_scheduled_iter(void *data, u8 *mac,
                }
        }
 
-       if (delayed_flags & DELAYED_CONFIG_PREAMBLE)
-               rt2x00lib_config_preamble(rt2x00dev, intf,
-                                         intf->conf.use_short_preamble);
+       if (delayed_flags & DELAYED_CONFIG_ERP)
+               rt2x00lib_config_erp(rt2x00dev, intf, &intf->conf);
 }
 
 static void rt2x00lib_intf_scheduled(struct work_struct *work)
index 34ccb3de687e730ebcbacdb98002025e041529a7..6bd5a01ddfce87d7e32ff631f88837a8695db687 100644 (file)
@@ -100,9 +100,9 @@ void rt2x00lib_config_intf(struct rt2x00_dev *rt2x00dev,
                           struct rt2x00_intf *intf,
                           enum ieee80211_if_types type,
                           u8 *mac, u8 *bssid);
-void rt2x00lib_config_preamble(struct rt2x00_dev *rt2x00dev,
-                              struct rt2x00_intf *intf,
-                              const unsigned int short_preamble);
+void rt2x00lib_config_erp(struct rt2x00_dev *rt2x00dev,
+                         struct rt2x00_intf *intf,
+                         struct ieee80211_bss_conf *conf);
 void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev,
                              enum antenna rx, enum antenna tx);
 void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,
index 76a2a7c118b271d50d96ee40b9f4d139c246eb8a..0a11c27d603b0213601dabdebd3662afc6243a1b 100644 (file)
@@ -436,17 +436,15 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
        }
 
        /*
-        * When the preamble mode has changed, we should perform additional
-        * configuration steps. For all other changes we are already done.
+        * When the erp information has changed, we should perform
+        * additional configuration steps. For all other changes we are done.
         */
-       if (changes & BSS_CHANGED_ERP_PREAMBLE) {
-               rt2x00lib_config_preamble(rt2x00dev, intf,
-                                         bss_conf->use_short_preamble);
+       if (changes & BSS_CHANGED_ERP_PREAMBLE)
+               rt2x00lib_config_erp(rt2x00dev, intf, bss_conf);
 
-               spin_lock(&intf->lock);
-               memcpy(&intf->conf, bss_conf, sizeof(*bss_conf));
-               spin_unlock(&intf->lock);
-       }
+       spin_lock(&intf->lock);
+       memcpy(&intf->conf, bss_conf, sizeof(*bss_conf));
+       spin_unlock(&intf->lock);
 }
 EXPORT_SYMBOL_GPL(rt2x00mac_bss_info_changed);
 
index f912a8515b5c27ecca3e619e44c8e328b17d2a7e..99f18d4ae8555545af4108c48acb59bca087d13d 100644 (file)
@@ -366,20 +366,18 @@ static void rt61pci_config_intf(struct rt2x00_dev *rt2x00dev,
        }
 }
 
-static int rt61pci_config_preamble(struct rt2x00_dev *rt2x00dev,
-                                  const int short_preamble,
-                                  const int ack_timeout,
-                                  const int ack_consume_time)
+static int rt61pci_config_erp(struct rt2x00_dev *rt2x00dev,
+                             struct rt2x00lib_erp *erp)
 {
        u32 reg;
 
        rt2x00pci_register_read(rt2x00dev, TXRX_CSR0, &reg);
-       rt2x00_set_field32(&reg, TXRX_CSR0_RX_ACK_TIMEOUT, ack_timeout);
+       rt2x00_set_field32(&reg, TXRX_CSR0_RX_ACK_TIMEOUT, erp->ack_timeout);
        rt2x00pci_register_write(rt2x00dev, TXRX_CSR0, reg);
 
        rt2x00pci_register_read(rt2x00dev, TXRX_CSR4, &reg);
        rt2x00_set_field32(&reg, TXRX_CSR4_AUTORESPOND_PREAMBLE,
-                          !!short_preamble);
+                          !!erp->short_preamble);
        rt2x00pci_register_write(rt2x00dev, TXRX_CSR4, reg);
 
        return 0;
@@ -2481,7 +2479,7 @@ static const struct rt2x00lib_ops rt61pci_rt2x00_ops = {
        .kick_tx_queue          = rt61pci_kick_tx_queue,
        .fill_rxdone            = rt61pci_fill_rxdone,
        .config_intf            = rt61pci_config_intf,
-       .config_preamble        = rt61pci_config_preamble,
+       .config_erp             = rt61pci_config_erp,
        .config                 = rt61pci_config,
 };
 
index d0e97e1dfaf6e501f8367bfab96abd4acecbf978..ddb59c037750d091e722ffa483bb53b3c86f32f1 100644 (file)
@@ -378,10 +378,8 @@ static void rt73usb_config_intf(struct rt2x00_dev *rt2x00dev,
        }
 }
 
-static int rt73usb_config_preamble(struct rt2x00_dev *rt2x00dev,
-                                  const int short_preamble,
-                                  const int ack_timeout,
-                                  const int ack_consume_time)
+static int rt73usb_config_erp(struct rt2x00_dev *rt2x00dev,
+                             struct rt2x00lib_erp *erp)
 {
        u32 reg;
 
@@ -393,12 +391,12 @@ static int rt73usb_config_preamble(struct rt2x00_dev *rt2x00dev,
                return -EAGAIN;
 
        rt73usb_register_read(rt2x00dev, TXRX_CSR0, &reg);
-       rt2x00_set_field32(&reg, TXRX_CSR0_RX_ACK_TIMEOUT, ack_timeout);
+       rt2x00_set_field32(&reg, TXRX_CSR0_RX_ACK_TIMEOUT, erp->ack_timeout);
        rt73usb_register_write(rt2x00dev, TXRX_CSR0, reg);
 
        rt73usb_register_read(rt2x00dev, TXRX_CSR4, &reg);
        rt2x00_set_field32(&reg, TXRX_CSR4_AUTORESPOND_PREAMBLE,
-                          !!short_preamble);
+                          !!erp->short_preamble);
        rt73usb_register_write(rt2x00dev, TXRX_CSR4, reg);
 
        return 0;
@@ -2090,7 +2088,7 @@ static const struct rt2x00lib_ops rt73usb_rt2x00_ops = {
        .kick_tx_queue          = rt73usb_kick_tx_queue,
        .fill_rxdone            = rt73usb_fill_rxdone,
        .config_intf            = rt73usb_config_intf,
-       .config_preamble        = rt73usb_config_preamble,
+       .config_erp             = rt73usb_config_erp,
        .config                 = rt73usb_config,
 };