apple-gmux: Add suspend/resume support for the backlight
authorSeth Forshee <seth.forshee@canonical.com>
Thu, 19 Apr 2012 15:55:35 +0000 (10:55 -0500)
committerMatthew Garrett <mjg@redhat.com>
Thu, 31 May 2012 18:23:39 +0000 (14:23 -0400)
After S3, the brightness might not be restored to the pre-suspend value.
Request status update calls from the backlight core on suspend/resume to
ensure the brightness value is restored.

Reported-and-tested-by: Austin Lund <austin.lund@gmail.com>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
drivers/platform/x86/apple-gmux.c

index 8a582bdfdc76e3d20a9bef63e1458035999776b3..6dcef4f199bb5900b5659b257f37c9647c1d8ad9 100644 (file)
@@ -87,6 +87,9 @@ static int gmux_update_status(struct backlight_device *bd)
        struct apple_gmux_data *gmux_data = bl_get_data(bd);
        u32 brightness = bd->props.brightness;
 
+       if (bd->props.state & BL_CORE_SUSPENDED)
+               brightness = 0;
+
        /*
         * Older gmux versions require writing out lower bytes first then
         * setting the upper byte to 0 to flush the values. Newer versions
@@ -102,6 +105,7 @@ static int gmux_update_status(struct backlight_device *bd)
 }
 
 static const struct backlight_ops gmux_bl_ops = {
+       .options = BL_CORE_SUSPENDRESUME,
        .get_brightness = gmux_get_brightness,
        .update_status = gmux_update_status,
 };