e6a4d30f1b
From: Hans de Goede <hdegoede@redhat.com>
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
|
|
|