Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
[sfrench/cifs-2.6.git] / drivers / macintosh / via-pmu-led.c
index 179af10105d968fe9216cb03f41f33de0599ddca..55ad95671387636c4b7d2852367baf12a3081fed 100644 (file)
@@ -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,34 +79,6 @@ static struct led_classdev pmu_led = {
        .brightness_set = pmu_led_set,
 };
 
-#ifdef CONFIG_PM
-static int 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);
-
-       return PBOOK_SLEEP_OK;
-}
-
-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;
@@ -120,11 +91,13 @@ static int __init via_pmu_led_init(void)
        dt = of_find_node_by_path("/");
        if (dt == NULL)
                return -ENODEV;
-       model = get_property(dt, "model", NULL);
+       model = of_get_property(dt, "model", NULL);
        if (model == NULL)
                return -ENODEV;
        if (strncmp(model, "PowerBook", strlen("PowerBook")) != 0 &&
-           strncmp(model, "iBook", strlen("iBook")) != 0) {
+           strncmp(model, "iBook", strlen("iBook")) != 0 &&
+           strcmp(model, "PowerMac7,2") != 0 &&
+           strcmp(model, "PowerMac7,3") != 0) {
                of_node_put(dt);
                /* ignore */
                return -ENODEV;
@@ -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);
 }