b43: remove warning for LP-PHY with sprom < 8
authorHauke Mehrtens <hauke@hauke-m.de>
Thu, 21 Mar 2013 19:28:40 +0000 (20:28 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 25 Mar 2013 20:47:06 +0000 (16:47 -0400)
The BCM5354 SoC has a build in ieee80211 core rev 13 with a LP-PHY on
it. This devices has a sprom version 3 stored in the nvram. This patch
removes the warning and uses the opo values from the sprom as mentioned
in the specs.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/b43/phy_lp.c

index 3ae28561f7a4078f88f9ddc636e2b89c5df42c6a..5ed352ddae9ed274854ed46c3faa5535d305bdff 100644 (file)
@@ -104,14 +104,8 @@ static void lpphy_read_band_sprom(struct b43_wldev *dev)
                maxpwr = sprom->maxpwr_bg;
                lpphy->max_tx_pwr_med_band = maxpwr;
                cckpo = sprom->cck2gpo;
-               /*
-                * We don't read SPROM's opo as specs say. On rev8 SPROMs
-                * opo == ofdm2gpo and we don't know any SSB with LP-PHY
-                * and SPROM rev below 8.
-                */
-               B43_WARN_ON(sprom->revision < 8);
-               ofdmpo = sprom->ofdm2gpo;
                if (cckpo) {
+                       ofdmpo = sprom->ofdm2gpo;
                        for (i = 0; i < 4; i++) {
                                lpphy->tx_max_rate[i] =
                                        maxpwr - (ofdmpo & 0xF) * 2;
@@ -124,11 +118,11 @@ static void lpphy_read_band_sprom(struct b43_wldev *dev)
                                ofdmpo >>= 4;
                        }
                } else {
-                       ofdmpo &= 0xFF;
+                       u8 opo = sprom->opo;
                        for (i = 0; i < 4; i++)
                                lpphy->tx_max_rate[i] = maxpwr;
                        for (i = 4; i < 15; i++)
-                               lpphy->tx_max_rate[i] = maxpwr - ofdmpo;
+                               lpphy->tx_max_rate[i] = maxpwr - opo;
                }
        } else { /* 5GHz */
                lpphy->tx_isolation_low_band = sprom->tri5gl;