wl12xx: move basic_rate into wlvif
authorEliad Peller <eliad@wizery.com>
Wed, 5 Oct 2011 09:55:43 +0000 (11:55 +0200)
committerLuciano Coelho <coelho@ti.com>
Fri, 7 Oct 2011 05:32:35 +0000 (08:32 +0300)
move basic_rate into the per-interface data, rather than
being global.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/wl12xx/acx.c
drivers/net/wireless/wl12xx/acx.h
drivers/net/wireless/wl12xx/cmd.c
drivers/net/wireless/wl12xx/cmd.h
drivers/net/wireless/wl12xx/debugfs.c
drivers/net/wireless/wl12xx/event.c
drivers/net/wireless/wl12xx/init.c
drivers/net/wireless/wl12xx/main.c
drivers/net/wireless/wl12xx/wl12xx.h

index 1ef9b0b486358def483d3e03bb9f617c1019e9b9..015938f948055ff33dd04ba77646633a3f6e9790 100644 (file)
@@ -755,11 +755,11 @@ int wl1271_acx_sta_rate_policies(struct wl1271 *wl, struct wl12xx_vif *wlvif)
        }
 
        wl1271_debug(DEBUG_ACX, "basic_rate: 0x%x, full_rate: 0x%x",
-               wl->basic_rate, wlvif->rate_set);
+               wlvif->basic_rate, wlvif->rate_set);
 
        /* configure one basic rate class */
        acx->rate_policy_idx = cpu_to_le32(ACX_TX_BASIC_RATE);
-       acx->rate_policy.enabled_rates = cpu_to_le32(wl->basic_rate);
+       acx->rate_policy.enabled_rates = cpu_to_le32(wlvif->basic_rate);
        acx->rate_policy.short_retry_limit = c->short_retry_limit;
        acx->rate_policy.long_retry_limit = c->long_retry_limit;
        acx->rate_policy.aflags = c->aflags;
@@ -1567,7 +1567,7 @@ out:
        return ret;
 }
 
-int wl1271_acx_config_ps(struct wl1271 *wl)
+int wl12xx_acx_config_ps(struct wl1271 *wl, struct wl12xx_vif *wlvif)
 {
        struct wl1271_acx_config_ps *config_ps;
        int ret;
@@ -1582,7 +1582,7 @@ int wl1271_acx_config_ps(struct wl1271 *wl)
 
        config_ps->exit_retries = wl->conf.conn.psm_exit_retries;
        config_ps->enter_retries = wl->conf.conn.psm_entry_retries;
-       config_ps->null_data_rate = cpu_to_le32(wl->basic_rate);
+       config_ps->null_data_rate = cpu_to_le32(wlvif->basic_rate);
 
        ret = wl1271_cmd_configure(wl, ACX_CONFIG_PS, config_ps,
                                   sizeof(*config_ps));
index 81779f45ab412bd3a109d3e9e1660939ac3cbf99..2678e1d505f9c81a10af51a546ec1773da10017e 100644 (file)
@@ -1295,7 +1295,7 @@ int wl12xx_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index,
 int wl1271_acx_tsf_info(struct wl1271 *wl, u64 *mactime);
 int wl1271_acx_ps_rx_streaming(struct wl1271 *wl, bool enable);
 int wl1271_acx_ap_max_tx_retry(struct wl1271 *wl);
-int wl1271_acx_config_ps(struct wl1271 *wl);
+int wl12xx_acx_config_ps(struct wl1271 *wl, struct wl12xx_vif *wlvif);
 int wl1271_acx_set_inconnection_sta(struct wl1271 *wl, u8 *addr);
 int wl1271_acx_fm_coex(struct wl1271 *wl);
 int wl12xx_acx_set_rate_mgmt_params(struct wl1271 *wl);
index 6a2f758eb1d30035c33b1fa4b1bc8cc3d52501ea..ce734157980a9bce2c63076ee3469f87bae9bf80 100644 (file)
@@ -1031,7 +1031,7 @@ out:
        return ret;
 }
 
