diff options
author | Michael Buesch <mb@bu3sch.de> | 2009-09-04 16:51:29 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-09-08 16:31:06 -0400 |
commit | 36dbd9548e92268127b0c31b0e121e63e9207108 (patch) | |
tree | 41d95c5dd824ea43c5f0055bd790b64d7ba8a33a /drivers/net/wireless/b43/phy_g.c | |
parent | b275f28535fc774325bb8ad5f664e6c44a8fbc9b (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.c | 7 |
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 | ||