diff options
Diffstat (limited to 'drivers/net/wireless/b43/phy_g.c')
-rw-r--r-- | drivers/net/wireless/b43/phy_g.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/wireless/b43/phy_g.c b/drivers/net/wireless/b43/phy_g.c index 232181f6333c..3b1d673796cc 100644 --- a/drivers/net/wireless/b43/phy_g.c +++ b/drivers/net/wireless/b43/phy_g.c | |||
@@ -3047,6 +3047,8 @@ static void b43_gphy_op_adjust_txpower(struct b43_wldev *dev) | |||
3047 | int rfatt, bbatt; | 3047 | int rfatt, bbatt; |
3048 | u8 tx_control; | 3048 | u8 tx_control; |
3049 | 3049 | ||
3050 | b43_mac_suspend(dev); | ||
3051 | |||
3050 | spin_lock_irq(&dev->wl->irq_lock); | 3052 | spin_lock_irq(&dev->wl->irq_lock); |
3051 | 3053 | ||
3052 | /* Calculate the new attenuation values. */ | 3054 | /* Calculate the new attenuation values. */ |
@@ -3103,6 +3105,8 @@ static void b43_gphy_op_adjust_txpower(struct b43_wldev *dev) | |||
3103 | gphy->tx_control); | 3105 | gphy->tx_control); |
3104 | b43_radio_unlock(dev); | 3106 | b43_radio_unlock(dev); |
3105 | b43_phy_unlock(dev); | 3107 | b43_phy_unlock(dev); |
3108 | |||
3109 | b43_mac_enable(dev); | ||
3106 | } | 3110 | } |
3107 | 3111 | ||
3108 | static enum b43_txpwr_result b43_gphy_op_recalc_txpower(struct b43_wldev *dev, | 3112 | static enum b43_txpwr_result b43_gphy_op_recalc_txpower(struct b43_wldev *dev, |
@@ -3215,9 +3219,9 @@ static void b43_gphy_op_pwork_15sec(struct b43_wldev *dev) | |||
3215 | struct b43_phy *phy = &dev->phy; | 3219 | struct b43_phy *phy = &dev->phy; |
3216 | struct b43_phy_g *gphy = phy->g; | 3220 | struct b43_phy_g *gphy = phy->g; |
3217 | 3221 | ||
3222 | b43_mac_suspend(dev); | ||
3218 | //TODO: update_aci_moving_average | 3223 | //TODO: update_aci_moving_average |
3219 | if (gphy->aci_enable && gphy->aci_wlan_automatic) { | 3224 | if (gphy->aci_enable && gphy->aci_wlan_automatic) { |
3220 | b43_mac_suspend(dev); | ||
3221 | if (!gphy->aci_enable && 1 /*TODO: not scanning? */ ) { | 3225 | if (!gphy->aci_enable && 1 /*TODO: not scanning? */ ) { |
3222 | if (0 /*TODO: bunch of conditions */ ) { | 3226 | if (0 /*TODO: bunch of conditions */ ) { |
3223 | phy->ops->interf_mitigation(dev, | 3227 | phy->ops->interf_mitigation(dev, |
@@ -3227,12 +3231,12 @@ static void b43_gphy_op_pwork_15sec(struct b43_wldev *dev) | |||
3227 | if (/*(aci_average > 1000) &&*/ !b43_gphy_aci_scan(dev)) | 3231 | if (/*(aci_average > 1000) &&*/ !b43_gphy_aci_scan(dev)) |
3228 | phy->ops->interf_mitigation(dev, B43_INTERFMODE_NONE); | 3232 | phy->ops->interf_mitigation(dev, B43_INTERFMODE_NONE); |
3229 | } | 3233 | } |
3230 | b43_mac_enable(dev); | ||
3231 | } else if (gphy->interfmode == B43_INTERFMODE_NONWLAN && | 3234 | } else if (gphy->interfmode == B43_INTERFMODE_NONWLAN && |
3232 | phy->rev == 1) { | 3235 | phy->rev == 1) { |
3233 | //TODO: implement rev1 workaround | 3236 | //TODO: implement rev1 workaround |
3234 | } | 3237 | } |
3235 | b43_lo_g_maintanance_work(dev); | 3238 | b43_lo_g_maintanance_work(dev); |
3239 | b43_mac_enable(dev); | ||
3236 | } | 3240 | } |
3237 | 3241 | ||
3238 | static void b43_gphy_op_pwork_60sec(struct b43_wldev *dev) | 3242 | static void b43_gphy_op_pwork_60sec(struct b43_wldev *dev) |