|
@@ -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);
|
|
|
}
|
|
|
|