aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath
diff options
context:
space:
mode:
authorThomas Pedersen <c_tpeder@qca.qualcomm.com>2012-04-19 19:29:19 -0400
committerKalle Valo <kvalo@qca.qualcomm.com>2012-04-23 07:30:35 -0400
commit77ed4e45833fc12f3178a65853687b60e952eddd (patch)
treea3b127688263b12c3d1759618ebf7bd085c53dcf /drivers/net/wireless/ath
parent37a2f950acc08cce6532138625de0b7caed21476 (diff)
ath6kl: disallow WoW with multiple vifs
The ath6kl fw does not have enough memory to support the WoW filters of more than one vif. Disallow WoW suspend if this is the case. Signed-off-by: Thomas Pedersen <c_tpeder@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath')
-rw-r--r--drivers/net/wireless/ath/ath6kl/cfg80211.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index c8147b953be8..d4172137499a 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -2059,6 +2059,10 @@ static int ath6kl_wow_suspend(struct ath6kl *ar, struct cfg80211_wowlan *wow)
2059 u8 index = 0; 2059 u8 index = 0;
2060 __be32 ips[MAX_IP_ADDRS]; 2060 __be32 ips[MAX_IP_ADDRS];
2061 2061
2062 /* The FW currently can't support multi-vif WoW properly. */
2063 if (ar->num_vif > 1)
2064 return -EIO;
2065
2062 vif = ath6kl_vif_first(ar); 2066 vif = ath6kl_vif_first(ar);
2063 if (!vif) 2067 if (!vif)
2064 return -EIO; 2068 return -EIO;
@@ -3137,6 +3141,10 @@ static int ath6kl_cfg80211_sscan_start(struct wiphy *wiphy,
3137 if (vif->sme_state != SME_DISCONNECTED) 3141 if (vif->sme_state != SME_DISCONNECTED)
3138 return -EBUSY; 3142 return -EBUSY;
3139 3143
3144 /* The FW currently can't support multi-vif WoW properly. */
3145 if (ar->num_vif > 1)
3146 return -EIO;
3147
3140 ath6kl_cfg80211_scan_complete_event(vif, true); 3148 ath6kl_cfg80211_scan_complete_event(vif, true);
3141 3149
3142 ret = ath6kl_set_probed_ssids(ar, vif, request->ssids, 3150 ret = ath6kl_set_probed_ssids(ar, vif, request->ssids,