-int wl1271_cmd_build_null_data(struct wl1271 *wl)
+int wl12xx_cmd_build_null_data(struct wl1271 *wl, struct wl12xx_vif *wlvif)
 {
        struct sk_buff *skb = NULL;
        int size;
@@ -1043,7 +1043,8 @@ int wl1271_cmd_build_null_data(struct wl1271 *wl)
                size = sizeof(struct wl12xx_null_data_template);
                ptr = NULL;
        } else {
-               skb = ieee80211_nullfunc_get(wl->hw, wl->vif);
+               skb = ieee80211_nullfunc_get(wl->hw,
+                                            wl12xx_wlvif_to_vif(wlvif));
                if (!skb)
                        goto out;
                size = skb->len;
@@ -1051,7 +1052,7 @@ int wl1271_cmd_build_null_data(struct wl1271 *wl)
        }
 
        ret = wl1271_cmd_template_set(wl, CMD_TEMPL_NULL_DATA, ptr, size, 0,
-                                     wl->basic_rate);
+                                     wlvif->basic_rate);
 
 out:
        dev_kfree_skb(skb);
@@ -1062,19 +1063,21 @@ out:
 
 }
 
-int wl1271_cmd_build_klv_null_data(struct wl1271 *wl)
+int wl12xx_cmd_build_klv_null_data(struct wl1271 *wl,
+                                  struct wl12xx_vif *wlvif)
 {
+       struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif);
        struct sk_buff *skb = NULL;
        int ret = -ENOMEM;
 
-       skb = ieee80211_nullfunc_get(wl->hw, wl->vif);
+       skb = ieee80211_nullfunc_get(wl->hw, vif);
        if (!skb)
                goto out;
 
        ret = wl1271_cmd_template_set(wl, CMD_TEMPL_KLV,
                                      skb->data, skb->len,
                                      CMD_TEMPL_KLV_IDX_NULL_DATA,
-                                     wl->basic_rate);
+                                     wlvif->basic_rate);
 
 out:
        dev_kfree_skb(skb);
@@ -1161,7 +1164,8 @@ out:
        return skb;
 }
 
-int wl1271_cmd_build_arp_rsp(struct wl1271 *wl, __be32 ip_addr)
+int wl1271_cmd_build_arp_rsp(struct wl1271 *wl, struct wl12xx_vif *wlvif,
+                            __be32 ip_addr)
 {
        int ret;
        struct wl12xx_arp_rsp_template tmpl;
@@ -1197,13 +1201,14 @@ int wl1271_cmd_build_arp_rsp(struct wl1271 *wl, __be32 ip_addr)
 
        ret = wl1271_cmd_template_set(wl, CMD_TEMPL_ARP_RSP,
                                      &tmpl, sizeof(tmpl), 0,
-                                     wl->basic_rate);
+                                     wlvif->basic_rate);
 
        return ret;
 }
 
 int wl1271_build_qos_null_data(struct wl1271 *wl, struct ieee80211_vif *vif)
 {
+       struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif);
        struct ieee80211_qos_hdr template;
 
        memset(&template, 0, sizeof(template));
@@ -1221,7 +1226,7 @@ int wl1271_build_qos_null_data(struct wl1271 *wl, struct ieee80211_vif *vif)
 
        return wl1271_cmd_template_set(wl, CMD_TEMPL_QOS_NULL_DATA, &template,
                                       sizeof(template), 0,
-                                      wl->basic_rate);
+                                      wlvif->basic_rate);
 }
 
 int wl12xx_cmd_set_default_wep_key(struct wl1271 *wl, u8 id, u8 hlid)
index 234a8dc90559607a4ac574248e3df10f9d0f7873..d5749f5b3bf1112b75e8f8b2d59d0fab6d356685 100644 (file)
@@ -55,7 +55,7 @@ int wl1271_cmd_read_memory(struct wl1271 *wl, u32 addr, void *answer,
                           size_t len);
 int wl1271_cmd_template_set(struct wl1271 *wl, u16 template_id,
                            void *buf, size_t buf_len, int index, u32 rates);
