diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2010-01-17 07:03:40 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-01-19 16:36:04 -0500 |
commit | ad9716e8e8bc39664a0d41ec94f9bffbf748b45b (patch) | |
tree | 792db32d214798502cbfe207a050667bfd676c61 /drivers/net/wireless | |
parent | e53de67449bbcaf5551f54e506a4dff62fc6a49c (diff) |
b43: N-PHY: implement MIMO config update
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/b43/phy_n.c | 16 | ||||
-rw-r--r-- | drivers/net/wireless/b43/phy_n.h | 1 |
2 files changed, 16 insertions, 1 deletions
diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c index fd93b2a6b494..1996843eac11 100644 --- a/drivers/net/wireless/b43/phy_n.c +++ b/drivers/net/wireless/b43/phy_n.c | |||
@@ -424,6 +424,20 @@ static void b43_nphy_reset_cca(struct b43_wldev *dev) | |||
424 | /* TODO: N PHY Force RF Seq with argument 2 */ | 424 | /* TODO: N PHY Force RF Seq with argument 2 */ |
425 | } | 425 | } |
426 | 426 | ||
427 | /* http://bcm-v4.sipsolutions.net/802.11/PHY/N/MIMOConfig */ | ||
428 | static void b43_nphy_update_mimo_config(struct b43_wldev *dev, s32 preamble) | ||
429 | { | ||
430 | u16 mimocfg = b43_phy_read(dev, B43_NPHY_MIMOCFG); | ||
431 | |||
432 | mimocfg |= B43_NPHY_MIMOCFG_AUTO; | ||
433 | if (preamble == 1) | ||
434 | mimocfg |= B43_NPHY_MIMOCFG_GFMIX; | ||
435 | else | ||
436 | mimocfg &= ~B43_NPHY_MIMOCFG_GFMIX; | ||
437 | |||
438 | b43_phy_write(dev, B43_NPHY_MIMOCFG, mimocfg); | ||
439 | } | ||
440 | |||
427 | /* http://bcm-v4.sipsolutions.net/802.11/PHY/N/RxIqEst */ | 441 | /* http://bcm-v4.sipsolutions.net/802.11/PHY/N/RxIqEst */ |
428 | static void b43_nphy_rx_iq_est(struct b43_wldev *dev, struct nphy_iq_est *est, | 442 | static void b43_nphy_rx_iq_est(struct b43_wldev *dev, struct nphy_iq_est *est, |
429 | u16 samps, u8 time, bool wait) | 443 | u16 samps, u8 time, bool wait) |
@@ -2180,7 +2194,7 @@ int b43_phy_initn(struct b43_wldev *dev) | |||
2180 | b43_phy_write(dev, B43_NPHY_PLOAD_CSENSE_EXTLEN, 0x50); | 2194 | b43_phy_write(dev, B43_NPHY_PLOAD_CSENSE_EXTLEN, 0x50); |
2181 | b43_phy_write(dev, B43_NPHY_TXRIFS_FRDEL, 0x30); | 2195 | b43_phy_write(dev, B43_NPHY_TXRIFS_FRDEL, 0x30); |
2182 | 2196 | ||
2183 | /* TODO MIMO-Config */ | 2197 | b43_nphy_update_mimo_config(dev, nphy->preamble_override); |
2184 | /* TODO Update TX/RX chain */ | 2198 | /* TODO Update TX/RX chain */ |
2185 | 2199 | ||
2186 | if (phy->rev < 2) { | 2200 | if (phy->rev < 2) { |
diff --git a/drivers/net/wireless/b43/phy_n.h b/drivers/net/wireless/b43/phy_n.h index 4572866756fc..ae00e3f2d613 100644 --- a/drivers/net/wireless/b43/phy_n.h +++ b/drivers/net/wireless/b43/phy_n.h | |||
@@ -973,6 +973,7 @@ struct b43_phy_n { | |||
973 | bool hang_avoid; | 973 | bool hang_avoid; |
974 | bool mute; | 974 | bool mute; |
975 | u16 papd_epsilon_offset[2]; | 975 | u16 papd_epsilon_offset[2]; |
976 | s32 preamble_override; | ||
976 | 977 | ||
977 | u8 mphase_cal_phase_id; | 978 | u8 mphase_cal_phase_id; |
978 | u16 mphase_txcal_cmdidx; | 979 | u16 mphase_txcal_cmdidx; |