ath9k: Check early for multi-vif/STA conditions
authorSujith Manoharan <c_manoha@qca.qualcomm.com>
Fri, 30 Jan 2015 13:35:24 +0000 (19:05 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 3 Feb 2015 13:31:00 +0000 (15:31 +0200)
If multiple interfaces are active or there is no
associated station interface, bail out early and
return 1 so that mac80211 can proceed with the normal
suspend routine.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/ath9k/wow.c

index 272c05c5c24ee7e911e3b65fab6404352089377c..1799a1d69ebdd40b18dca9e101e85bdf7e048c06 100644 (file)
@@ -209,29 +209,21 @@ int ath9k_suspend(struct ieee80211_hw *hw,
                goto fail_wow;
        }
 
-       ath_cancel_work(sc);
-       ath_stop_ani(sc);
-
-       /*
-        * none of the sta vifs are associated
-        * and we are not currently handling multivif
-        * cases, for instance we have to seperately
-        * configure 'keep alive frame' for each
-        * STA.
-        */
-
-       if (!test_bit(ATH_OP_PRIM_STA_VIF, &common->op_flags)) {
-               ath_dbg(common, WOW, "None of the STA vifs are associated\n");
+       if (sc->cur_chan->nvifs > 1) {
+               ath_dbg(common, WOW, "WoW for multivif is not yet supported\n");
                ret = 1;
                goto fail_wow;
        }
 
-       if (sc->cur_chan->nvifs > 1) {
-               ath_dbg(common, WOW, "WoW for multivif is not yet supported\n");
+       if (!test_bit(ATH_OP_PRIM_STA_VIF, &common->op_flags)) {
+               ath_dbg(common, WOW, "None of the STA vifs are associated\n");
                ret = 1;
                goto fail_wow;
        }
 
+       ath_cancel_work(sc);
+       ath_stop_ani(sc);
+
        ath9k_wow_map_triggers(sc, wowlan, &wow_triggers_enabled);
 
        ath_dbg(common, WOW, "WoW triggers enabled 0x%x\n",