Re: [PATCH 02/12] ACPI / PM: Move ACPI video resume to a PM notifier

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday 06 April 2010, Len Brown wrote:
> From: Rafael Wysocki <rjw@xxxxxxx>
> 
> There is a problem with the ACPI video resume routine that it's
> executed before the GPU that may be accessed by it.  To fix this
> issue, move the ACPI video resume to a power management notifier,
> so that it's executed after resuming all devices, including the GPU.
> 
> http://bugzilla.kernel.org/show_bug.cgi?id=15096
> 
> Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
> Acked-by: Matthew Garrett <mjg@xxxxxxxxxx>
> Tested-by: Rafał Miłecki <zajec5@xxxxxxxxx>
> Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

Thanks, but this requires the appended patch on top.

I sent a replacement version yesterday,
https://patchwork.kernel.org/patch/90593/, but you haven't received it,
apparently.

Rafael

---
From: Rafael J. Wysocki <rjw@xxxxxxx>
Subject: ACPI / video: Save initial backlight brightness in props

The initial backlight brightness has to be written to
device->backlight->props in case it has to be restored before
there's a chance to call acpi_video_device_lcd_set_level().

Something like this happens during boot, when the kernel checks if
a hibernation image is present and executes power management
notifiers (in either case).  One of these notifiers tries to restore
the previous brightness level, but this won't work if the initial
brightness is not saved by acpi_video_device_find_cap().

Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
---
 drivers/acpi/video.c |    7 +++++++
 1 file changed, 7 insertions(+)

Index: linux-2.6/drivers/acpi/video.c
===================================================================
--- linux-2.6.orig/drivers/acpi/video.c
+++ linux-2.6/drivers/acpi/video.c
@@ -1020,6 +1020,13 @@ static void acpi_video_device_find_cap(s
 		if (IS_ERR(device->backlight))
 			return;
 
+		/*
+		 * Save current brightness level in case we have to restore it
+		 * before acpi_video_device_lcd_set_level() is called next time.
+		 */
+		device->backlight->props.brightness =
+				acpi_video_get_brightness(device->backlight);
+
 		result = sysfs_create_link(&device->backlight->dev.kobj,
 					   &device->dev->dev.kobj, "device");
 		if (result)
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux