Skip to content

Commit

Permalink
b43: Don't disable IRQs in mac_suspend
Browse files Browse the repository at this point in the history
This patch removes the IRQ-disable from mac_suspend.
The main advantage of this is to get rid of the IRQ-sync call in mac_suspend.
We need to remove the MAC suspend bit from the IRQ service mask, as otherwise
the IRQ handler would race with us.

Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Michael Buesch authored and John W. Linville committed May 7, 2008
1 parent f93d65f commit e40ac41
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 15 deletions.
3 changes: 1 addition & 2 deletions drivers/net/wireless/b43/b43.h
Original file line number Diff line number Diff line change
Expand Up @@ -410,8 +410,7 @@ enum {
#define B43_IRQ_TIMEOUT 0x80000000

#define B43_IRQ_ALL 0xFFFFFFFF
#define B43_IRQ_MASKTEMPLATE (B43_IRQ_MAC_SUSPENDED | \
B43_IRQ_TBTT_INDI | \
#define B43_IRQ_MASKTEMPLATE (B43_IRQ_TBTT_INDI | \
B43_IRQ_ATIM_END | \
B43_IRQ_PMQ | \
B43_IRQ_MAC_TXERR | \
Expand Down
13 changes: 0 additions & 13 deletions drivers/net/wireless/b43/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2322,11 +2322,6 @@ void b43_mac_enable(struct b43_wldev *dev)
b43_read32(dev, B43_MMIO_MACCTL);
b43_read32(dev, B43_MMIO_GEN_IRQ_REASON);
b43_power_saving_ctl_bits(dev, 0);

/* Re-enable IRQs. */
spin_lock_irq(&dev->wl->irq_lock);
b43_interrupt_enable(dev, dev->irq_savedstate);
spin_unlock_irq(&dev->wl->irq_lock);
}
}

Expand All @@ -2340,14 +2335,6 @@ void b43_mac_suspend(struct b43_wldev *dev)
B43_WARN_ON(dev->mac_suspended < 0);

if (dev->mac_suspended == 0) {
/* Mask IRQs before suspending MAC. Otherwise
* the MAC stays busy and won't suspend. */
spin_lock_irq(&dev->wl->irq_lock);
tmp = b43_interrupt_disable(dev, B43_IRQ_ALL);
spin_unlock_irq(&dev->wl->irq_lock);
b43_synchronize_irq(dev);
dev->irq_savedstate = tmp;

b43_power_saving_ctl_bits(dev, B43_PS_AWAKE);
b43_write32(dev, B43_MMIO_MACCTL,
b43_read32(dev, B43_MMIO_MACCTL)
Expand Down

0 comments on commit e40ac41

Please sign in to comment.