aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/b43/phy_g.c
diff options
context:
space:
mode:
authorMichael Buesch <mb@bu3sch.de>2009-09-04 16:51:29 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-09-08 16:31:06 -0400
commit36dbd9548e92268127b0c31b0e121e63e9207108 (patch)
tree41d95c5dd824ea43c5f0055bd790b64d7ba8a33a /drivers/net/wireless/b43/phy_g.c
parentb275f28535fc774325bb8ad5f664e6c44a8fbc9b (diff)
b43: Use a threaded IRQ handler
Use a threaded IRQ handler to allow locking the mutex and sleeping while executing an interrupt. This removes usage of the irq_lock spinlock, but introduces a new hardirq_lock, which is _only_ used for the PCI/SSB lowlevel hard-irq handler. Sleeping busses (SDIO) will use mutex instead. Signed-off-by: Michael Buesch <mb@bu3sch.de> Tested-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/b43/phy_g.c')
-rw-r--r--drivers/net/wireless/b43/phy_g.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/drivers/net/wireless/b43/phy_g.c b/drivers/net/wireless/b43/phy_g.c
index 5afa4df0b02f..382826a8da82 100644
--- a/drivers/net/wireless/b43/phy_g.c
+++ b/drivers/net/wireless/b43/phy_g.c
@@ -2823,8 +2823,6 @@ static void b43_gphy_op_adjust_txpower(struct b43_wldev *dev)
2823 2823
2824 b43_mac_suspend(dev); 2824 b43_mac_suspend(dev);
2825 2825
2826 spin_lock_irq(&dev->wl->irq_lock);
2827
2828 /* Calculate the new attenuation values. */ 2826 /* Calculate the new attenuation values. */
2829 bbatt = gphy->bbatt.att; 2827 bbatt = gphy->bbatt.att;
2830 bbatt += gphy->bbatt_delta; 2828 bbatt += gphy->bbatt_delta;
@@ -2864,11 +2862,6 @@ static void b43_gphy_op_adjust_txpower(struct b43_wldev *dev)
2864 gphy->rfatt.att = rfatt; 2862 gphy->rfatt.att = rfatt;
2865 gphy->bbatt.att = bbatt; 2863 gphy->bbatt.att = bbatt;
2866 2864
2867 /* We drop the lock early, so we can sleep during hardware
2868 * adjustment. Possible races with op_recalc_txpower are harmless,
2869 * as we will be called once again in case we raced. */
2870 spin_unlock_irq(&dev->wl->irq_lock);
2871
2872 if (b43_debug(dev, B43_DBG_XMITPOWER)) 2865 if (b43_debug(dev, B43_DBG_XMITPOWER))
2873 b43dbg(dev->wl, "Adjusting TX power\n"); 2866 b43dbg(dev->wl, "Adjusting TX power\n");
2874 2867