소스 검색

ath9k: Check early for multi-vif/STA conditions

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>
Sujith Manoharan 10 년 전
부모
커밋
dc4b277d51
1개의 변경된 파일7개의 추가작업 그리고 15개의 파일을 삭제
  1. 7 15
      drivers/net/wireless/ath/ath9k/wow.c

+ 7 - 15
drivers/net/wireless/ath/ath9k/wow.c

@@ -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",