b43: LP-PHY: Update B2062 radio init with recent spec changes
[pandora-kernel.git] / drivers / net / wireless / b43 / phy_lp.c
index 4d14102..faca56f 100644 (file)
@@ -537,10 +537,15 @@ static void lpphy_2062_init(struct b43_wldev *dev)
        b43_radio_write(dev, B2062_N_TX_CTL3, 0);
        b43_radio_write(dev, B2062_N_TX_CTL4, 0);
        b43_radio_write(dev, B2062_N_TX_CTL5, 0);
+       b43_radio_write(dev, B2062_N_TX_CTL6, 0);
        b43_radio_write(dev, B2062_N_PDN_CTL0, 0x40);
        b43_radio_write(dev, B2062_N_PDN_CTL0, 0);
        b43_radio_write(dev, B2062_N_CALIB_TS, 0x10);
        b43_radio_write(dev, B2062_N_CALIB_TS, 0);
+       if (dev->phy.rev > 0) {
+               b43_radio_write(dev, B2062_S_BG_CTL1,
+                       (b43_radio_read(dev, B2062_N_COMM2) >> 1) | 0x80);
+       }
        if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ)
                b43_radio_set(dev, B2062_N_TSSI_CTL0, 0x1);
        else
@@ -1950,7 +1955,7 @@ static int lpphy_b2062_tune(struct b43_wldev *dev,
        b43_radio_write(dev, B2062_S_RFPLL_CTL29, tmp6 + ((2 * tmp7) / tmp4));
        tmp8 = b43_phy_read(dev, B2062_S_RFPLL_CTL19);
        tmp9 = ((2 * tmp3 * (tmp8 + 1)) + (3 * tmp1)) / (6 * tmp1);
-       b43_radio_write(dev, B2062_S_RFPLL_CTL23, tmp9 >> 8);
+       b43_radio_write(dev, B2062_S_RFPLL_CTL23, (tmp9 >> 8) + 16);
        b43_radio_write(dev, B2062_S_RFPLL_CTL24, tmp9 & 0xFF);
 
        lpphy_b2062_vco_calib(dev);