aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/b43/phy_n.c
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2014-07-08 09:11:08 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-07-15 15:51:39 -0400
commit162bee1a3e5714abd9a429d85c64830bacaca682 (patch)
treeec5fa8f9a154ff3f54723b7cf1896d99d5025636 /drivers/net/wireless/b43/phy_n.c
parent40c68f20e63c9cd589ebfcf672ef912452967caf (diff)
b43: N-PHY: init and channel switching of radio 0x2057 rev 9
Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/b43/phy_n.c')
-rw-r--r--drivers/net/wireless/b43/phy_n.c47
1 files changed, 46 insertions, 1 deletions
diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c
index 44349f5b99c6..479cda88ca5e 100644
--- a/drivers/net/wireless/b43/phy_n.c
+++ b/drivers/net/wireless/b43/phy_n.c
@@ -746,10 +746,55 @@ static void b43_radio_2057_setup(struct b43_wldev *dev,
746 b43_radio_write(dev, R2057_RFPLL_LOOPFILTER_C2, 0x8); 746 b43_radio_write(dev, R2057_RFPLL_LOOPFILTER_C2, 0x8);
747 } 747 }
748 break; 748 break;
749 case 9: /* e.g. PHY rev 16 */
750 b43_radio_write(dev, R2057_LOGEN_PTAT_RESETS, 0x20);
751 b43_radio_write(dev, R2057_VCOBUF_IDACS, 0x18);
752 if (b43_current_band(dev->wl) == IEEE80211_BAND_5GHZ) {
753 b43_radio_write(dev, R2057_LOGEN_PTAT_RESETS, 0x38);
754 b43_radio_write(dev, R2057_VCOBUF_IDACS, 0x0f);
755
756 if (b43_is_40mhz(dev)) {
757 /* TODO */
758 } else {
759 b43_radio_write(dev,
760 R2057_PAD_BIAS_FILTER_BWS_CORE0,
761 0x3c);
762 b43_radio_write(dev,
763 R2057_PAD_BIAS_FILTER_BWS_CORE1,
764 0x3c);
765 }
766 }
767 break;
749 /* TODO */ 768 /* TODO */
750 } 769 }
751 770
752 /* TODO */ 771 if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) {
772 u16 txmix2g_tune_boost_pu = 0;
773 u16 pad2g_tune_pus = 0;
774
775 if (b43_nphy_ipa(dev)) {
776 switch (phy->radio_rev) {
777 case 9:
778 txmix2g_tune_boost_pu = 0x0041;
779 /* TODO */
780 break;
781 }
782 /* TODO */
783 }
784
785 if (txmix2g_tune_boost_pu)
786 b43_radio_write(dev, R2057_TXMIX2G_TUNE_BOOST_PU_CORE0,
787 txmix2g_tune_boost_pu);
788 if (pad2g_tune_pus)
789 b43_radio_write(dev, R2057_PAD2G_TUNE_PUS_CORE0,
790 pad2g_tune_pus);
791 if (txmix2g_tune_boost_pu)
792 b43_radio_write(dev, R2057_TXMIX2G_TUNE_BOOST_PU_CORE1,
793 txmix2g_tune_boost_pu);
794 if (pad2g_tune_pus)
795 b43_radio_write(dev, R2057_PAD2G_TUNE_PUS_CORE1,
796 pad2g_tune_pus);
797 }
753 798
754 usleep_range(50, 100); 799 usleep_range(50, 100);
755 800