ath9k: Parse DTIM period from mac80211
authorMohammed Shafi Shajakhan <mshajakhan@atheros.com>
Tue, 7 Dec 2010 15:44:15 +0000 (21:14 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 7 Dec 2010 22:08:08 +0000 (17:08 -0500)
With the current save power save implementation we assume a dtim period
of 1.This value is assigned based on a sanity check in the driver
eventhough we had not parsed it from mac80211.This patch obtains the actual
DTIM period from AP by parsing it from mac80211.Yet for handling
multicast traffic we may still have it as fixed rather than parsing it
from mac80211 .This does not breaks power save or anything as the sleep
duration is currently fixed in the driver.This patch may serve to improve
power save in the future by using dtim period for sleep duration and using
correct dtim period adhoc mode.

Signed-off-by: Mohammed Shafi Shajakhan <mshajakhan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/htc_drv_init.c
drivers/net/wireless/ath/ath9k/init.c

index 680cd369f144878fa1b20bdbaaab87c6fbd9304e..93f3f615218be9d866afdb4f8b7c7bbeac863258 100644 (file)
@@ -714,7 +714,8 @@ static void ath9k_set_hw_capab(struct ath9k_htc_priv *priv,
                IEEE80211_HW_HAS_RATE_CONTROL |
                IEEE80211_HW_RX_INCLUDES_FCS |
                IEEE80211_HW_SUPPORTS_PS |
-               IEEE80211_HW_PS_NULLFUNC_STACK;
+               IEEE80211_HW_PS_NULLFUNC_STACK |
+               IEEE80211_HW_NEED_DTIM_PERIOD;
 
        hw->wiphy->interface_modes =
                BIT(NL80211_IFTYPE_STATION) |
index bd451c243689a1c13a19952f349cc09d04306da9..b2983ce19dfbb71b838b81066de4fb46968b736e 100644 (file)
@@ -642,7 +642,8 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
                IEEE80211_HW_SUPPORTS_PS |
                IEEE80211_HW_PS_NULLFUNC_STACK |
                IEEE80211_HW_SPECTRUM_MGMT |
-               IEEE80211_HW_REPORTS_TX_ACK_STATUS;
+               IEEE80211_HW_REPORTS_TX_ACK_STATUS |
+               IEEE80211_HW_NEED_DTIM_PERIOD;
 
        if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT)
                 hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;