diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-07-11 10:48:39 (GMT) |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-07-12 20:05:37 (GMT) |
commit | 601e0cb165e65dc185b31fe7ebd2c0169ea47306 (patch) | |
tree | e587bc1ec2b9b90816c783ad00be1762760aa532 /drivers/net/wireless/ath/ath9k/eeprom_9287.c | |
parent | e796643eaf0889c346e6b69c5afe777c327b1919 (diff) | |
download | linux-601e0cb165e65dc185b31fe7ebd2c0169ea47306.tar.xz |
ath9k_hw: fix antenna diversity on AR9285
On AR9285, the antenna switch configuration register uses more than just
16 bits. Because of an arbitrary mask applied to the EEPROM value that
stores this configuration, diversity was broken in some cases, leading
to a significant degradation in signal strength.
Fix this by changing the callback to return a 32 bit value and remove
the arbitrary mask.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Cc: stable@kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/eeprom_9287.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/eeprom_9287.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/eeprom_9287.c b/drivers/net/wireless/ath/ath9k/eeprom_9287.c index 39a4105..37207df 100644 --- a/drivers/net/wireless/ath/ath9k/eeprom_9287.c +++ b/drivers/net/wireless/ath/ath9k/eeprom_9287.c @@ -1130,13 +1130,13 @@ static u8 ath9k_hw_ar9287_get_num_ant_config(struct ath_hw *ah, return 1; } -static u16 ath9k_hw_ar9287_get_eeprom_antenna_cfg(struct ath_hw *ah, +static u32 ath9k_hw_ar9287_get_eeprom_antenna_cfg(struct ath_hw *ah, struct ath9k_channel *chan) { struct ar9287_eeprom *eep = &ah->eeprom.map9287; struct modal_eep_ar9287_header *pModal = &eep->modalHeader; - return pModal->antCtrlCommon & 0xFFFF; + return pModal->antCtrlCommon; } static u16 ath9k_hw_ar9287_get_spur_channel(struct ath_hw *ah, |