rpms/kernel/devel kernel-2.6.spec, 1.3087, 1.3088 linux-2.6-bcm43xx-mac80211-phy-rev-1-fix.patch, 1.1, 1.2

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Wed Apr 18 18:43:51 UTC 2007


Author: linville

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv12719

Modified Files:
	kernel-2.6.spec linux-2.6-bcm43xx-mac80211-phy-rev-1-fix.patch 
Log Message:
update bcm43xx phy rev 1 fix


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.3087
retrieving revision 1.3088
diff -u -r1.3087 -r1.3088
--- kernel-2.6.spec	18 Apr 2007 14:50:24 -0000	1.3087
+++ kernel-2.6.spec	18 Apr 2007 18:43:49 -0000	1.3088
@@ -2311,6 +2311,9 @@
 #  - tux.
 
 %changelog
+* Wed Apr 18 2007 John W. Linville <linville at redhat.com> 
+- Update fix for bcm43xx-mac80211 oops on ppc w/ phy rev 1
+
 * Wed Apr 18 2007 Kristian Høgsberg <krh at redhat.com> 
 - Add missing _IOC_WRITE for create iso context ioctl code.
 

linux-2.6-bcm43xx-mac80211-phy-rev-1-fix.patch:
 bcm43xx_main.c |    8 ++-
 bcm43xx_phy.c  |  128 ++++++++++++++++++++++++++++++++-------------------------
 2 files changed, 78 insertions(+), 58 deletions(-)

