acpi backlight: reset brightness on resume
PATCH 7/7 acpi backlight: reset brightness on resume
From: Matthew Garrett <[email protected]>
Some machines seem to need the backlight brightness to be reset on resume. Add support for doing so to the video module.
[[email protected]: coding-style fixes]
Signed-off-by Matthew Garrett <[email protected]>
Cc Zhang Rui <[email protected]>
Cc Len Brown <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
---
drivers/acpi/video.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
drivers/acpi/video.c renamed from drivers/acpi/video.c~acpi-backlight-reset-brightness-on-resume +21 -0
@@ -78,6 +78,7 @@ module_param(brightness_switch_enabled,static int acpi_video_bus_add (struct acpi_device *device);static int acpi_video_bus_remove (struct acpi_device *device,int type); +static int acpi_video_resume (struct acpi_device *device);static const struct acpi_device_id video_device_ids[] = { {ACPI_VIDEO_HID ,0 },
@@ -92,6 +93,7 @@ static struct acpi_driver acpi_video_bus .ops = { .add = acpi_video_bus_add, .remove = acpi_video_bus_remove, + .resume = acpi_video_resume, }, };
@@ -1948,6 +1950,25 @@ static void acpi_video_device_notify(acp }static int instance; +static int acpi_video_resume (struct acpi_device *device) +{ +struct acpi_video_bus *video; +struct acpi_video_device *video_device; +int i; + +if (!device || !acpi_driver_data (device)) +return -EINVAL ; + + video =acpi_driver_data (device); + +for (i =0 ; i < video->attached_count; i++) { + video_device = video->attached_array[i].bind_info; +if (video_device && video_device->backlight) +acpi_video_set_brightness (video_device->backlight); + } +return AE_OK ; +} +static int acpi_video_bus_add (struct acpi_device *device) {acpi_status status;
_