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