aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/hw.h
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-06-12 00:34:00 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-06-14 15:39:32 -0400
commit717f6bedcd2d3d39624437e1de7067c90ec931f0 (patch)
treed4d2048c61a32d96c49cfb77cff17212454ab96c /drivers/net/wireless/ath/ath9k/hw.h
parent4935250ac14d9aac7d98411bdead2e33a9fadeac (diff)
ath9k_hw: add functions for controlling PA predistortion calibration
Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/hw.h')
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
index 9d092168855b..d60472b4f773 100644
--- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h
@@ -158,6 +158,9 @@
158#define ATH9K_HW_RX_HP_QDEPTH 16 158#define ATH9K_HW_RX_HP_QDEPTH 16
159#define ATH9K_HW_RX_LP_QDEPTH 128 159#define ATH9K_HW_RX_LP_QDEPTH 128
160 160
161#define PAPRD_GAIN_TABLE_ENTRIES 32
162#define PAPRD_TABLE_SZ 24
163
161enum ath_ini_subsys { 164enum ath_ini_subsys {
162 ATH_INI_PRE = 0, 165 ATH_INI_PRE = 0,
163 ATH_INI_CORE, 166 ATH_INI_CORE,
@@ -361,6 +364,9 @@ struct ath9k_channel {
361 int8_t iCoff; 364 int8_t iCoff;
362 int8_t qCoff; 365 int8_t qCoff;
363 int16_t rawNoiseFloor; 366 int16_t rawNoiseFloor;
367 bool paprd_done;
368 u16 small_signal_gain[AR9300_MAX_CHAINS];
369 u32 pa_table[AR9300_MAX_CHAINS][PAPRD_TABLE_SZ];
364}; 370};
365 371
366#define IS_CHAN_G(_c) ((((_c)->channelFlags & (CHANNEL_G)) == CHANNEL_G) || \ 372#define IS_CHAN_G(_c) ((((_c)->channelFlags & (CHANNEL_G)) == CHANNEL_G) || \
@@ -819,6 +825,9 @@ struct ath_hw {
819 825
820 u32 bb_watchdog_last_status; 826 u32 bb_watchdog_last_status;
821 u32 bb_watchdog_timeout_ms; /* in ms, 0 to disable */ 827 u32 bb_watchdog_timeout_ms; /* in ms, 0 to disable */
828
829 u32 paprd_gain_table_entries[PAPRD_GAIN_TABLE_ENTRIES];
830 u8 paprd_gain_table_index[PAPRD_GAIN_TABLE_ENTRIES];
822}; 831};
823 832
824static inline struct ath_common *ath9k_hw_common(struct ath_hw *ah) 833static inline struct ath_common *ath9k_hw_common(struct ath_hw *ah)
@@ -946,6 +955,15 @@ void ar9003_hw_set_nf_limits(struct ath_hw *ah);
946void ar9003_hw_bb_watchdog_config(struct ath_hw *ah); 955void ar9003_hw_bb_watchdog_config(struct ath_hw *ah);
947void ar9003_hw_bb_watchdog_read(struct ath_hw *ah); 956void ar9003_hw_bb_watchdog_read(struct ath_hw *ah);
948void ar9003_hw_bb_watchdog_dbg_info(struct ath_hw *ah); 957void ar9003_hw_bb_watchdog_dbg_info(struct ath_hw *ah);
958void ar9003_paprd_enable(struct ath_hw *ah, bool val);
959void ar9003_paprd_populate_single_table(struct ath_hw *ah,
960 struct ath9k_channel *chan, int chain);
961int ar9003_paprd_create_curve(struct ath_hw *ah, struct ath9k_channel *chan,
962 int chain);
963int ar9003_paprd_setup_gain_table(struct ath_hw *ah, int chain);
964int ar9003_paprd_init_table(struct ath_hw *ah);
965bool ar9003_paprd_is_done(struct ath_hw *ah);
966void ar9003_hw_set_paprd_txdesc(struct ath_hw *ah, void *ds, u8 chains);
949 967
950/* Hardware family op attach helpers */ 968/* Hardware family op attach helpers */
951void ar5008_hw_attach_phy_ops(struct ath_hw *ah); 969void ar5008_hw_attach_phy_ops(struct ath_hw *ah);