Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c2c78905 authored by Zhao Yakui's avatar Zhao Yakui Committed by Andi Kleen
Browse files

ACPI: Ignore _BQC object when registering backlight device

According to acpi spec , the objectes of  _BCL and _BCM are required if
integrated LCD is present and supports brightness level and the _BQC is
the optional object. So the _BQC object will be ignored when the backlight
device is registered.
At the same time when there is no _BQC object, the current brightness will be
set to the maximum.

http://bugzilla.kernel.org/show_bug.cgi?id=10206



Signed-off-by: default avatarZhao Yakui <yakui.zhao@intel.com>
Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
parent 4a5e3638
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -741,7 +741,7 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)

	max_level = acpi_video_init_brightness(device);

	if (device->cap._BCL && device->cap._BCM && device->cap._BQC && max_level > 0){
	if (device->cap._BCL && device->cap._BCM && max_level > 0) {
		int result;
		static int count = 0;
		char *name;
@@ -753,7 +753,17 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device)
		device->backlight = backlight_device_register(name,
			NULL, device, &acpi_backlight_ops);
		device->backlight->props.max_brightness = device->brightness->count-3;
		device->backlight->props.brightness = acpi_video_get_brightness(device->backlight);
		/*
		 * If there exists the _BQC object, the _BQC object will be
		 * called to get the current backlight brightness. Otherwise
		 * the brightness will be set to the maximum.
		 */
		if (device->cap._BQC)
			device->backlight->props.brightness =
				acpi_video_get_brightness(device->backlight);
		else
			device->backlight->props.brightness =
				device->backlight->props.max_brightness;
		backlight_update_status(device->backlight);
		kfree(name);