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.0 +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.0 +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.0 +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.0 +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.0 +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