aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/ath9k.h
diff options
context:
space:
mode:
authorMohammed Shafi Shajakhan <mshajakhan@atheros.com>2010-11-23 10:12:27 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-11-30 13:49:13 -0500
commitea066d5a91f2610116dcd27054f749e4f07799d8 (patch)
tree451eb5ad15da0cf8c401dded725fe0f3838beb48 /drivers/net/wireless/ath/ath9k/ath9k.h
parentdd318575ff0aae91ac4cbcc5b60c184e59267212 (diff)
ath9k: Add support for Adaptive Power Management
This feature is to mitigate the problem of certain 3 stream chips that exceed the PCIe power requirements.An EEPROM flag controls which chips have APM enabled which is basically read from miscellaneous configuration element of the EEPROM header. This workaround will reduce power consumption by using 2 Tx chains for Single and Double stream rates (5 GHz only).All self generated frames (regardless of rate) are sent on 2 chains when this feature is enabled(Chip Limitation). Cc: Paul Shaw <paul.shaw@atheros.com> Signed-off-by: Mohammed Shafi Shajakhan <mshajakhan@atheros.com> Tested-by: Mohammed Shafi Shajakhan <mshajakhan@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ath9k.h')
-rw-r--r--drivers/net/wireless/ath/ath9k/ath9k.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index 6f90acc5cca..efba413561a 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -544,6 +544,7 @@ struct ath_ant_comb {
544#define SC_OP_BT_PRIORITY_DETECTED BIT(12) 544#define SC_OP_BT_PRIORITY_DETECTED BIT(12)
545#define SC_OP_BT_SCAN BIT(13) 545#define SC_OP_BT_SCAN BIT(13)
546#define SC_OP_ANI_RUN BIT(14) 546#define SC_OP_ANI_RUN BIT(14)
547#define SC_OP_ENABLE_APM BIT(15)
547 548
548/* Powersave flags */ 549/* Powersave flags */
549#define PS_WAIT_FOR_BEACON BIT(0) 550#define PS_WAIT_FOR_BEACON BIT(0)
@@ -695,6 +696,8 @@ static inline void ath_ahb_exit(void) {};
695void ath9k_ps_wakeup(struct ath_softc *sc); 696void ath9k_ps_wakeup(struct ath_softc *sc);
696void ath9k_ps_restore(struct ath_softc *sc); 697void ath9k_ps_restore(struct ath_softc *sc);
697 698
699u8 ath_txchainmask_reduction(struct ath_softc *sc, u8 chainmask, u32 rate);
700
698void ath9k_set_bssid_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif); 701void ath9k_set_bssid_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
699int ath9k_wiphy_add(struct ath_softc *sc); 702int ath9k_wiphy_add(struct ath_softc *sc);
700int ath9k_wiphy_del(struct ath_wiphy *aphy); 703int ath9k_wiphy_del(struct ath_wiphy *aphy);