diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2005-05-02 08:12:00 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-02 17:15:22 +0200 |
commit | e521dca64e0f82d844928c5ee88d82fdced50cbe (patch) | |
tree | c894a71c7d1a22e6c814f202532ec55616665adb /drivers | |
parent | [PATCH] ppc32: More fixlet for pmac sound (diff) | |
download | linux-e521dca64e0f82d844928c5ee88d82fdced50cbe.tar.xz linux-e521dca64e0f82d844928c5ee88d82fdced50cbe.zip |
[PATCH] ppc32: Fix might_sleep() warning with clock spreading
The clock spreading disable/enable code was called to late/early during
the suspend/resume code on some laptops and would trigger a
might_sleep() warning due to the down() call in the low level i2c code.
This fixes it by calling those functions earlier/later when interrupts
are still enabled.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/macintosh/via-pmu.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c index fdea1a3a631d..e654aa5eecd4 100644 --- a/drivers/macintosh/via-pmu.c +++ b/drivers/macintosh/via-pmu.c @@ -2351,6 +2351,10 @@ pmac_suspend_devices(void) return -EBUSY; } + /* Disable clock spreading on some machines */ + pmac_tweak_clock_spreading(0); + + /* Stop preemption */ preempt_disable(); /* Make sure the decrementer won't interrupt us */ @@ -2417,11 +2421,12 @@ pmac_wakeup_devices(void) /* Re-enable local CPU interrupts */ local_irq_enable(); - mdelay(100); - preempt_enable(); + /* Re-enable clock spreading on some machines */ + pmac_tweak_clock_spreading(1); + /* Resume devices */ device_resume(); |