The code in the mac80211 version of radio_init2050 differs from the specs
in two places.

Signed-off-by: Larry Finger <[EMAIL PROTECTED]>
---

Index: wireless-mb/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c
===================================================================
--- wireless-mb.orig/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c
+++ wireless-mb/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c
@@ -3444,9 +3444,9 @@ static u16 radio2050_rfover_val(struct b
                        if (phy_register == BCM43xx_PHY_RFOVER) {
                                return 0x9B3;
                        } else if (phy_register == BCM43xx_PHY_RFOVERVAL) {
-                               extlna |= (i << 8);
                                if (extlna)
                                        extlna |= 0x8000;
+                               extlna |= (i << 8);
                                switch (lpd) {
                                case LPD(0, 1, 1):
                                        return 0x8F92;
@@ -3724,9 +3724,10 @@ u16 bcm43xx_radio_init2050(struct bcm43x
                bcm43xx_phy_stackrestore(stack, BCM43xx_PHY_ANALOGOVERVAL);
                bcm43xx_phy_stackrestore(stack, BCM43xx_PHY_CRS0);
                bcm43xx_phy_stackrestore(stack, BCM43xx_PHY_CLASSCTL);
-               bcm43xx_write16(dev, BCM43xx_MMIO_PHY_RADIO,
-                               bcm43xx_read16(dev, BCM43xx_MMIO_PHY_RADIO)
-                               & 0x7FFF);
+               if (has_loopback_gain(phy)) {
+                       bcm43xx_phy_stackrestore(stack, BCM43xx_PHY_LO_MASK);
+                       bcm43xx_phy_stackrestore(stack, BCM43xx_PHY_LO_CTL);
+               }
        }
        if (i > 15)
                ret = radio78;
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to