-int wl1271_cmd_build_null_data(struct wl1271 *wl);
+int wl12xx_cmd_build_null_data(struct wl1271 *wl, struct wl12xx_vif *wlvif);
 int wl1271_cmd_build_ps_poll(struct wl1271 *wl, struct wl12xx_vif *wlvif,
                             u16 aid);
 int wl1271_cmd_build_probe_req(struct wl1271 *wl,
@@ -63,9 +63,11 @@ int wl1271_cmd_build_probe_req(struct wl1271 *wl,
                               const u8 *ie, size_t ie_len, u8 band);
 struct sk_buff *wl1271_cmd_build_ap_probe_req(struct wl1271 *wl,
                                              struct sk_buff *skb);
-int wl1271_cmd_build_arp_rsp(struct wl1271 *wl, __be32 ip_addr);
+int wl1271_cmd_build_arp_rsp(struct wl1271 *wl, struct wl12xx_vif *wlvif,
+                            __be32 ip_addr);
 int wl1271_build_qos_null_data(struct wl1271 *wl, struct ieee80211_vif *vif);
-int wl1271_cmd_build_klv_null_data(struct wl1271 *wl);
+int wl12xx_cmd_build_klv_null_data(struct wl1271 *wl,
+                                  struct wl12xx_vif *wlvif);
 int wl12xx_cmd_set_default_wep_key(struct wl1271 *wl, u8 id, u8 hlid);
 int wl1271_cmd_set_sta_key(struct wl1271 *wl, u16 action, u8 id, u8 key_type,
                           u8 key_size, const u8 *key, const u8 *addr,
index e63fea4b120da113251ed77bb9a700edcaea0f28..620acbfd9ec3d2e555ce74f645f820e82bc88825 100644 (file)
@@ -352,7 +352,6 @@ static ssize_t driver_state_read(struct file *file, char __user *user_buf,
        DRIVER_STATE_PRINT_INT(state);
        DRIVER_STATE_PRINT_INT(bss_type);
        DRIVER_STATE_PRINT_INT(channel);
-       DRIVER_STATE_PRINT_HEX(basic_rate);
        DRIVER_STATE_PRINT_INT(band);
        DRIVER_STATE_PRINT_INT(beacon_int);
        DRIVER_STATE_PRINT_INT(psm_entry_retry);
index 7e3ff808feef8929eb745001b20ecb00cc1ad76b..af4cef366a3e7b099449374630856a02b4ecb5be 100644 (file)
 
 void wl1271_pspoll_work(struct work_struct *work)
 {
+       struct ieee80211_vif *vif;
+       struct wl12xx_vif *wlvif;
        struct delayed_work *dwork;
        struct wl1271 *wl;
        int ret;
 
        dwork = container_of(work, struct delayed_work, work);
        wl = container_of(dwork, struct wl1271, pspoll_work);
+       vif = wl->vif; /* TODO: move work into vif struct */
+       wlvif = wl12xx_vif_to_data(vif);
 
        wl1271_debug(DEBUG_EVENT, "pspoll work");
 
@@ -60,14 +64,16 @@ void wl1271_pspoll_work(struct work_struct *work)
        if (ret < 0)
                goto out;
 
-       wl1271_ps_set_mode(wl, STATION_POWER_SAVE_MODE, wl->basic_rate, true);
+       wl1271_ps_set_mode(wl, STATION_POWER_SAVE_MODE, wlvif->basic_rate,
+                          true);
 
        wl1271_ps_elp_sleep(wl);
 out:
        mutex_unlock(&wl->mutex);
 };
 
-static void wl1271_event_pspoll_delivery_fail(struct wl1271 *wl)
+static void wl1271_event_pspoll_delivery_fail(struct wl1271 *wl,
+                                             struct wl12xx_vif *wlvif)
 {
        int delay = wl->conf.conn.ps_poll_recovery_period;
        int ret;
@@ -80,7 +86,7 @@ static void wl1271_event_pspoll_delivery_fail(struct wl1271 *wl)
        /* force active mode receive data from the AP */
        if (test_bit(WL1271_FLAG_PSM, &wl->flags)) {
                ret = wl1271_ps_set_mode(wl, STATION_ACTIVE_MODE,
-                                        wl->basic_rate, true);
+                                        wlvif->basic_rate, true);
                if (ret < 0)
                        return;
                set_bit(WL1271_FLAG_PSPOLL_FAILURE, &wl->flags);
@@ -97,6 +103,7 @@ static void wl1271_event_pspoll_delivery_fail(struct wl1271 *wl)
 }
 
 static int wl1271_event_ps_report(struct wl1271 *wl,
+                                 struct wl12xx_vif *wlvif,
                                  struct event_mailbox *mbox,
                                  bool *beacon_loss)
 {
@@ -118,7 +125,7 @@ static int wl1271_event_ps_report(struct wl1271 *wl,
                if (wl->psm_entry_retry < total_retries) {
                        wl->psm_entry_retry++;
                        ret = wl1271_ps_set_mode(wl, STATION_POWER_SAVE_MODE,
-                                                wl->basic_rate, true);
+                                                wlvif->basic_rate, true);
                } else {
                        wl1271_info("No ack to nullfunc from AP.");
                        wl->psm_entry_retry = 0;
@@ -217,6 +224,8 @@ static void wl1271_event_mbox_dump(struct event_mailbox *mbox)
 
 static int wl1271_event_process(struct wl1271 *wl, struct event_mailbox *mbox)
 {
+       struct ieee80211_vif *vif = wl->vif; /* TODO: get as param */
+       struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif);
        int ret;
        u32 vector;
        bool beacon_loss = false;
@@ -276,13 +285,13 @@ static int wl1271_event_process(struct wl1271 *wl, struct event_mailbox *mbox)
 
        if ((vector & PS_REPORT_EVENT_ID) && !is_ap) {
                wl1271_debug(DEBUG_EVENT, "PS_REPORT_EVENT");
-               ret = wl1271_event_ps_report(wl, mbox, &beacon_loss);
+               ret = wl1271_event_ps_report(wl, wlvif, mbox, &beacon_loss);
                if (ret < 0)
                        return ret;
        }
 
        if ((vector & PSPOLL_DELIVERY_FAILURE_EVENT_ID) && !is_ap)
-               wl1271_event_pspoll_delivery_fail(wl);
+               wl1271_event_pspoll_delivery_fail(wl, wlvif);
 
        if (vector & RSSI_SNR_TRIGGER_0_EVENT_ID) {
                wl1271_debug(DEBUG_EVENT, "RSSI_SNR_TRIGGER_0_EVENT");
index 37955dad1f9319ac58edf0fe56ec135613078e10..ed27c5f06bb2d1619e7a6a8557a9e165ceb17850 100644 (file)
@@ -331,7 +331,7 @@ static int wl1271_sta_hw_init(struct wl1271 *wl, struct wl12xx_vif *wlvif)
        }
 
        /* PS config */
-       ret = wl1271_acx_config_ps(wl);
+       ret = wl12xx_acx_config_ps(wl, wlvif);
        if (ret < 0)
                return ret;
 
index 195dcbdf1fc7270f66239581d0f0c994ba5f9836..8863ea542ea6a9352fdcbfd56256c5d43d208c78 100644 (file)
@@ -1609,7 +1609,8 @@ static struct notifier_block wl1271_dev_notifier = {
 };
 
 #ifdef CONFIG_PM
-static int wl1271_configure_suspend_sta(struct wl1271 *wl)
+static int wl1271_configure_suspend_sta(struct wl1271 *wl,
+                                       struct wl12xx_vif *wlvif)
 {
        int ret = 0;
 
@@ -1628,7 +1629,7 @@ static int wl1271_configure_suspend_sta(struct wl1271 *wl)
 
                wl->ps_compl = &compl;
                ret = wl1271_ps_set_mode(wl, STATION_POWER_SAVE_MODE,
-                                  wl->basic_rate, true);
+                                  wlvif->basic_rate, true);
                if (ret < 0)
                        goto out_sleep;
 
@@ -1682,16 +1683,18 @@ out_unlock:
 
 }
 
-static int wl1271_configure_suspend(struct wl1271 *wl)
+static int wl1271_configure_suspend(struct wl1271 *wl,
+                                   struct wl12xx_vif *wlvif)
 {
        if (wl->bss_type == BSS_TYPE_STA_BSS)
-               return wl1271_configure_suspend_sta(wl);
+               return wl1271_configure_suspend_sta(wl, wlvif);
        if (wl->bss_type == BSS_TYPE_AP_BSS)
                return wl1271_configure_suspend_ap(wl);
        return 0;
 }
 
-static void wl1271_configure_resume(struct wl1271 *wl)
+static void wl1271_configure_resume(struct wl1271 *wl,
+                                   struct wl12xx_vif *wlvif)
 {
        int ret;
        bool is_sta = wl->bss_type == BSS_TYPE_STA_BSS;
@@ -1709,7 +1712,7 @@ static void wl1271_configure_resume(struct wl1271 *wl)
                /* exit psm if it wasn't configured */
                if (!test_bit(WL1271_FLAG_PSM_REQUESTED, &wl->flags))
                        wl1271_ps_set_mode(wl, STATION_ACTIVE_MODE,
-                                          wl->basic_rate, true);
+                                          wlvif->basic_rate, true);
        } else if (is_ap) {
                wl1271_acx_beacon_filter_opt(wl, false);
        }
@@ -1723,13 +1726,15 @@ static int wl1271_op_suspend(struct ieee80211_hw *hw,
                            struct cfg80211_wowlan *wow)
 {
        struct wl1271 *wl = hw->priv;
+       struct ieee80211_vif *vif = wl->vif; /* TODO: get as param */
+       struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif);
        int ret;
 
        wl1271_debug(DEBUG_MAC80211, "mac80211 suspend wow=%d", !!wow);
        WARN_ON(!wow || !wow->any);
 
        wl->wow_enabled = true;
-       ret = wl1271_configure_suspend(wl);
+       ret = wl1271_configure_suspend(wl, wlvif);
        if (ret < 0) {
                wl1271_warning("couldn't prepare device to suspend");
                return ret;
@@ -1760,6 +1765,8 @@ static int wl1271_op_suspend(struct ieee80211_hw *hw,
 static int wl1271_op_resume(struct ieee80211_hw *hw)
 {
        struct wl1271 *wl = hw->priv;
+       struct ieee80211_vif *vif = wl->vif; /* TODO: get as param */
+       struct wl12xx_vif *wlvif = wl12xx_vif_to_data(vif);
        unsigned long flags;
        bool run_irq_work = false;
 
@@ -1783,7 +1790,7 @@ static int wl1271_op_resume(struct ieee80211_hw *hw)
                wl1271_irq(0, wl);
                wl1271_enable_interrupts(wl);
        }
-       wl1271_configure_resume(wl);
+       wl1271_configure_resume(wl, wlvif);
        wl->wow_enabled = false;
 
        return 0;
@@ -1840,6 +1847,7 @@ static u8 wl12xx_get_role_type(struct wl1271 *wl)
 static void wl12xx_init_vif_data(struct wl12xx_vif *wlvif)
 {
        wlvif->basic_rate_set = CONF_TX_RATE_MASK_BASIC;
+       wlvif->basic_rate = CONF_TX_RATE_MASK_BASIC;
        wlvif->rate_set = CONF_TX_RATE_MASK_BASIC;
 }
 
@@ -2214,7 +2222,7 @@ static int wl1271_join(struct wl1271 *wl, struct wl12xx_vif *wlvif,
        if (ret < 0)
                goto out;
 
-       ret = wl1271_cmd_build_klv_null_data(wl);
+       ret = wl12xx_cmd_build_klv_null_data(wl, wlvif);
        if (ret < 0)
                goto out;
 
@@ -2384,7 +2392,7 @@ static int wl1271_op_config(struct ieee80211_hw *hw, u32 changed)
                        if (!test_bit(WL1271_FLAG_STA_ASSOCIATED, &wl->flags))
                                wl1271_set_band_rate(wl, wlvif);
 
-                       wl->basic_rate =
+                       wlvif->basic_rate =
                                wl1271_tx_min_rate_get(wl,
                                                       wlvif->basic_rate_set);
                        ret = wl1271_acx_sta_rate_policies(wl, wlvif);
@@ -2450,7 +2458,7 @@ static int wl1271_op_config(struct ieee80211_hw *hw, u32 changed)
                if (test_bit(WL1271_FLAG_STA_ASSOCIATED, &wl->flags)) {
                        wl1271_debug(DEBUG_PSM, "psm enabled");
                        ret = wl1271_ps_set_mode(wl, STATION_POWER_SAVE_MODE,
-                                                wl->basic_rate, true);
+                                                wlvif->basic_rate, true);
                }
        } else if (!(conf->flags & IEEE80211_CONF_PS) &&
                   test_bit(WL1271_FLAG_PSM_REQUESTED, &wl->flags)) {
@@ -2460,7 +2468,7 @@ static int wl1271_op_config(struct ieee80211_hw *hw, u32 changed)
 
                if (test_bit(WL1271_FLAG_PSM, &wl->flags))
                        ret = wl1271_ps_set_mode(wl, STATION_ACTIVE_MODE,
-                                                wl->basic_rate, true);
+                                                wlvif->basic_rate, true);
        }
 
        if (conf->power_level != wl->power_level) {
@@ -3311,7 +3319,7 @@ static void wl1271_bss_info_changed_ap(struct wl1271 *wl,
 
                wlvif->basic_rate_set = wl1271_tx_enabled_rates_get(wl, rates,
                                                                 wl->band);
-               wl->basic_rate = wl1271_tx_min_rate_get(wl,
+               wlvif->basic_rate = wl1271_tx_min_rate_get(wl,
                                                        wlvif->basic_rate_set);
 
                ret = wl1271_init_ap_rates(wl, wlvif);
@@ -3450,7 +3458,7 @@ static void wl1271_bss_info_changed_sta(struct wl1271 *wl,
                memcpy(wl->bssid, bss_conf->bssid, ETH_ALEN);
 
                if (!is_zero_ether_addr(wl->bssid)) {
-                       ret = wl1271_cmd_build_null_data(wl);
+                       ret = wl12xx_cmd_build_null_data(wl, wlvif);
                        if (ret < 0)
                                goto out;
 
@@ -3498,7 +3506,7 @@ sta_not_found:
                        wlvif->basic_rate_set =
                                wl1271_tx_enabled_rates_get(wl, rates,
                                                            wl->band);
-                       wl->basic_rate =
+                       wlvif->basic_rate =
                                wl1271_tx_min_rate_get(wl,
                                                       wlvif->basic_rate_set);
                        if (sta_rate_set)
@@ -3552,7 +3560,7 @@ sta_not_found:
 
                        /* revert back to minimum rates for the current band */
                        wl1271_set_band_rate(wl, wlvif);
-                       wl->basic_rate =
+                       wlvif->basic_rate =
                                wl1271_tx_min_rate_get(wl,
                                                       wlvif->basic_rate_set);
                        ret = wl1271_acx_sta_rate_policies(wl, wlvif);
@@ -3608,7 +3616,7 @@ sta_not_found:
                        wlvif->basic_rate_set =
                                wl1271_tx_enabled_rates_get(wl, rates,
                                                            wl->band);
-                       wl->basic_rate =
+                       wlvif->basic_rate =
                                wl1271_tx_min_rate_get(wl,
                                                       wlvif->basic_rate_set);
 
@@ -3636,7 +3644,7 @@ sta_not_found:
                         * isn't being set (when sending), so we have to
                         * reconfigure the template upon every ip change.
                         */
-                       ret = wl1271_cmd_build_arp_rsp(wl, addr);
+                       ret = wl1271_cmd_build_arp_rsp(wl, wlvif, addr);
                        if (ret < 0) {
                                wl1271_warning("build arp rsp failed: %d", ret);
                                goto out;
@@ -3689,7 +3697,7 @@ sta_not_found:
 
                        mode = STATION_POWER_SAVE_MODE;
                        ret = wl1271_ps_set_mode(wl, mode,
-                                                wl->basic_rate,
+                                                wlvif->basic_rate,
                                                 true);
                        if (ret < 0)
                                goto out;
@@ -4844,7 +4852,6 @@ struct ieee80211_hw *wl1271_alloc_hw(void)
        wl->rx_counter = 0;
        wl->psm_entry_retry = 0;
        wl->power_level = WL1271_DEFAULT_POWER_LEVEL;
-       wl->basic_rate = CONF_TX_RATE_MASK_BASIC;
        wl->band = IEEE80211_BAND_2GHZ;
        wl->vif = NULL;
        wl->flags = 0;
index 6f3efbae740e2f43b34383cce74efc1b1c94e641..d355c737044b227b847813e20e2769872a2fd536 100644 (file)
@@ -519,13 +519,6 @@ struct wl1271 {
        /* Our association ID */
        u16 aid;
 
-       /*
-        * currently configured rate set:
-        *      bits  0-15 - 802.11abg rates
-        *      bits 16-23 - 802.11n   MCS index mask
-        * support only 1 stream, thus only 8 bits for the MCS rates (0-7).
-        */
-       u32 basic_rate;
        u32 bitrate_masks[IEEE80211_NUM_BANDS];
 
        /* The current band */
@@ -646,6 +639,7 @@ struct wl12xx_vif {
         *      bits 16-23 - 802.11n   MCS index mask
         * support only 1 stream, thus only 8 bits for the MCS rates (0-7).
         */
+       u32 basic_rate;
        u32 rate_set;
 };