[PATCH] [POWERPC] (testers ?) Fix sleep on some powerbooks

Benjamin Herrenschmidt benh at kernel.crashing.org
Mon Mar 3 17:27:46 EST 2008


The PMU backlight code would kick in during sleep/resume even on
machines that use a different backlight method. This appears to
break sleep on my PowerBook, though I can't test that patch at
the moment as the machine died while I was bisecting.

So if anybody around has one of those latest revision PowerPC
PowerBooks, the one just before they went to Intel, and have a
problem with suspend/resume, please test this and let me know
if it helps.

Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
---

 drivers/macintosh/via-pmu-backlight.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

--- linux-work.orig/drivers/macintosh/via-pmu-backlight.c	2008-03-03 17:24:44.000000000 +1100
+++ linux-work/drivers/macintosh/via-pmu-backlight.c	2008-03-03 17:25:12.000000000 +1100
@@ -17,7 +17,7 @@
 
 static struct backlight_ops pmu_backlight_data;
 static DEFINE_SPINLOCK(pmu_backlight_lock);
-static int sleeping;
+static int sleeping, uses_pmu_bl;
 static u8 bl_curve[FB_BACKLIGHT_LEVELS];
 
 static void pmu_backlight_init_curve(u8 off, u8 min, u8 max)
@@ -128,7 +128,7 @@ void pmu_backlight_set_sleep(int sleep)
 
 	spin_lock_irqsave(&pmu_backlight_lock, flags);
 	sleeping = sleep;
-	if (pmac_backlight) {
+	if (pmac_backlight && uses_pmu_bl) {
 		if (sleep) {
 			struct adb_request req;
 
@@ -166,6 +166,7 @@ void __init pmu_backlight_init()
 		printk(KERN_ERR "PMU Backlight registration failed\n");
 		return;
 	}
+	uses_pmu_bl = 1;
 	bd->props.max_brightness = FB_BACKLIGHT_LEVELS - 1;
 	pmu_backlight_init_curve(0x7F, 0x46, 0x0E);
 



More information about the Linuxppc-dev mailing list