[Maverick SRU] UBUNTU: [Upstream] Call acpi_video_register() in intel_opregion_init() failure path

Keng-Yu Lin keng-yu.lin at canonical.com
Fri Nov 26 09:40:26 UTC 2010


This patch gets merged in 2.6.36. Since the last stable release 
of 2.6.35.9 is out. This patch may be included as an SRU in Ubuntu.

SRU Justification:

Impact:
The backlight brightness of laptop type Toshiba NB305 cannot be adjusted.

Fix:
Call acpi_video_register() on the failure path.

Testcase:
Cameron Matheson verified on Toshiba NB305.
David Woodhouse verified on Lenovo IdeaPad S10-3

---
>From 89dcb83236bb656f7e9eaa75b53c5783ff0b8418 Mon Sep 17 00:00:00 2001
From: David Woodhouse <David.Woodhouse at intel.com>
Date: Fri, 13 Aug 2010 00:56:54 +0100
Subject: [Maverick SRU] UBUNTU: [Upstream] Call acpi_video_register() in intel_opregion_init() failure path

BugLink: http://bugs.launchpad.net/bugs/615947
upstream commit: 54b9b308fa39e5147e2edde3492d8650b957be6c

If i915 opregion is present, the acpi_video driver doesn't register
itself immediately; it defers that until the i915 opregion code is done.
But if that *fails*, the acpi_video driver was never getting registered.
And thus I have no backlight support on my Lenovo IdeaPad S10-3.

Call acpi_video_register() on the failure path, and it works again.

Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
Acked-by: Jesse Barnes <jbarnes at virtuousgeek.org>
Acked-by: Matthew Garrett <mjg at redhat.com>
Tested-by: Cameron Matheson <cameron.matheson at gmail.com>
Signed-off-by: Keng-Yu Lin <keng-yu.lin at canonical.com>
---
 drivers/gpu/drm/i915/i915_opregion.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_opregion.c b/drivers/gpu/drm/i915/i915_opregion.c
index 8fcc75c..d1bf92b 100644
--- a/drivers/gpu/drm/i915/i915_opregion.c
+++ b/drivers/gpu/drm/i915/i915_opregion.c
@@ -535,6 +535,7 @@ int intel_opregion_init(struct drm_device *dev, int resume)
 err_out:
 	iounmap(opregion->header);
 	opregion->header = NULL;
+	acpi_video_register();
 	return err;
 }
 
-- 
1.7.1





More information about the kernel-team mailing list