diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2010-12-07 15:55:58 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-12-08 15:38:45 -0500 |
commit | abc1f7cd531f80a8468ab654f1dfd35d58bd2490 (patch) | |
tree | 94fad4d5f8684c48a07daf52a8974629aac2bf88 | |
parent | c7455cf988f06ba578cc6a680392426fce382ca1 (diff) |
b43: set TMS to work with current band width for N-PHY
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/b43/main.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/b43/phy_common.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/b43/phy_common.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/b43/phy_n.c | 7 |
4 files changed, 15 insertions, 7 deletions
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c index fa488036658..670fd7b782e 100644 --- a/drivers/net/wireless/b43/main.c +++ b/drivers/net/wireless/b43/main.c | |||
@@ -1150,6 +1150,12 @@ void b43_wireless_core_reset(struct b43_wldev *dev, u32 flags) | |||
1150 | 1150 | ||
1151 | flags |= B43_TMSLOW_PHYCLKEN; | 1151 | flags |= B43_TMSLOW_PHYCLKEN; |
1152 | flags |= B43_TMSLOW_PHYRESET; | 1152 | flags |= B43_TMSLOW_PHYRESET; |
1153 | if (dev->phy.type == B43_PHYTYPE_N) { | ||
1154 | if (b43_channel_type_is_40mhz(dev->phy.channel_type)) | ||
1155 | flags |= B43_TMSLOW_PHYCLKSPEED_160MHZ; | ||
1156 | else | ||
1157 | flags |= B43_TMSLOW_PHYCLKSPEED_80MHZ; | ||
1158 | } | ||
1153 | ssb_device_enable(dev->dev, flags); | 1159 | ssb_device_enable(dev->dev, flags); |
1154 | msleep(2); /* Wait for the PLL to turn on. */ | 1160 | msleep(2); /* Wait for the PLL to turn on. */ |
1155 | 1161 | ||
diff --git a/drivers/net/wireless/b43/phy_common.c b/drivers/net/wireless/b43/phy_common.c index 0a91fc3a2e0..412f1b64cc8 100644 --- a/drivers/net/wireless/b43/phy_common.c +++ b/drivers/net/wireless/b43/phy_common.c | |||
@@ -429,6 +429,13 @@ void b43_phyop_switch_analog_generic(struct b43_wldev *dev, bool on) | |||
429 | b43_write16(dev, B43_MMIO_PHY0, on ? 0 : 0xF4); | 429 | b43_write16(dev, B43_MMIO_PHY0, on ? 0 : 0xF4); |
430 | } | 430 | } |
431 | 431 | ||
432 | |||
433 | bool b43_channel_type_is_40mhz(enum nl80211_channel_type channel_type) | ||
434 | { | ||
435 | return (channel_type == NL80211_CHAN_HT40MINUS || | ||
436 | channel_type == NL80211_CHAN_HT40PLUS); | ||
437 | } | ||
438 | |||
432 | /* http://bcm-v4.sipsolutions.net/802.11/PHY/Cordic */ | 439 | /* http://bcm-v4.sipsolutions.net/802.11/PHY/Cordic */ |
433 | struct b43_c32 b43_cordic(int theta) | 440 | struct b43_c32 b43_cordic(int theta) |
434 | { | 441 | { |
diff --git a/drivers/net/wireless/b43/phy_common.h b/drivers/net/wireless/b43/phy_common.h index 2ed60e5484b..2401bee8b08 100644 --- a/drivers/net/wireless/b43/phy_common.h +++ b/drivers/net/wireless/b43/phy_common.h | |||
@@ -436,6 +436,8 @@ int b43_phy_shm_tssi_read(struct b43_wldev *dev, u16 shm_offset); | |||
436 | */ | 436 | */ |
437 | void b43_phyop_switch_analog_generic(struct b43_wldev *dev, bool on); | 437 | void b43_phyop_switch_analog_generic(struct b43_wldev *dev, bool on); |
438 | 438 | ||
439 | bool b43_channel_type_is_40mhz(enum nl80211_channel_type channel_type); | ||
440 | |||
439 | struct b43_c32 b43_cordic(int theta); | 441 | struct b43_c32 b43_cordic(int theta); |
440 | 442 | ||
441 | #endif /* LINUX_B43_PHY_COMMON_H_ */ | 443 | #endif /* LINUX_B43_PHY_COMMON_H_ */ |
diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c index d41da7f5584..35173419d13 100644 --- a/drivers/net/wireless/b43/phy_n.c +++ b/drivers/net/wireless/b43/phy_n.c | |||
@@ -88,13 +88,6 @@ static void b43_nphy_rf_control_override(struct b43_wldev *dev, u16 field, | |||
88 | static void b43_nphy_rf_control_intc_override(struct b43_wldev *dev, u8 field, | 88 | static void b43_nphy_rf_control_intc_override(struct b43_wldev *dev, u8 field, |
89 | u16 value, u8 core); | 89 | u16 value, u8 core); |
90 | 90 | ||
91 | static inline bool b43_channel_type_is_40mhz( | ||
92 | enum nl80211_channel_type channel_type) | ||
93 | { | ||
94 | return (channel_type == NL80211_CHAN_HT40MINUS || | ||
95 | channel_type == NL80211_CHAN_HT40PLUS); | ||
96 | } | ||
97 | |||
98 | void b43_nphy_set_rxantenna(struct b43_wldev *dev, int antenna) | 91 | void b43_nphy_set_rxantenna(struct b43_wldev *dev, int antenna) |
99 | {//TODO | 92 | {//TODO |
100 | } | 93 | } |