From f0a1b3f3d7e77562610bd47d3e8a636ba1de43c9 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Tue, 8 May 2007 01:08:00 +1000 Subject: [PATCH] --- yaml --- r: 55039 b: refs/heads/master c: f596575e81999c0faf01a2fd340bc96dda058f80 h: refs/heads/master i: 55037: 70e778ed547e2b4dede2c7528afa96b8a4139275 55035: cc83e97b9ac4df2b96accb21fcd4b05a4a7140f9 55031: b241d075157755ac883e63d4051938e105597c02 55023: 505a66ab861084859ac270594cdaeda55b1ea532 55007: 0fd4029db6fce30c292b1cee7f3f4a45afd933c6 54975: b1416d7e1c1074ffd8c91e11773334fe97629580 54911: 938cea080277c5df1f0a26553e9fdbb20f354797 54783: 0f9f331f48e2740dee12ca32115d95c7d008b369 v: v3 --- [refs] | 2 +- trunk/drivers/macintosh/via-pmu-led.c | 35 +++------------------------ trunk/drivers/macintosh/via-pmu.c | 2 +- trunk/include/linux/pmu.h | 8 ++++++ 4 files changed, 13 insertions(+), 34 deletions(-) diff --git a/[refs] b/[refs] index a2d9008f4c91..1f5de6bbd7f3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0108d3fe3c44f01de224f39347b95f6a94181687 +refs/heads/master: f596575e81999c0faf01a2fd340bc96dda058f80 diff --git a/trunk/drivers/macintosh/via-pmu-led.c b/trunk/drivers/macintosh/via-pmu-led.c index fc89a7047cd0..55ad95671387 100644 --- a/trunk/drivers/macintosh/via-pmu-led.c +++ b/trunk/drivers/macintosh/via-pmu-led.c @@ -31,7 +31,6 @@ static spinlock_t pmu_blink_lock; static struct adb_request pmu_blink_req; /* -1: no change, 0: request off, 1: request on */ static int requested_change; -static int sleeping; static void pmu_req_done(struct adb_request * req) { @@ -41,7 +40,7 @@ static void pmu_req_done(struct adb_request * req) /* if someone requested a change in the meantime * (we only see the last one which is fine) * then apply it now */ - if (requested_change != -1 && !sleeping) + if (requested_change != -1 && !pmu_sys_suspended) pmu_request(&pmu_blink_req, NULL, 4, 0xee, 4, 0, requested_change); /* reset requested change */ requested_change = -1; @@ -66,7 +65,7 @@ static void pmu_led_set(struct led_classdev *led_cdev, break; } /* if request isn't done, then don't do anything */ - if (pmu_blink_req.complete && !sleeping) + if (pmu_blink_req.complete && !pmu_sys_suspended) pmu_request(&pmu_blink_req, NULL, 4, 0xee, 4, 0, requested_change); out: spin_unlock_irqrestore(&pmu_blink_lock, flags); @@ -80,32 +79,6 @@ static struct led_classdev pmu_led = { .brightness_set = pmu_led_set, }; -#ifdef CONFIG_PM -static void pmu_led_sleep_call(struct pmu_sleep_notifier *self, int when) -{ - unsigned long flags; - - spin_lock_irqsave(&pmu_blink_lock, flags); - - switch (when) { - case PBOOK_SLEEP_REQUEST: - sleeping = 1; - break; - case PBOOK_WAKE: - sleeping = 0; - break; - default: - /* do nothing */ - break; - } - spin_unlock_irqrestore(&pmu_blink_lock, flags); -} - -static struct pmu_sleep_notifier via_pmu_led_sleep_notif = { - .notifier_call = pmu_led_sleep_call, -}; -#endif - static int __init via_pmu_led_init(void) { struct device_node *dt; @@ -135,9 +108,7 @@ static int __init via_pmu_led_init(void) /* no outstanding req */ pmu_blink_req.complete = 1; pmu_blink_req.done = pmu_req_done; -#ifdef CONFIG_PM - pmu_register_sleep_notifier(&via_pmu_led_sleep_notif); -#endif + return led_classdev_register(NULL, &pmu_led); } diff --git a/trunk/drivers/macintosh/via-pmu.c b/trunk/drivers/macintosh/via-pmu.c index 0707624dfad3..157080b3b468 100644 --- a/trunk/drivers/macintosh/via-pmu.c +++ b/trunk/drivers/macintosh/via-pmu.c @@ -2759,7 +2759,7 @@ pmu_polled_request(struct adb_request *req) #if defined(CONFIG_PM) && defined(CONFIG_PPC32) -static int pmu_sys_suspended; +int pmu_sys_suspended; static int pmu_sys_suspend(struct sys_device *sysdev, pm_message_t state) { diff --git a/trunk/include/linux/pmu.h b/trunk/include/linux/pmu.h index b0952e532ed5..37ca57392add 100644 --- a/trunk/include/linux/pmu.h +++ b/trunk/include/linux/pmu.h @@ -225,4 +225,12 @@ extern unsigned int pmu_power_flags; /* Backlight */ extern void pmu_backlight_init(void); +/* some code needs to know if the PMU was suspended for hibernation */ +#ifdef CONFIG_PM +extern int pmu_sys_suspended; +#else +/* if power management is not configured it can't be suspended */ +#define pmu_sys_suspended 0 +#endif + #endif /* __KERNEL__ */