wl12xx: enter psm only after station role was started
authorEliad Peller <eliad@wizery.com>
Tue, 23 Aug 2011 13:37:01 +0000 (16:37 +0300)
committerLuciano Coelho <coelho@ti.com>
Thu, 25 Aug 2011 07:19:28 +0000 (10:19 +0300)
The station didn't get into psm after recovery, because
psm was configured before sta role was started.

Move wl1271_ps_set_mode() to be executed only after
the role was started.

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

index 3edc1d867836a4480f48825fb17447bfa8b29397..0f72af9fc26723eafc521b4b330d96708fc21af0 100644 (file)
@@ -3361,19 +3361,6 @@ sta_not_found:
                        ret = wl1271_acx_conn_monit_params(wl, true);
                        if (ret < 0)
                                goto out;
-
-                       /* If we want to go in PSM but we're not there yet */
-                       if (test_bit(WL1271_FLAG_PSM_REQUESTED, &wl->flags) &&
-                           !test_bit(WL1271_FLAG_PSM, &wl->flags)) {
-                               enum wl1271_cmd_ps_mode mode;
-
-                               mode = STATION_POWER_SAVE_MODE;
-                               ret = wl1271_ps_set_mode(wl, mode,
-                                                        wl->basic_rate,
-                                                        true);
-                               if (ret < 0)
-                                       goto out;
-                       }
                } else {
                        /* use defaults when not associated */
                        bool was_assoc =
@@ -3517,6 +3504,19 @@ sta_not_found:
                        if (ret < 0)
                                goto out;
                }
+
+               /* If we want to go in PSM but we're not there yet */
+               if (test_bit(WL1271_FLAG_PSM_REQUESTED, &wl->flags) &&
+                   !test_bit(WL1271_FLAG_PSM, &wl->flags)) {
+                       enum wl1271_cmd_ps_mode mode;
+
+                       mode = STATION_POWER_SAVE_MODE;
+                       ret = wl1271_ps_set_mode(wl, mode,
+                                                wl->basic_rate,
+                                                true);
+                       if (ret < 0)
+                               goto out;
+               }
        }
 
        /* Handle new association with HT. Do this after join. */