diff -uNr compat-wireless-2009-09-14/drivers/net/wireless/b43/phy_a.c compat-wireless-2009-09-14.mod/drivers/net/wireless/b43/phy_a.c
--- compat-wireless-2009-09-14/drivers/net/wireless/b43/phy_a.c	2009-09-14 06:14:18.000000000 +0200
+++ compat-wireless-2009-09-14.mod/drivers/net/wireless/b43/phy_a.c	2009-09-14 19:09:22.543023974 +0200
@@ -583,7 +583,7 @@
 	.radio_write		= b43_aphy_op_radio_write,
 	.supports_hwpctl	= b43_aphy_op_supports_hwpctl,
 	.software_rfkill	= b43_aphy_op_software_rfkill,
-	.switch_analog		= b43_phyop_switch_analog_generic,
+	.switch_analog		= b43_phyop_switch_analog_ag,
 	.switch_channel		= b43_aphy_op_switch_channel,
 	.get_default_chan	= b43_aphy_op_get_default_chan,
 	.set_rx_antenna		= b43_aphy_op_set_rx_antenna,
diff -uNr compat-wireless-2009-09-14/drivers/net/wireless/b43/phy_common.c compat-wireless-2009-09-14.mod/drivers/net/wireless/b43/phy_common.c
--- compat-wireless-2009-09-14/drivers/net/wireless/b43/phy_common.c	2009-09-14 06:14:18.000000000 +0200
+++ compat-wireless-2009-09-14.mod/drivers/net/wireless/b43/phy_common.c	2009-09-14 19:09:22.555774832 +0200
@@ -417,7 +417,7 @@
 	return average;
 }
 
-void b43_phyop_switch_analog_generic(struct b43_wldev *dev, bool on)
+void b43_phyop_switch_analog_ag(struct b43_wldev *dev, bool on)
 {
 	b43_write16(dev, B43_MMIO_PHY0, on ? 0 : 0xF4);
 }
diff -uNr compat-wireless-2009-09-14/drivers/net/wireless/b43/phy_common.h compat-wireless-2009-09-14.mod/drivers/net/wireless/b43/phy_common.h
--- compat-wireless-2009-09-14/drivers/net/wireless/b43/phy_common.h	2009-09-14 06:14:19.000000000 +0200
+++ compat-wireless-2009-09-14.mod/drivers/net/wireless/b43/phy_common.h	2009-09-14 19:09:22.567774125 +0200
@@ -419,7 +419,7 @@
  * Do _not_ call this directly. Only use it as a switch_analog callback
  * for struct b43_phy_operations.
  */
-void b43_phyop_switch_analog_generic(struct b43_wldev *dev, bool on);
+void b43_phyop_switch_analog_ag(struct b43_wldev *dev, bool on);
 
 
 #endif /* LINUX_B43_PHY_COMMON_H_ */
diff -uNr compat-wireless-2009-09-14/drivers/net/wireless/b43/phy_g.c compat-wireless-2009-09-14.mod/drivers/net/wireless/b43/phy_g.c
--- compat-wireless-2009-09-14/drivers/net/wireless/b43/phy_g.c	2009-09-14 06:14:18.000000000 +0200
+++ compat-wireless-2009-09-14.mod/drivers/net/wireless/b43/phy_g.c	2009-09-14 19:09:22.579773421 +0200
@@ -3044,7 +3044,7 @@
 	.radio_write		= b43_gphy_op_radio_write,
 	.supports_hwpctl	= b43_gphy_op_supports_hwpctl,
 	.software_rfkill	= b43_gphy_op_software_rfkill,
-	.switch_analog		= b43_phyop_switch_analog_generic,
+	.switch_analog		= b43_phyop_switch_analog_ag,
 	.switch_channel		= b43_gphy_op_switch_channel,
 	.get_default_chan	= b43_gphy_op_get_default_chan,
 	.set_rx_antenna		= b43_gphy_op_set_rx_antenna,
diff -uNr compat-wireless-2009-09-14/drivers/net/wireless/b43/phy_lp.c compat-wireless-2009-09-14.mod/drivers/net/wireless/b43/phy_lp.c
--- compat-wireless-2009-09-14/drivers/net/wireless/b43/phy_lp.c	2009-09-14 06:14:18.000000000 +0200
+++ compat-wireless-2009-09-14.mod/drivers/net/wireless/b43/phy_lp.c	2009-09-14 19:09:22.589888677 +0200
@@ -2228,6 +2228,20 @@
 	return B43_TXPWR_RES_DONE;
 }
 
+void b43_lpphy_op_switch_analog(struct b43_wldev *dev, bool on)
+{
+	u16 tmp;
+	if (on) {
+		tmp = b43_phy_read(dev, B43_LPPHY_AFE_CTL_OVR);
+		b43_phy_write(dev, B43_LPPHY_AFE_CTL_OVR, 0xfff8 & tmp);
+	} else {
+		tmp = b43_phy_read(dev, B43_LPPHY_AFE_CTL_OVRVAL);
+		b43_phy_write(dev, B43_LPPHY_AFE_CTL_OVRVAL, 0x0007 | tmp);
+		tmp = b43_phy_read(dev, B43_LPPHY_AFE_CTL_OVR);
+		b43_phy_write(dev, B43_LPPHY_AFE_CTL_OVR, 0x0007 | tmp);
+	}
+}
+
 const struct b43_phy_operations b43_phyops_lp = {
 	.allocate		= b43_lpphy_op_allocate,
 	.free			= b43_lpphy_op_free,
@@ -2239,7 +2253,7 @@
 	.radio_read		= b43_lpphy_op_radio_read,
 	.radio_write		= b43_lpphy_op_radio_write,
 	.software_rfkill	= b43_lpphy_op_software_rfkill,
-	.switch_analog		= b43_phyop_switch_analog_generic,
+	.switch_analog		= b43_lpphy_op_switch_analog,
 	.switch_channel		= b43_lpphy_op_switch_channel,
 	.get_default_chan	= b43_lpphy_op_get_default_chan,
 	.set_rx_antenna		= b43_lpphy_op_set_rx_antenna,
_______________________________________________
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to