This patch deactive mail led when laptop is going to hibernete/suspend
or power off. After resume from hibernate/suspend correctly restore
mail led state.

Signed-off-by: Pali Rohár <[email protected]>
Tested-by: Pali Rohár <[email protected]>

--- a/drivers/platform/x86/acer-wmi.c/acer-wmi.c        2011-01-30
00:28:04.000000000 +0100
+++ b/drivers/platform/x86/acer-wmi.c/acer-wmi.c        2011-01-30
01:30:02.000000000 +0100
@@ -887,6 +887,7 @@ static int __devinit acer_led_init(struc

 static void acer_led_exit(void)
 {
+       set_u32(LED_OFF, ACER_CAP_MAILLED);
        led_classdev_unregister(&mail_led);
 }

@@ -1166,6 +1167,7 @@ pm_message_t state)

        if (has_cap(ACER_CAP_MAILLED)) {
                get_u32(&value, ACER_CAP_MAILLED);
+               set_u32(LED_OFF, ACER_CAP_MAILLED);
                data->mailled = value;
        }

@@ -1193,6 +1195,17 @@ static int acer_platform_resume(struct p
        return 0;
 }

+static void acer_platform_shutdown(struct platform_device *device)
+{
+       struct acer_data *data = &interface->data;
+
+       if (!data)
+               return;
+
+       if (has_cap(ACER_CAP_MAILLED))
+               set_u32(LED_OFF, ACER_CAP_MAILLED);
+}
+
 static struct platform_driver acer_platform_driver = {
        .driver = {
                .name = "acer-wmi",
@@ -1202,6 +1215,7 @@ static struct platform_driver acer_platf
        .remove = acer_platform_remove,
        .suspend = acer_platform_suspend,
        .resume = acer_platform_resume,
+       .shutdown = acer_platform_shutdown,
 };

 static struct platform_device *acer_platform_device;


--
Pali Rohár
[email protected]
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" 
in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to