diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath5k/phy.c')
-rw-r--r-- | drivers/net/wireless/ath/ath5k/phy.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/net/wireless/ath/ath5k/phy.c b/drivers/net/wireless/ath/ath5k/phy.c index 219367884e64..6b43f535ff53 100644 --- a/drivers/net/wireless/ath/ath5k/phy.c +++ b/drivers/net/wireless/ath/ath5k/phy.c | |||
@@ -1102,18 +1102,12 @@ int ath5k_hw_channel(struct ath5k_hw *ah, struct ieee80211_channel *channel) | |||
1102 | PHY calibration | 1102 | PHY calibration |
1103 | \*****************/ | 1103 | \*****************/ |
1104 | 1104 | ||
1105 | static int sign_extend(int val, const int nbits) | ||
1106 | { | ||
1107 | int order = BIT(nbits-1); | ||
1108 | return (val ^ order) - order; | ||
1109 | } | ||
1110 | |||
1111 | static s32 ath5k_hw_read_measured_noise_floor(struct ath5k_hw *ah) | 1105 | static s32 ath5k_hw_read_measured_noise_floor(struct ath5k_hw *ah) |
1112 | { | 1106 | { |
1113 | s32 val; | 1107 | s32 val; |
1114 | 1108 | ||
1115 | val = ath5k_hw_reg_read(ah, AR5K_PHY_NF); | 1109 | val = ath5k_hw_reg_read(ah, AR5K_PHY_NF); |
1116 | return sign_extend(AR5K_REG_MS(val, AR5K_PHY_NF_MINCCA_PWR), 9); | 1110 | return sign_extend32(AR5K_REG_MS(val, AR5K_PHY_NF_MINCCA_PWR), 8); |
1117 | } | 1111 | } |
1118 | 1112 | ||
1119 | void ath5k_hw_init_nfcal_hist(struct ath5k_hw *ah) | 1113 | void ath5k_hw_init_nfcal_hist(struct ath5k_hw *ah) |