aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath6kl/cfg80211.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/cfg80211.c')
-rw-r--r--drivers/net/wireless/ath/ath6kl/cfg80211.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index d4172137499a..f4467733ff5b 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -2076,6 +2076,13 @@ static int ath6kl_wow_suspend(struct ath6kl *ar, struct cfg80211_wowlan *wow)
2076 if (wow && (wow->n_patterns > WOW_MAX_FILTERS_PER_LIST)) 2076 if (wow && (wow->n_patterns > WOW_MAX_FILTERS_PER_LIST))
2077 return -EINVAL; 2077 return -EINVAL;
2078 2078
2079 if (!test_bit(NETDEV_MCAST_ALL_ON, &vif->flags)) {
2080 ret = ath6kl_wmi_mcast_filter_cmd(vif->ar->wmi,
2081 vif->fw_vif_idx, false);
2082 if (ret)
2083 return ret;
2084 }
2085
2079 /* Clear existing WOW patterns */ 2086 /* Clear existing WOW patterns */
2080 for (i = 0; i < WOW_MAX_FILTERS_PER_LIST; i++) 2087 for (i = 0; i < WOW_MAX_FILTERS_PER_LIST; i++)
2081 ath6kl_wmi_del_wow_pattern_cmd(ar->wmi, vif->fw_vif_idx, 2088 ath6kl_wmi_del_wow_pattern_cmd(ar->wmi, vif->fw_vif_idx,
@@ -2204,6 +2211,13 @@ static int ath6kl_wow_resume(struct ath6kl *ar)
2204 2211
2205 ar->state = ATH6KL_STATE_ON; 2212 ar->state = ATH6KL_STATE_ON;
2206 2213
2214 if (!test_bit(NETDEV_MCAST_ALL_OFF, &vif->flags)) {
2215 ret = ath6kl_wmi_mcast_filter_cmd(vif->ar->wmi,
2216 vif->fw_vif_idx, true);
2217 if (ret)
2218 return ret;
2219 }
2220
2207 netif_wake_queue(vif->ndev); 2221 netif_wake_queue(vif->ndev);
2208 2222
2209 return 0; 2223 return 0;