Skip to contentSkip to conversation

b43: LP-PHY: Initialize SW TX power control

RFC In review Gábor Stefanik 2 participants 2 messages Aug 11, 2009 – Aug 12, 2009 Networking drivers (wireless)

lore
Share & tools
lore
#0 lore raw

RFC 1/1 b43: LP-PHY: Initialize SW TX power control

I'm not sure at all if writing to offset 0 in the TX gain table is the right thing to do... please clarify.

---
If this is indeed the right thing to do, please inform me, and I will resubmit this as a formal patch.

phy_lp.c | 16 ++++++++++++----

1 file changed, 12 insertions(+), 4 deletions(-)
drivers/net/wireless/b43/phy_lp.c +0 -0
index 689c932..93451c9 100644
@@ -847,15 +847,23 @@ static void lpphy_calibration(struct b43_wldev *dev)

/* Initialize TX power control */
static void lpphy_tx_pctl_init(struct b43_wldev *dev) {

+	lpphy_tx_gain_table_entry txgain;
	if (0/*FIXME HWPCTL capable */) {
		//TODO
	} else { /* This device is only software TX power control capable. */
+		txgain.bb_mult = 0x96;
		if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) {

- //TODO
+ txgain.gm = 4;
+ txgain.pad = 12;
+ txgain.pga = 12;

+			txgain.dac = 0;
		} else {

- //TODO
- }
- //TODO set BB multiplier to 0x0096
+ txgain.gm = 7;
+ txgain.pad = 15;
+ txgain.pga = 14;
+ txgain.dac = 0;
+ } // FIXME offset 0 is just a guess!

+		lpphy_write_gain_table(dev, 0, txgain);
	}
}
#1 lore raw
Quoted 29 lines · Gábor Stefanik

I'm not sure at all if writing to offset 0 in the TX gain table is the right thing to do... please clarify.

---
If this is indeed the right thing to do, please inform me, and I will resubmit this as a formal patch.

phy_lp.c | 16 ++++++++++++----

1 file changed, 12 insertions(+), 4 deletions(-)
drivers/net/wireless/b43/phy_lp.c +3 -1
index 689c932..93451c9 100644
@@ -847,15 +847,23 @@ static void lpphy_calibration(struct b43_wldev *dev)
 /* Initialize TX power control */
 static void lpphy_tx_pctl_init(struct b43_wldev *dev)
 {
+    lpphy_tx_gain_table_entry txgain;
    if (0/*FIXME HWPCTL capable */) {
        //TODO
    } else { /* This device is only software TX power control capable. */
+        txgain.bb_mult = 0x96;
        if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) {
-            //TODO
+            txgain.gm = 4;

drivers/net/wireless/b43/phy_lp.c static void lpphy_calibration(struct b43_wldev *dev) · line 863

Quoted 10 lines
drivers/net/wireless/b43/phy_lp.c +6 -3
+            txgain.pad = 12;
+            txgain.pga = 12;
+            txgain.dac = 0;
        } else {
-            //TODO
-        }
-        //TODO set BB multiplier to 0x0096
+            txgain.gm = 7;
+            txgain.pad = 15;
+            txgain.pga = 14;

I found a typo in the specs today. The pad should be 14 and pga should be 15.

drivers/net/wireless/b43/phy_lp.c static void lpphy_calibration(struct b43_wldev *dev) · line 866

Quoted 3 lines
drivers/net/wireless/b43/phy_lp.c +3 -0
+            txgain.dac = 0;
+        } // FIXME offset 0 is just a guess!
+        lpphy_write_gain_table(dev, 0, txgain);

The link was wrong in the page. The correct routine is
http://bcm-v4.sipsolutions.net/802.11/PHY/LP/SetTXGain. It has one argument &txgain. I don't think this one has been written yet.

Larry