wl12xx: move ps_poll_failures and psm_entry_retry into wlvif
authorEliad Peller <eliad@wizery.com>
Wed, 5 Oct 2011 09:56:02 +0000 (11:56 +0200)
committerLuciano Coelho <coelho@ti.com>
Fri, 7 Oct 2011 05:32:52 +0000 (08:32 +0300)
move ps_poll_failures and psm_entry_retries 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/debugfs.c
drivers/net/wireless/wl12xx/event.c
drivers/net/wireless/wl12xx/main.c
drivers/net/wireless/wl12xx/wl12xx.h

index 439db1f8d277e5b189924fe7466e764ea4045c3c..cd390e0da51dbc009e223cbb54066bf8670ae2a9 100644 (file)
@@ -351,8 +351,6 @@ static ssize_t driver_state_read(struct file *file, char __user *user_buf,
        DRIVER_STATE_PRINT_INT(state);
        DRIVER_STATE_PRINT_INT(channel);
        DRIVER_STATE_PRINT_INT(band);
-       DRIVER_STATE_PRINT_INT(psm_entry_retry);
-       DRIVER_STATE_PRINT_INT(ps_poll_failures);
        DRIVER_STATE_PRINT_INT(power_level);
        DRIVER_STATE_PRINT_INT(rssi_thold);
        DRIVER_STATE_PRINT_INT(last_rssi_event);
index 7a9913a3f71c10bf7d393eacbd6574414cf7f570..6c48b8c3f5bbb1999c2fa6c57c26f7944be36863 100644 (file)
@@ -78,8 +78,8 @@ static void wl1271_event_pspoll_delivery_fail(struct wl1271 *wl,
        int delay = wl->conf.conn.ps_poll_recovery_period;
        int ret;
 
-       wl->ps_poll_failures++;
-       if (wl->ps_poll_failures == 1)
+       wlvif->ps_poll_failures++;
+       if (wlvif->ps_poll_failures == 1)
                wl1271_info("AP with dysfunctional ps-poll, "
                            "trying to work around it.");
 
@@ -118,23 +118,23 @@ static int wl1271_event_ps_report(struct wl1271 *wl,
 
                if (!test_bit(WL1271_FLAG_PSM, &wl->flags)) {
                        /* remain in active mode */
-                       wl->psm_entry_retry = 0;
+                       wlvif->psm_entry_retry = 0;
                        break;
                }
 
-               if (wl->psm_entry_retry < total_retries) {
-                       wl->psm_entry_retry++;
+               if (wlvif->psm_entry_retry < total_retries) {
+                       wlvif->psm_entry_retry++;
                        ret = wl1271_ps_set_mode(wl, wlvif,
                                                 STATION_POWER_SAVE_MODE,
                                                 wlvif->basic_rate, true);
                } else {
                        wl1271_info("No ack to nullfunc from AP.");
-                       wl->psm_entry_retry = 0;
+                       wlvif->psm_entry_retry = 0;
                        *beacon_loss = true;
                }
                break;
        case EVENT_ENTER_POWER_SAVE_SUCCESS:
-               wl->psm_entry_retry = 0;
+               wlvif->psm_entry_retry = 0;
 
                /* enable beacon filtering */
                ret = wl1271_acx_beacon_filter_opt(wl, wlvif, true);
index cb2355354bf0038f6d72ba23d38ef5b15c2a267f..fd2b9f21acff0c83c0d75825f08b3bb0ec0fb0d6 100644 (file)
@@ -2141,7 +2141,6 @@ deinit:
        wl->band = IEEE80211_BAND_2GHZ;
 
        wl->rx_counter = 0;
-       wl->psm_entry_retry = 0;
        wl->power_level = WL1271_DEFAULT_POWER_LEVEL;
        wl->tx_blocks_available = 0;
        wl->tx_allocated_blocks = 0;
@@ -3540,7 +3539,7 @@ sta_not_found:
                        wlvif->aid = bss_conf->aid;
                        set_assoc = true;
 
-                       wl->ps_poll_failures = 0;
+                       wlvif->ps_poll_failures = 0;
 
                        /*
                         * use basic rates from AP, and determine lowest rate
@@ -4894,7 +4893,6 @@ struct ieee80211_hw *wl1271_alloc_hw(void)
 
        wl->channel = WL1271_DEFAULT_CHANNEL;
        wl->rx_counter = 0;
-       wl->psm_entry_retry = 0;
        wl->power_level = WL1271_DEFAULT_POWER_LEVEL;
        wl->band = IEEE80211_BAND_2GHZ;
        wl->vif = NULL;
index 7166a79e00e40a51878e1c0cc848c68e32f9c9a0..9d9d3fbd14e54b7933ce1f7b4b555dcd77b636fd 100644 (file)
@@ -511,12 +511,6 @@ struct wl1271 {
        struct completion *elp_compl;
        struct delayed_work elp_work;
 
-       /* counter for ps-poll delivery failures */
-       int ps_poll_failures;
-
-       /* retry counter for PSM entries */
-       u8 psm_entry_retry;
-
        /* in dBm */
        int power_level;
 
@@ -652,6 +646,12 @@ struct wl12xx_vif {
 
        struct completion *ps_compl;
        struct delayed_work pspoll_work;
+
+       /* counter for ps-poll delivery failures */
+       int ps_poll_failures;
+
+       /* retry counter for PSM entries */
+       u8 psm_entry_retry;
 };
 
 static inline struct wl12xx_vif *wl12xx_vif_to_data(struct ieee80211_vif *vif)