bitops: Provide generic sign_extend32 function
This patch moves code out from wireless drivers where two different functions are defined in three code locations for the same purpose and provides a common function to sign extend a 32-bit value. Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
e4b3fdb800
commit
7919a57bc6
@@ -1102,18 +1102,12 @@ int ath5k_hw_channel(struct ath5k_hw *ah, struct ieee80211_channel *channel)
|
||||
PHY calibration
|
||||
\*****************/
|
||||
|
||||
static int sign_extend(int val, const int nbits)
|
||||
{
|
||||
int order = BIT(nbits-1);
|
||||
return (val ^ order) - order;
|
||||
}
|
||||
|
||||
static s32 ath5k_hw_read_measured_noise_floor(struct ath5k_hw *ah)
|
||||
{
|
||||
s32 val;
|
||||
|
||||
val = ath5k_hw_reg_read(ah, AR5K_PHY_NF);
|
||||
return sign_extend(AR5K_REG_MS(val, AR5K_PHY_NF_MINCCA_PWR), 9);
|
||||
return sign_extend32(AR5K_REG_MS(val, AR5K_PHY_NF_MINCCA_PWR), 8);
|
||||
}
|
||||
|
||||
void ath5k_hw_init_nfcal_hist(struct ath5k_hw *ah)
|
||||
|
Reference in New Issue
Block a user