From: Mohammed Shafi Shajakhan <moham...@qca.qualcomm.com>

currently the code supports WoW triggers due to
*magic packet
*user defined patterns
*deauth and disassoc patterns
*disconnect - beacon miss, last beacon received timeout,
no ack for keeep alive frames.

we need to support other WoW offload features in the
near future. also a minor cleanup.

Cc: Senthil Balasubramanian <senth...@qca.qualcomm.com>
Cc: Rajkumar Manoharan <rmano...@qca.qualcomm.com>
Cc: vadi...@qca.qualcomm.com
Tested-by: Mohammed Shafi Shajakhan <moham...@qca.qualcomm.com>
Signed-off-by: Luis R. Rodriguez <mcg...@qca.qualcomm.com>
Signed-off-by: Mohammed Shafi Shajakhan <moham...@qca.qualcomm.com>
---
 drivers/net/wireless/ath/ath9k/init.c |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/init.c 
b/drivers/net/wireless/ath/ath9k/init.c
index 9dfce1a..d08824f 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -688,8 +688,8 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct 
ieee80211_hw *hw)
                IEEE80211_HW_SPECTRUM_MGMT |
                IEEE80211_HW_REPORTS_TX_ACK_STATUS;
 
-       if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT)
-                hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
+       if (ah->caps.hw_caps & ATH9K_HW_CAP_HT)
+               hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
 
        if (AR_SREV_9160_10_OR_LATER(sc->sc_ah) || ath9k_modparam_nohwcrypt)
                hw->flags |= IEEE80211_HW_MFP_CAPABLE;
@@ -713,6 +713,22 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct 
ieee80211_hw *hw)
        hw->wiphy->flags |= WIPHY_FLAG_SUPPORTS_TDLS;
        hw->wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
 
+#ifdef CONFIG_PM_SLEEP
+
+       if ((ah->caps.wow_caps & ATH9K_HW_WOW_DEVICE_CAPABLE) &&
+           device_can_wakeup(sc->dev)) {
+
+               hw->wiphy->wowlan.flags = WIPHY_WOWLAN_MAGIC_PKT |
+                                         WIPHY_WOWLAN_DISCONNECT;
+               hw->wiphy->wowlan.n_patterns = MAX_NUM_USER_PATTERN;
+               hw->wiphy->wowlan.pattern_min_len = 1;
+               hw->wiphy->wowlan.pattern_max_len = MAX_PATTERN_SIZE;
+               INIT_LIST_HEAD(&sc->wow_info.wow_patterns);
+
+       }
+
+#endif
+
        hw->queues = 4;
        hw->max_rates = 4;
        hw->channel_change_time = 5000;
-- 
1.7.0.4

_______________________________________________
ath9k-devel mailing list
ath9k-devel@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel

Reply via email to