aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno Randolf <br1@einfach.org>2010-03-09 02:55:23 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-03-10 16:16:55 -0500
commit8bd8beab49fec3f7d014c328641bd94de3df744b (patch)
tree1b72d0f392347c9653b085683a30400704417fc4
parent8e59340e4fb65cfd748eaa1e23db057c52520f35 (diff)
ath5k: use fixed antenna for tx descriptors
when using a fixed antenna we should use the antenna number in all tx descriptors, otherwise the hardware will sometimes send the frame out on the other antenna. it seems like the hardware does not always respect the default antenna and diversity settings (esp. AR5K_STA_ID1_DEFAULT_ANTENNA). also i would like to note that antenna diversity does not always work correctly on 5414 (at least) when only one antenna is connected: for example all frames might be received on antenna A but still the HW tries to send on antenna B some times, causing packet loss. this is both verified with the antenna statistics output of the previous patch and a spectrum analyzer. Signed-off-by: Bruno Randolf <br1@einfach.org> Acked-by: Nick Kossifidis <mickflemm@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/ath5k/phy.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath5k/phy.c b/drivers/net/wireless/ath/ath5k/phy.c
index 72474c0ccaff..ffe253ab9be7 100644
--- a/drivers/net/wireless/ath/ath5k/phy.c
+++ b/drivers/net/wireless/ath/ath5k/phy.c
@@ -1873,7 +1873,7 @@ ath5k_hw_set_antenna_mode(struct ath5k_hw *ah, u8 ant_mode)
1873 break; 1873 break;
1874 case AR5K_ANTMODE_FIXED_A: 1874 case AR5K_ANTMODE_FIXED_A:
1875 def_ant = 1; 1875 def_ant = 1;
1876 tx_ant = 0; 1876 tx_ant = 1;
1877 use_def_for_tx = true; 1877 use_def_for_tx = true;
1878 update_def_on_tx = false; 1878 update_def_on_tx = false;
1879 use_def_for_rts = true; 1879 use_def_for_rts = true;
@@ -1882,7 +1882,7 @@ ath5k_hw_set_antenna_mode(struct ath5k_hw *ah, u8 ant_mode)
1882 break; 1882 break;
1883 case AR5K_ANTMODE_FIXED_B: 1883 case AR5K_ANTMODE_FIXED_B:
1884 def_ant = 2; 1884 def_ant = 2;
1885 tx_ant = 0; 1885 tx_ant = 2;
1886 use_def_for_tx = true; 1886 use_def_for_tx = true;
1887 update_def_on_tx = false; 1887 update_def_on_tx = false;
1888 use_def_for_rts = true; 1888 use_def_for_rts = true;