Index: linux-2.6-bcm43xx-mac80211-phy-rev-1-fix.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6-bcm43xx-mac80211-phy-rev-1-fix.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-bcm43xx-mac80211-phy-rev-1-fix.patch	11 Apr 2007 19:47:58 -0000	1.1
+++ linux-2.6-bcm43xx-mac80211-phy-rev-1-fix.patch	18 Apr 2007 18:43:49 -0000	1.2
@@ -1,6 +1,91 @@
---- linux-2.6.20.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c.orig	2007-04-11 14:52:39.000000000 -0400
-+++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c	2007-04-11 14:53:22.000000000 -0400
-@@ -1362,7 +1362,7 @@ static void bcm43xx_phy_initb6(struct bc
+--- linux-2.6.20.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_main.c.orig	2007-04-18 14:31:55.000000000 -0400
++++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_main.c	2007-04-18 14:36:09.000000000 -0400
+@@ -830,6 +830,7 @@ static void bcm43xx_switch_analog(struct
+ 
+ void bcm43xx_wireless_core_reset(struct bcm43xx_wldev *dev, u32 flags)
+ {
++	struct bcm43xx_phy *phy = &dev->phy;
+ 	u32 tmslow;
+ 	u32 macctl;
+ 
+@@ -853,10 +854,13 @@ void bcm43xx_wireless_core_reset(struct 
+ 	/* Turn Analog ON */
+ 	bcm43xx_switch_analog(dev, 1);
+ 
+-	macctl = bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
++	macctl = bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL) & ~BCM43xx_MACCTL_GMODE;
+ 	macctl |= BCM43xx_MACCTL_IHR_ENABLED;
+-	if (flags & BCM43xx_TMSLOW_GMODE)
++	if (flags & BCM43xx_TMSLOW_GMODE) {
+ 		macctl |= BCM43xx_MACCTL_GMODE;
++		phy->gmode = 1;
++	} else
++		phy->gmode = 0;
+ 	bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL, macctl);
+ }
+ 
+--- linux-2.6.20.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c.orig	2007-04-18 14:35:13.000000000 -0400
++++ linux-2.6.20.noarch/drivers/net/wireless/mac80211/bcm43xx/bcm43xx_phy.c	2007-04-18 14:36:09.000000000 -0400
+@@ -599,16 +599,16 @@ static void bcm43xx_phy_agcsetup(struct 
+ 	bcm43xx_phy_write(dev, 0x04A1,
+ 			  (bcm43xx_phy_read(dev, 0x04A1)
+ 			   & 0xF0FF) | 0x0600);
+-	bcm43xx_phy_write(dev, 0x04A2,
+-			  (bcm43xx_phy_read(dev, 0x04A2)
++	bcm43xx_phy_write(dev, 0x0412,
++			  (bcm43xx_phy_read(dev, 0x0412)
+ 			   & 0xF0FF) | 0x0700);
+-	bcm43xx_phy_write(dev, 0x04A0,
+-			  (bcm43xx_phy_read(dev, 0x04A0)
++	bcm43xx_phy_write(dev, 0x0410,
++			  (bcm43xx_phy_read(dev, 0x0410)
+ 			   & 0xF0FF) | 0x0100);
+ 
+ 	if (phy->rev == 1) {
+-		bcm43xx_phy_write(dev, 0x04A2,
+-				  (bcm43xx_phy_read(dev, 0x04A2)
++		bcm43xx_phy_write(dev, 0x0412,
++				  (bcm43xx_phy_read(dev, 0x0412)
+ 				   & 0xFFF0) | 0x0007);
+ 	}
+ 
+@@ -655,7 +655,7 @@ static void bcm43xx_phy_agcsetup(struct 
+ 				   & 0xFFF0) | 0x0004);
+ 	}
+ 
+-	if (phy->rev < 6) {
++	if (phy->rev >= 6) {
+ 		bcm43xx_phy_write(dev, 0x0422, 0x287A);
+ 		bcm43xx_phy_write(dev, 0x0420,
+ 				  (bcm43xx_phy_read(dev, 0x0420)
+@@ -664,7 +664,7 @@ static void bcm43xx_phy_agcsetup(struct 
+ 
+ 	bcm43xx_phy_write(dev, 0x04A8,
+ 			  (bcm43xx_phy_read(dev, 0x04A8)
+-			   & 0x8080) | 0x7874);
++			   & 0x7F7F) | 0x7874);
+ 	bcm43xx_phy_write(dev, 0x048E, 0x1C00);
+ 
+ 	offset = 0x0800;
+@@ -955,7 +955,7 @@ static void bcm43xx_phy_inita(struct bcm
+ 		bcm43xx_phy_setupa(dev);
+ 	} else {
+ 		bcm43xx_phy_setupg(dev);
+-		if (dev->dev->bus->sprom.r1.boardflags_lo & BCM43xx_BFL_PACTRL)
++		if (phy->gmode && dev->dev->bus->sprom.r1.boardflags_lo & BCM43xx_BFL_PACTRL)
+ 			bcm43xx_phy_write(dev, 0x046E, 0x03CF);
+ 		return;
+ 	}
+@@ -1139,7 +1139,7 @@ static void bcm43xx_phy_initb5(struct bc
+ 	if (phy->radio_ver == 0x2050)
+ 		bcm43xx_phy_write(dev, 0x0038, 0x0667);
+ 
+-	if (phy->type == BCM43xx_PHYTYPE_G) {
++	if (phy->gmode || phy->rev >= 2) {
+ 		if (phy->radio_ver == 0x2050) {
+ 			bcm43xx_radio_write16(dev, 0x007A,
+ 					      bcm43xx_radio_read16(dev, 0x007A)
+@@ -1361,7 +1361,7 @@ static void bcm43xx_phy_initb6(struct bc
  static void bcm43xx_calc_loopback_gain(struct bcm43xx_wldev *dev)
  {
  	struct bcm43xx_phy *phy = &dev->phy;
@@ -9,7 +94,7 @@
  	u16 backup_radio[3];
  	u16 backup_bband;
  	u16 i, j, loop_i_max;
-@@ -1373,8 +1373,10 @@ static void bcm43xx_calc_loopback_gain(s
+@@ -1372,8 +1372,10 @@ static void bcm43xx_calc_loopback_gain(s
  	backup_phy[1] = bcm43xx_phy_read(dev, BCM43xx_PHY_CCKBBANDCFG);
  	backup_phy[2] = bcm43xx_phy_read(dev, BCM43xx_PHY_RFOVER);
  	backup_phy[3] = bcm43xx_phy_read(dev, BCM43xx_PHY_RFOVERVAL);
@@ -22,7 +107,7 @@
  	backup_phy[6] = bcm43xx_phy_read(dev, BCM43xx_PHY_BASE(0x5A));
  	backup_phy[7] = bcm43xx_phy_read(dev, BCM43xx_PHY_BASE(0x59));
  	backup_phy[8] = bcm43xx_phy_read(dev, BCM43xx_PHY_BASE(0x58));
-@@ -1402,14 +1404,16 @@ static void bcm43xx_calc_loopback_gain(s
+@@ -1401,14 +1403,16 @@ static void bcm43xx_calc_loopback_gain(s
  			  bcm43xx_phy_read(dev, BCM43xx_PHY_RFOVER) | 0x0001);
  	bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVERVAL,
  			  bcm43xx_phy_read(dev, BCM43xx_PHY_RFOVERVAL) & 0xFFFE);
@@ -47,7 +132,7 @@
  	bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVER,
  			  bcm43xx_phy_read(dev, BCM43xx_PHY_RFOVER) | 0x000C);
  	bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVER,
-@@ -1426,10 +1430,12 @@ static void bcm43xx_calc_loopback_gain(s
+@@ -1425,10 +1429,12 @@ static void bcm43xx_calc_loopback_gain(s
  
  	bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x0A),
  			  bcm43xx_phy_read(dev, BCM43xx_PHY_BASE(0x0A)) | 0x2000);
@@ -64,7 +149,7 @@
  	bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x03),
  			  (bcm43xx_phy_read(dev, BCM43xx_PHY_BASE(0x03))
  			   & 0xFF9F) | 0x40);
-@@ -1522,8 +1528,10 @@ exit_loop1:
+@@ -1521,8 +1527,10 @@ exit_loop1:
  		trsw_rx = 0x18;
  exit_loop2:
  
@@ -77,32 +162,211 @@
  	bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x5A), backup_phy[6]);
  	bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x59), backup_phy[7]);
  	bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x58), backup_phy[8]);
-@@ -1576,7 +1584,7 @@ static void bcm43xx_phy_initg(struct bcm
+@@ -1560,7 +1568,7 @@ static void bcm43xx_phy_initg(struct bcm
+ 	else
+ 		bcm43xx_phy_initb6(dev);
+ 
+-	if (has_loopback_gain(phy))
++	if (phy->rev >= 2 || phy->gmode)
+ 		bcm43xx_phy_inita(dev);
+ 
+ 	if (phy->rev >= 2) {
+@@ -1575,7 +1583,7 @@ static void bcm43xx_phy_initg(struct bcm
  		bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVER, 0x400);
  		bcm43xx_phy_write(dev, BCM43xx_PHY_PGACTL, 0xC0);
  	}
 -	if (phy->gmode) {
-+	if (phy->gmode && phy->rev >= 2) {
++	if (phy->gmode || phy->rev >= 2) {
  		tmp = bcm43xx_phy_read(dev, BCM43xx_PHY_VERSION_OFDM);
  		tmp &= BCM43xx_PHYVER_VERSION;
  		if (tmp == 3 || tmp == 5) {
-@@ -1635,7 +1643,7 @@ static void bcm43xx_phy_initg(struct bcm
+@@ -1588,7 +1596,7 @@ static void bcm43xx_phy_initg(struct bcm
+ 					   & 0x00FF) | 0x1F00);
+ 		}
+ 	}
+-	if (phy->rev <= 2 && phy->gmode)
++	if ((phy->rev == 1 && phy->gmode) || phy->rev >= 2)
+ 		bcm43xx_phy_write(dev, BCM43xx_PHY_OFDM(0x7E), 0x78);
+ 	if (phy->radio_rev == 8) {
+ 		bcm43xx_phy_write(dev, BCM43xx_PHY_EXTG(0x01),
+@@ -1634,7 +1642,7 @@ static void bcm43xx_phy_initg(struct bcm
  		else
  			bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x2F), 0x202);
  	}
 -	if (phy->gmode) {
-+	if (phy->gmode && phy->rev != 1) {
++	if (phy->gmode || phy->rev >= 2) {
  		bcm43xx_lo_adjust(dev);
  		bcm43xx_phy_write(dev, BCM43xx_PHY_LO_MASK, 0x8078);
  	}
-@@ -1649,8 +1657,8 @@ static void bcm43xx_phy_initg(struct bcm
- 		 */
- 		bcm43xx_nrssi_hw_update(dev, 0xFFFF);//FIXME?
+@@ -2428,8 +2436,10 @@ static void bcm43xx_calc_nrssi_offset(st
+ 	backup[0] = bcm43xx_phy_read(dev, 0x0001);
+ 	backup[1] = bcm43xx_phy_read(dev, 0x0811);
+ 	backup[2] = bcm43xx_phy_read(dev, 0x0812);
+-	backup[3] = bcm43xx_phy_read(dev, 0x0814);
+-	backup[4] = bcm43xx_phy_read(dev, 0x0815);
++	if (phy->rev != 1) {
++		backup[3] = bcm43xx_phy_read(dev, 0x0814);
++		backup[4] = bcm43xx_phy_read(dev, 0x0815);
++	}
+ 	backup[5] = bcm43xx_phy_read(dev, 0x005A);
+ 	backup[6] = bcm43xx_phy_read(dev, 0x0059);
+ 	backup[7] = bcm43xx_phy_read(dev, 0x0058);
+@@ -2495,10 +2505,12 @@ static void bcm43xx_calc_nrssi_offset(st
+ 	} else {
+ 		bcm43xx_radio_write16(dev, 0x007A,
+ 				      bcm43xx_radio_read16(dev, 0x007A) & 0x007F);
+-		bcm43xx_phy_write(dev, 0x0814,
+-				  bcm43xx_phy_read(dev, 0x0814) | 0x0001);
+-		bcm43xx_phy_write(dev, 0x0815,
+-				  bcm43xx_phy_read(dev, 0x0815) & 0xFFFE);
++		if (phy->rev != 1) {
++			bcm43xx_phy_write(dev, 0x0814,
++					  bcm43xx_phy_read(dev, 0x0814) | 0x0001);
++			bcm43xx_phy_write(dev, 0x0815,
++					  bcm43xx_phy_read(dev, 0x0815) & 0xFFFE);
++		}
+ 		bcm43xx_phy_write(dev, 0x0811,
+ 				  bcm43xx_phy_read(dev, 0x0811) | 0x000C);
+ 		bcm43xx_phy_write(dev, 0x0812,
+@@ -2517,10 +2529,12 @@ static void bcm43xx_calc_nrssi_offset(st
+ 					  bcm43xx_phy_read(dev, 0x000A)
+ 					  | 0x2000);
+ 		}
+-		bcm43xx_phy_write(dev, 0x0814,
+-				  bcm43xx_phy_read(dev, 0x0814) | 0x0004);
+-		bcm43xx_phy_write(dev, 0x0815,
+-				  bcm43xx_phy_read(dev, 0x0815) & 0xFFFB);
++		if (phy->rev != 1) {
++			bcm43xx_phy_write(dev, 0x0814,
++					  bcm43xx_phy_read(dev, 0x0814) | 0x0004);
++			bcm43xx_phy_write(dev, 0x0815,
++					  bcm43xx_phy_read(dev, 0x0815) & 0xFFFB);
++		}
+ 		bcm43xx_phy_write(dev, 0x0003,
+ 				  (bcm43xx_phy_read(dev, 0x0003) & 0xFF9F)
+ 				  | 0x0040);
+@@ -2557,8 +2571,10 @@ static void bcm43xx_calc_nrssi_offset(st
+ 		bcm43xx_phy_write(dev, 0x080F, backup[14]);
+ 		bcm43xx_phy_write(dev, 0x0810, backup[15]);
+ 	}
+-	bcm43xx_phy_write(dev, 0x0814, backup[3]);
+-	bcm43xx_phy_write(dev, 0x0815, backup[4]);
++	if (phy->rev != 1) {
++		bcm43xx_phy_write(dev, 0x0814, backup[3]);
++		bcm43xx_phy_write(dev, 0x0815, backup[4]);
++	}
+ 	bcm43xx_phy_write(dev, 0x005A, backup[5]);
+ 	bcm43xx_phy_write(dev, 0x0059, backup[6]);
+ 	bcm43xx_phy_write(dev, 0x0058, backup[7]);
+@@ -3239,7 +3255,7 @@ bcm43xx_radio_interference_mitigation_di
+ 			                  bcm43xx_phy_read(dev, BCM43xx_PHY_G_CRS) | 0x4000);
+ 			break;
+ 		}
+-		phy_stackrestore(0x0078);
++		radio_stackrestore(0x0078);
  		bcm43xx_calc_nrssi_threshold(dev);
--	} else {
--		if (phy->gmode && phy->nrssi[0] == -1000) {
-+	} else if (phy->gmode && phy->rev != 1) {
-+		if (phy->nrssi[0] == -1000) {
- 			assert(phy->nrssi[1] == -1000);
- 			bcm43xx_calc_nrssi_slope(dev);
- 		} else
+ 		phy_stackrestore(0x0406);
+ 		bcm43xx_phy_write(dev, 0x042B,
+@@ -3299,7 +3315,7 @@ bcm43xx_radio_interference_mitigation_di
+ 			ofdmtab_stackrestore(0x1A00, 0x3);
+ 		}
+ 		phy_stackrestore(0x04A2);
+-		phy_stackrestore(0x04A8);
++		phy_stackrestore(0x048A);
+ 		phy_stackrestore(0x042B);
+ 		phy_stackrestore(0x048C);
+ 		bcm43xx_hf_write(dev, bcm43xx_hf_read(dev) & ~BCM43xx_HF_ACIW);
+@@ -3553,7 +3569,7 @@ u16 bcm43xx_radio_init2050(struct bcm43x
+ 
+ 		bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x30), 0xFF);
+ 		bcm43xx_write16(dev, 0x3EC, 0x3F3F);
+-	} else if (phy->gmode) {
++	} else if (phy->gmode || phy->rev >= 2) {
+ 		sav.phy_rfover = bcm43xx_phy_read(dev, BCM43xx_PHY_RFOVER);
+ 		sav.phy_rfoverval = bcm43xx_phy_read(dev, BCM43xx_PHY_RFOVERVAL);
+ 		sav.phy_analogover = bcm43xx_phy_read(dev, BCM43xx_PHY_ANALOGOVER);
+@@ -3615,14 +3631,14 @@ u16 bcm43xx_radio_init2050(struct bcm43x
+ 
+ 	if (phy->type == BCM43xx_PHYTYPE_B)
+ 		bcm43xx_radio_write16(dev, 0x78, 0x26);
+-	if (phy->gmode) {
++	if (phy->gmode || phy->rev >= 2) {
+ 		bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVERVAL,
+ 				  radio2050_rfover_val(dev, BCM43xx_PHY_RFOVERVAL,
+ 						       LPD(0, 1, 1)));
+ 	}
+ 	bcm43xx_phy_write(dev, BCM43xx_PHY_PGACTL, 0xBFAF);
+ 	bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x2B), 0x1403);
+-	if (phy->gmode) {
++	if (phy->gmode || phy->rev >= 2) {
+ 		bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVERVAL,
+ 				  radio2050_rfover_val(dev, BCM43xx_PHY_RFOVERVAL,
+ 						       LPD(0, 0, 1)));
+@@ -3645,21 +3661,21 @@ u16 bcm43xx_radio_init2050(struct bcm43x
+ 		bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x5A), 0x0480);
+ 		bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x59), 0xC810);
+ 		bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x58), 0x000D);
+-		if (phy->gmode) {
++		if (phy->gmode || phy->rev >= 2) {
+ 			bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVERVAL,
+ 					  radio2050_rfover_val(dev, BCM43xx_PHY_RFOVERVAL,
+ 							       LPD(1, 0, 1)));
+ 		}
+ 		bcm43xx_phy_write(dev, BCM43xx_PHY_PGACTL, 0xAFB0);
+ 		udelay(10);
+-		if (phy->gmode) {
++		if (phy->gmode || phy->rev >= 2) {
+ 			bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVERVAL,
+ 					  radio2050_rfover_val(dev, BCM43xx_PHY_RFOVERVAL,
+ 							       LPD(1, 0, 1)));
+ 		}
+ 		bcm43xx_phy_write(dev, BCM43xx_PHY_PGACTL, 0xEFB0);
+ 		udelay(10);
+-		if (phy->gmode) {
++		if (phy->gmode || phy->rev >= 2) {
+ 			bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVERVAL,
+ 					  radio2050_rfover_val(dev, BCM43xx_PHY_RFOVERVAL,
+ 							       LPD(1, 0, 0)));
+@@ -3668,7 +3684,7 @@ u16 bcm43xx_radio_init2050(struct bcm43x
+ 		udelay(20);
+ 		tmp1 += bcm43xx_phy_read(dev, BCM43xx_PHY_LO_LEAKAGE);
+ 		bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x58), 0);
+-		if (phy->gmode) {
++		if (phy->gmode || phy->rev >= 2) {
+ 			bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVERVAL,
+ 					  radio2050_rfover_val(dev, BCM43xx_PHY_RFOVERVAL,
+ 							       LPD(1, 0, 1)));
+@@ -3689,21 +3705,21 @@ u16 bcm43xx_radio_init2050(struct bcm43x
+ 			bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x5A), 0x0D80);
+ 			bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x59), 0xC810);
+ 			bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x58), 0x000D);
+-			if (phy->gmode) {
++			if (phy->gmode || phy->rev >= 2) {
+ 				bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVERVAL,
+ 						  radio2050_rfover_val(dev, BCM43xx_PHY_RFOVERVAL,
+ 								       LPD(1, 0, 1)));
+ 			}
+ 			bcm43xx_phy_write(dev, BCM43xx_PHY_PGACTL, 0xAFB0);
+ 			udelay(10);
+-			if (phy->gmode) {
++			if (phy->gmode || phy->rev >= 2) {
+ 				bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVERVAL,
+ 						  radio2050_rfover_val(dev, BCM43xx_PHY_RFOVERVAL,
+ 								       LPD(1, 0, 1)));
+ 			}
+ 			bcm43xx_phy_write(dev, BCM43xx_PHY_PGACTL, 0xEFB0);
+ 			udelay(10);
+-			if (phy->gmode) {
++			if (phy->gmode || phy->rev >= 2) {
+ 				bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVERVAL,
+ 						  radio2050_rfover_val(dev, BCM43xx_PHY_RFOVERVAL,
+ 								       LPD(1, 0, 0)));
+@@ -3712,7 +3728,7 @@ u16 bcm43xx_radio_init2050(struct bcm43x
+ 			udelay(10);
+ 			tmp2 += bcm43xx_phy_read(dev, BCM43xx_PHY_LO_LEAKAGE);
+ 			bcm43xx_phy_write(dev, BCM43xx_PHY_BASE(0x58), 0);
+-			if (phy->gmode) {
++			if (phy->gmode || phy->rev >= 2) {
+ 				bcm43xx_phy_write(dev, BCM43xx_PHY_RFOVERVAL,
+ 						  radio2050_rfover_val(dev, BCM43xx_PHY_RFOVERVAL,
+ 								       LPD(1, 0, 1)));




More information about the fedora-cvs-commits mailing list