80 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
Bugzilla: 1093171
 | 
						|
Upstream-status: Queued for 3.16
 | 
						|
 | 
						|
From abf17f7885656ccc181a608d2a9ee770b23d9e23 Mon Sep 17 00:00:00 2001
 | 
						|
From: Hans de Goede <hdegoede@redhat.com>
 | 
						|
Date: Mon, 2 Jun 2014 17:41:07 +0200
 | 
						|
Subject: [PATCH 10/14] nouveau: Don't check acpi_video_backlight_support()
 | 
						|
 before registering backlight
 | 
						|
 | 
						|
acpi_video_backlight_support() is supposed to be called by other (vendor
 | 
						|
specific) firmware backlight controls, not by native / raw backlight controls
 | 
						|
like nv_backlight.
 | 
						|
 | 
						|
Userspace will normally prefer firmware interfaces over raw interfaces, so
 | 
						|
if acpi_video backlight support is present it will use that even if
 | 
						|
nv_backlight is registered as well.
 | 
						|
 | 
						|
Except when video.use_native_backlight is present on the kernel cmdline
 | 
						|
(or enabled through a dmi based quirk). As the name indicates the goal here
 | 
						|
is to make only the raw interface available to userspace so that it will use
 | 
						|
that (it only does this when it sees a win8 compliant bios).
 | 
						|
 | 
						|
This is done by:
 | 
						|
1) Not registering any acpi_video# backlight devices; and
 | 
						|
2) Making acpi_video_backlight_support() return true so that other firmware
 | 
						|
drivers, ie acer_wmi, thinkpad_acpi, dell_laptop, etc. Don't register their
 | 
						|
own vender specific interfaces.
 | 
						|
 | 
						|
Currently nouveau breaks this setup, as when acpi_video_backlight_support()
 | 
						|
returns true, it does not register itself, resulting in no backlight control
 | 
						|
at all.
 | 
						|
 | 
						|
This is esp. going to be a problem with 3.16 which will default to
 | 
						|
video.use_native_backlight=1, and thus nouveau based laptops with a win8 bios
 | 
						|
will get no backlight control at all.
 | 
						|
 | 
						|
This also likely explains why the previous attempt to make
 | 
						|
video.use_native_backlight=1 the default was not a success, as without this
 | 
						|
patch having a default of video.use_native_backlight=1 will cause regressions.
 | 
						|
 | 
						|
Note this effectively reverts commit 5bead799
 | 
						|
 | 
						|
Also see: https://bugzilla.redhat.com/show_bug.cgi?id=1093171
 | 
						|
 | 
						|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 | 
						|
---
 | 
						|
 drivers/gpu/drm/nouveau/nouveau_backlight.c | 9 ---------
 | 
						|
 1 file changed, 9 deletions(-)
 | 
						|
 | 
						|
diff --git a/drivers/gpu/drm/nouveau/nouveau_backlight.c b/drivers/gpu/drm/nouveau/nouveau_backlight.c
 | 
						|
index 630f6e84fc01..2c1e4aad7da3 100644
 | 
						|
--- a/drivers/gpu/drm/nouveau/nouveau_backlight.c
 | 
						|
+++ b/drivers/gpu/drm/nouveau/nouveau_backlight.c
 | 
						|
@@ -31,7 +31,6 @@
 | 
						|
  */
 | 
						|
 
 | 
						|
 #include <linux/backlight.h>
 | 
						|
-#include <linux/acpi.h>
 | 
						|
 
 | 
						|
 #include "nouveau_drm.h"
 | 
						|
 #include "nouveau_reg.h"
 | 
						|
@@ -222,14 +221,6 @@ nouveau_backlight_init(struct drm_device *dev)
 | 
						|
 	struct nouveau_device *device = nv_device(drm->device);
 | 
						|
 	struct drm_connector *connector;
 | 
						|
 
 | 
						|
-#ifdef CONFIG_ACPI
 | 
						|
-	if (acpi_video_backlight_support()) {
 | 
						|
-		NV_INFO(drm, "ACPI backlight interface available, "
 | 
						|
-			     "not registering our own\n");
 | 
						|
-		return 0;
 | 
						|
-	}
 | 
						|
-#endif
 | 
						|
-
 | 
						|
 	list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
 | 
						|
 		if (connector->connector_type != DRM_MODE_CONNECTOR_LVDS &&
 | 
						|
 		    connector->connector_type != DRM_MODE_CONNECTOR_eDP)
 | 
						|
-- 
 | 
						|
1.9.0
 | 
						|
 |