Loading drivers/net/wireless/ath/ath9k/Makefile +2 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,8 @@ ath9k_hw-y:= \ mac.o \ ar9002_mac.o \ ar9003_mac.o \ ar9003_eeprom.o ar9003_eeprom.o \ ar9003_paprd.o obj-$(CONFIG_ATH9K_HW) += ath9k_hw.o Loading drivers/net/wireless/ath/ath9k/ar9003_mac.c +8 −0 Original line number Diff line number Diff line Loading @@ -470,6 +470,14 @@ static void ar9003_hw_set11n_virtualmorefrag(struct ath_hw *ah, void *ds, ads->ctl11 &= ~AR_VirtMoreFrag; } void ar9003_hw_set_paprd_txdesc(struct ath_hw *ah, void *ds, u8 chains) { struct ar9003_txc *ads = ds; ads->ctl12 |= SM(chains, AR_PAPRDChainMask); } EXPORT_SYMBOL(ar9003_hw_set_paprd_txdesc); void ar9003_hw_attach_mac_ops(struct ath_hw *hw) { struct ath_hw_ops *ops = ath9k_hw_ops(hw); Loading drivers/net/wireless/ath/ath9k/ar9003_mac.h +4 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,10 @@ #define AR_Not_Sounding 0x20000000 /* ctl 12 */ #define AR_PAPRDChainMask 0x00000e00 #define AR_PAPRDChainMask_S 9 #define MAP_ISR_S2_CST 6 #define MAP_ISR_S2_GTT 6 #define MAP_ISR_S2_TIM 3 Loading drivers/net/wireless/ath/ath9k/ar9003_paprd.c 0 → 100644 +714 −0 File added.Preview size limit exceeded, changes collapsed. Show changes drivers/net/wireless/ath/ath9k/hw.h +18 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,9 @@ #define ATH9K_HW_RX_HP_QDEPTH 16 #define ATH9K_HW_RX_LP_QDEPTH 128 #define PAPRD_GAIN_TABLE_ENTRIES 32 #define PAPRD_TABLE_SZ 24 enum ath_ini_subsys { ATH_INI_PRE = 0, ATH_INI_CORE, Loading Loading @@ -361,6 +364,9 @@ struct ath9k_channel { int8_t iCoff; int8_t qCoff; int16_t rawNoiseFloor; bool paprd_done; u16 small_signal_gain[AR9300_MAX_CHAINS]; u32 pa_table[AR9300_MAX_CHAINS][PAPRD_TABLE_SZ]; }; #define IS_CHAN_G(_c) ((((_c)->channelFlags & (CHANNEL_G)) == CHANNEL_G) || \ Loading Loading @@ -819,6 +825,9 @@ struct ath_hw { u32 bb_watchdog_last_status; u32 bb_watchdog_timeout_ms; /* in ms, 0 to disable */ u32 paprd_gain_table_entries[PAPRD_GAIN_TABLE_ENTRIES]; u8 paprd_gain_table_index[PAPRD_GAIN_TABLE_ENTRIES]; }; static inline struct ath_common *ath9k_hw_common(struct ath_hw *ah) Loading Loading @@ -946,6 +955,15 @@ void ar9003_hw_set_nf_limits(struct ath_hw *ah); void ar9003_hw_bb_watchdog_config(struct ath_hw *ah); void ar9003_hw_bb_watchdog_read(struct ath_hw *ah); void ar9003_hw_bb_watchdog_dbg_info(struct ath_hw *ah); void ar9003_paprd_enable(struct ath_hw *ah, bool val); void ar9003_paprd_populate_single_table(struct ath_hw *ah, struct ath9k_channel *chan, int chain); int ar9003_paprd_create_curve(struct ath_hw *ah, struct ath9k_channel *chan, int chain); int ar9003_paprd_setup_gain_table(struct ath_hw *ah, int chain); int ar9003_paprd_init_table(struct ath_hw *ah); bool ar9003_paprd_is_done(struct ath_hw *ah); void ar9003_hw_set_paprd_txdesc(struct ath_hw *ah, void *ds, u8 chains); /* Hardware family op attach helpers */ void ar5008_hw_attach_phy_ops(struct ath_hw *ah); Loading Loading
drivers/net/wireless/ath/ath9k/Makefile +2 −1 Original line number Diff line number Diff line Loading @@ -32,7 +32,8 @@ ath9k_hw-y:= \ mac.o \ ar9002_mac.o \ ar9003_mac.o \ ar9003_eeprom.o ar9003_eeprom.o \ ar9003_paprd.o obj-$(CONFIG_ATH9K_HW) += ath9k_hw.o Loading
drivers/net/wireless/ath/ath9k/ar9003_mac.c +8 −0 Original line number Diff line number Diff line Loading @@ -470,6 +470,14 @@ static void ar9003_hw_set11n_virtualmorefrag(struct ath_hw *ah, void *ds, ads->ctl11 &= ~AR_VirtMoreFrag; } void ar9003_hw_set_paprd_txdesc(struct ath_hw *ah, void *ds, u8 chains) { struct ar9003_txc *ads = ds; ads->ctl12 |= SM(chains, AR_PAPRDChainMask); } EXPORT_SYMBOL(ar9003_hw_set_paprd_txdesc); void ar9003_hw_attach_mac_ops(struct ath_hw *hw) { struct ath_hw_ops *ops = ath9k_hw_ops(hw); Loading
drivers/net/wireless/ath/ath9k/ar9003_mac.h +4 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,10 @@ #define AR_Not_Sounding 0x20000000 /* ctl 12 */ #define AR_PAPRDChainMask 0x00000e00 #define AR_PAPRDChainMask_S 9 #define MAP_ISR_S2_CST 6 #define MAP_ISR_S2_GTT 6 #define MAP_ISR_S2_TIM 3 Loading
drivers/net/wireless/ath/ath9k/ar9003_paprd.c 0 → 100644 +714 −0 File added.Preview size limit exceeded, changes collapsed. Show changes
drivers/net/wireless/ath/ath9k/hw.h +18 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,9 @@ #define ATH9K_HW_RX_HP_QDEPTH 16 #define ATH9K_HW_RX_LP_QDEPTH 128 #define PAPRD_GAIN_TABLE_ENTRIES 32 #define PAPRD_TABLE_SZ 24 enum ath_ini_subsys { ATH_INI_PRE = 0, ATH_INI_CORE, Loading Loading @@ -361,6 +364,9 @@ struct ath9k_channel { int8_t iCoff; int8_t qCoff; int16_t rawNoiseFloor; bool paprd_done; u16 small_signal_gain[AR9300_MAX_CHAINS]; u32 pa_table[AR9300_MAX_CHAINS][PAPRD_TABLE_SZ]; }; #define IS_CHAN_G(_c) ((((_c)->channelFlags & (CHANNEL_G)) == CHANNEL_G) || \ Loading Loading @@ -819,6 +825,9 @@ struct ath_hw { u32 bb_watchdog_last_status; u32 bb_watchdog_timeout_ms; /* in ms, 0 to disable */ u32 paprd_gain_table_entries[PAPRD_GAIN_TABLE_ENTRIES]; u8 paprd_gain_table_index[PAPRD_GAIN_TABLE_ENTRIES]; }; static inline struct ath_common *ath9k_hw_common(struct ath_hw *ah) Loading Loading @@ -946,6 +955,15 @@ void ar9003_hw_set_nf_limits(struct ath_hw *ah); void ar9003_hw_bb_watchdog_config(struct ath_hw *ah); void ar9003_hw_bb_watchdog_read(struct ath_hw *ah); void ar9003_hw_bb_watchdog_dbg_info(struct ath_hw *ah); void ar9003_paprd_enable(struct ath_hw *ah, bool val); void ar9003_paprd_populate_single_table(struct ath_hw *ah, struct ath9k_channel *chan, int chain); int ar9003_paprd_create_curve(struct ath_hw *ah, struct ath9k_channel *chan, int chain); int ar9003_paprd_setup_gain_table(struct ath_hw *ah, int chain); int ar9003_paprd_init_table(struct ath_hw *ah); bool ar9003_paprd_is_done(struct ath_hw *ah); void ar9003_hw_set_paprd_txdesc(struct ath_hw *ah, void *ds, u8 chains); /* Hardware family op attach helpers */ void ar5008_hw_attach_phy_ops(struct ath_hw *ah); Loading