Thread (1 message) 1 message, 1 author, 2006-02-01

Re: Re: [GIT PULL] bcm43xx: Update B6PHY initialization

From: Michael Buesch <hidden>
Date: 2006-02-01 13:55:34

On Wednesday 01 February 2006 10:51, Danny van Dyk wrote:
John, please

git pull rsync://pitr.amd64.dev.gentoo.org/kugelfang/wireless-2.6.git

which will provide this changeset:

Danny van Dyk:
      [bcm43xx] Sync bcm43xx_phy_initb6() with specs
Danny, _please_ make sure to apply patches to the softmac _and_ the dscape
branch. Otherwise patches will get lost.
It is very important to keep both branches in sync.

I know that this is annoying work, but we must stick with it, until
we have a usable 80211 stack in the kernel.
I also know that 99% of the people are not interrested in the dscape
branch, but it is important to keep it working. The only way to find
weaknesses in d80211 is to maintain drivers which use it.

Besides that, you can also request a pull from me. The git snapshots
are generated from my tree, so this is the fastest way to get your
changes into the snapshots. But that's entirely your decision.
quoted hunk
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_phy.c 
b/drivers/net/wireless/bcm43xx/bcm43xx_phy.c
index f5e7a6a..d90f207 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_phy.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_phy.c
@@ -947,7 +947,7 @@ static void bcm43xx_phy_initb6(struct bc
 	bcm43xx_radio_write16(bcm, 0x0050, 0x0020);
 	if ((bcm->current_core->radio->manufact == 0x17F) &&
 	    (bcm->current_core->radio->version == 0x2050) &&
-	    (bcm->current_core->radio->revision == 2)) {
+	    (bcm->current_core->radio->revision <= 2)) {
 		bcm43xx_radio_write16(bcm, 0x0050, 0x0020);
 		bcm43xx_radio_write16(bcm, 0x005A, 0x0070);
 		bcm43xx_radio_write16(bcm, 0x005B, 0x007B);
@@ -984,10 +984,15 @@ static void bcm43xx_phy_initb6(struct bc
 		bcm43xx_write16(bcm, 0x03E4, 0x0009);
 	if (phy->type == BCM43xx_PHYTYPE_B) {
 		bcm43xx_write16(bcm, 0x03E6, 0x8140);
-		bcm43xx_phy_write(bcm, 0x0016, 0x5410);
-		bcm43xx_phy_write(bcm, 0x0017, 0xA820);
-		bcm43xx_phy_write(bcm, 0x0007, 0x0062);
-		TODO();//TODO: calibrate stuff.
+		bcm43xx_phy_write(bcm, 0x0016, 0x0410);
+		bcm43xx_phy_write(bcm, 0x0017, 0x0820);
+		bcm43xx_phy_write(bcm, 0x0062, 0x0007);
+		(void) bcm43xx_radio_calibrationvalue(bcm);
+		bcm43xx_phy_lo_b_measure(bcm);
+		if (bcm->sprom.boardflags & BCM43xx_BFL_RSSI) {
+			bcm43xx_calc_nrssi_slope(bcm);
+			bcm43xx_calc_nrssi_threshold(bcm);
+		}
 		bcm43xx_phy_init_pctl(bcm);
 	} else
 		bcm43xx_write16(bcm, 0x03E6, 0x0);
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_radio.c 
b/drivers/net/wireless/bcm43xx/bcm43xx_radio.c
index 5ce6ace..3901aa9 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_radio.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_radio.c
@@ -1184,7 +1184,7 @@ int bcm43xx_radio_set_interference_mitig
 	return 0;
 }
 
-static u16 bcm43xx_radio_calibrationvalue(struct bcm43xx_private *bcm)
+u16 bcm43xx_radio_calibrationvalue(struct bcm43xx_private *bcm)
 {
 	u16 reg, index, ret;
 
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_radio.h 
b/drivers/net/wireless/bcm43xx/bcm43xx_radio.h
index 89fe292..a5d2e10 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_radio.h
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_radio.h
@@ -89,5 +89,6 @@ void bcm43xx_nrssi_hw_update(struct bcm4
 void bcm43xx_nrssi_mem_update(struct bcm43xx_private *bcm);
 
 void bcm43xx_radio_set_tx_iq(struct bcm43xx_private *bcm);
+u16 bcm43xx_radio_calibrationvalue(struct bcm43xx_private *bcm);
 
 #endif /* BCM43xx_RADIO_H_ */
-- 
Danny van Dyk <kugelfang-aBrp7R+bbdUdnm+yROfE0A@public.gmane.org>
Gentoo/AMD64 Project, Gentoo Scientific Project
-- 
Greetings Michael.

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help