|
@@ -1237,6 +1237,7 @@ static void iwl_mvm_bss_info_changed_station(struct iwl_mvm *mvm,
|
|
|
*/
|
|
*/
|
|
|
iwl_mvm_remove_time_event(mvm, mvmvif,
|
|
iwl_mvm_remove_time_event(mvm, mvmvif,
|
|
|
&mvmvif->time_event_data);
|
|
&mvmvif->time_event_data);
|
|
|
|
|
+ WARN_ON(iwl_mvm_enable_beacon_filter(mvm, vif, CMD_SYNC));
|
|
|
} else if (changes & (BSS_CHANGED_PS | BSS_CHANGED_P2P_PS |
|
|
} else if (changes & (BSS_CHANGED_PS | BSS_CHANGED_P2P_PS |
|
|
|
BSS_CHANGED_QOS)) {
|
|
BSS_CHANGED_QOS)) {
|
|
|
ret = iwl_mvm_power_update_mac(mvm, vif);
|
|
ret = iwl_mvm_power_update_mac(mvm, vif);
|
|
@@ -1611,7 +1612,9 @@ static int iwl_mvm_mac_sta_state(struct ieee80211_hw *hw,
|
|
|
} else if (old_state == IEEE80211_STA_ASSOC &&
|
|
} else if (old_state == IEEE80211_STA_ASSOC &&
|
|
|
new_state == IEEE80211_STA_AUTHORIZED) {
|
|
new_state == IEEE80211_STA_AUTHORIZED) {
|
|
|
/* enable beacon filtering */
|
|
/* enable beacon filtering */
|
|
|
- WARN_ON(iwl_mvm_enable_beacon_filter(mvm, vif, CMD_SYNC));
|
|
|
|
|
|
|
+ if (vif->bss_conf.dtim_period)
|
|
|
|
|
+ WARN_ON(iwl_mvm_enable_beacon_filter(mvm, vif,
|
|
|
|
|
+ CMD_SYNC));
|
|
|
ret = 0;
|
|
ret = 0;
|
|
|
} else if (old_state == IEEE80211_STA_AUTHORIZED &&
|
|
} else if (old_state == IEEE80211_STA_AUTHORIZED &&
|
|
|
new_state == IEEE80211_STA_ASSOC) {
|
|
new_state == IEEE80211_STA_ASSOC) {
|