ath9k: Check early for multi-vif/STA conditions
[firefly-linux-kernel-4.4.55.git] / 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",