Search Linux Wireless

[RFC] bcm43xx-mac80211: Hack to turn automatic pctl off

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Michael,

I sent the wrong message under this subject before.

This hack disabled hardware power control. With this installed and the
desired power set to 10 dBm using the previous patch, I get much, much
better performance from bcm43xx-mac80211 on my BCM4311. I have not yet
tested it on the BCM4306 or the BCM4318.

The new iperf readings for transmit/receive with the computer about 2 m
from the AP are as follows:

Bit Rate	xmit/receive (Mbs)

1M		1.11/8.70
2M		1.44/11.0
5.5M		4.15/13.3
6M		4.76/17.4
9M		6.55/18.2
11M		6.54/14.3
18M		10.7/18.5
24M		12.8/19.5
36M		16.1/19.7
48M		18.0/19.5
54M		18.6/19.0

These numbers are comparable with what I'm getting with the PHY port from
softmac. I don't understand the dip in received rate at 11M, but it is real.
On Richard Jonsson's 4311, he isn't able to measure the transfer rate at
11M.

With these settings, the rate adjustment proces bumps the rate to 54M
automatically.

Larry



Index: wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_phy.c
===================================================================
--- wireless-dev.orig/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_phy.c
+++ wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_phy.c
@@ -471,6 +471,7 @@ void bcm43xx_phy_early_init(struct bcm43
 	struct bcm43xx_phy *phy = &dev->phy;
 	struct bcm43xx_txpower_lo_control *lo = phy->lo_control;
 
+	phy->hw_pctl_off = 1;
 	default_baseband_attenuation(dev, &phy->bbatt);
 	default_radio_attenuation(dev, &phy->rfatt);
 	phy->tx_control = (default_tx_control(dev) << 4);
Index: wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_phy.h
===================================================================
--- wireless-dev.orig/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_phy.h
+++ wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_phy.h
@@ -219,8 +219,9 @@ void bcm43xx_gphy_dc_lt_init(struct bcm4
 
 /* Returns the boolean whether the board has HardwarePowerControl */
 #define has_hardware_pctl(phy) \
+	(!((phy)->hw_pctl_off) &&				\
 	(((phy)->type == BCM43xx_PHYTYPE_A && (phy)->rev >= 5) ||	\
-	 ((phy)->type == BCM43xx_PHYTYPE_G && (phy)->rev >= 6))
+	 ((phy)->type == BCM43xx_PHYTYPE_G && (phy)->rev >= 6)))
 /* Returns the boolean whether "TX Magnification" is enabled. */
 #define has_tx_magnification(phy) \
 	(((phy)->rev >= 2) &&			\
Index: wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx.h
===================================================================
--- wireless-dev.orig/drivers/net/wireless/bcm43xx-mac80211/bcm43xx.h
+++ wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx.h
@@ -534,6 +534,7 @@ struct bcm43xx_phy {
 	struct bcm43xx_bbatt bbatt;
 	struct bcm43xx_rfatt rfatt;
 	u8 tx_control; /* BCM43xx_TXCTL_XXX */
+	bool hw_pctl_off;
 #ifdef CONFIG_BCM43XX_MAC80211_DEBUG
 	bool manual_txpower_control; /* Manual TX-power control enabled? */
 #endif

---
-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux