linux-hardened/drivers/gpu/drm/nouveau
Hans de Goede bee564430f 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 5bead799d3 (drm/nouveau: don't
expose backlight control when available through ACPI).

References: https://bugzilla.redhat.com/show_bug.cgi?id=1093171
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2014-05-27 01:29:00 +02:00
..
core drm/nouveau/bios: fix a bit shift error introduced by 457e77b 2014-04-18 13:15:18 +10:00
dispnv04 drm: Replace crtc fb with primary plane fb (v3) 2014-04-01 20:18:28 -04:00
Kconfig ACPI / gpu / drm: Stop selecting VIDEO_OUTPUT_CONTROL 2014-03-20 02:37:22 +01:00
Makefile drm/gm107/gr: initial support 2014-03-26 14:08:15 +10:00
nouveau_abi16.c support for platform devices 2014-03-26 14:08:04 +10:00
nouveau_abi16.h
nouveau_acpi.c ACPI / nouveau: fix probing regression related to _DSM 2014-02-20 21:19:47 +01:00
nouveau_acpi.h nouveau: ACPI support depends on X86 and X86_PLATFORM_DEVICES 2013-02-20 16:05:16 +10:00
nouveau_agp.c support for platform devices 2014-03-26 14:08:04 +10:00
nouveau_agp.h
nouveau_backlight.c nouveau: Don't check acpi_video_backlight_support() before registering backlight 2014-05-27 01:29:00 +02:00
nouveau_bios.c drm/nouveau: recognise higher link rate for available dp bw calculations 2014-03-26 14:08:21 +10:00
nouveau_bios.h drm/nv04/disp: hide all the cruft away in its own little hole 2013-04-26 15:37:51 +10:00
nouveau_bo.c support for platform devices 2014-03-26 14:08:04 +10:00
nouveau_bo.h drm/nouveau: embed gem object in nouveau_bo 2013-10-09 14:37:55 +10:00
nouveau_chan.c support for platform devices 2014-03-26 14:08:04 +10:00
nouveau_chan.h
nouveau_connector.c drm/nouveau/bios: add HDMI-C (mini) connector type 2014-03-26 14:00:58 +10:00
nouveau_connector.h drm/nouveau: remove prototype for non-existent nouveau_connector_bpp 2013-11-08 15:36:08 +10:00
nouveau_crtc.h drm/nouveau: rename nvd0_display to nv50_display to reflect reality since merge 2012-11-29 09:57:58 +10:00
nouveau_debugfs.c drm/nouveau: restore debugfs/vbios.rom support 2013-02-20 20:46:34 +10:00
nouveau_debugfs.h drm/nouveau: restore debugfs/vbios.rom support 2013-02-20 20:46:34 +10:00
nouveau_display.c drm: Replace crtc fb with primary plane fb (v3) 2014-04-01 20:18:28 -04:00
nouveau_display.h drm/nouveau: implement hooks for needed for drm vblank timestamping support 2014-01-30 09:20:27 +10:00
nouveau_dma.c drm: Kill DRM_*MEMORYBARRIER 2013-12-18 11:35:21 +10:00
nouveau_dma.h drm: Kill DRM_*MEMORYBARRIER 2013-12-18 11:35:21 +10:00
nouveau_dp.c drm/nv50-/disp: move DP link training to core and train from supervisor 2013-02-20 16:01:02 +10:00
nouveau_drm.c Merge tag 'drm-intel-fixes-2014-04-04' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-04-05 16:14:21 +10:00
nouveau_drm.h drm/nouveau: use nv_debug for NV_DEBUG, make DRM a separate subflag 2014-03-26 13:59:32 +10:00
nouveau_encoder.h drm/nv04/disp: hide all the cruft away in its own little hole 2013-04-26 15:37:51 +10:00
nouveau_fbcon.c drm/nouveau: fix fbcon not being accelerated after suspend 2014-03-26 14:08:13 +10:00
nouveau_fbcon.h
nouveau_fence.c drm: Kill DRM_HZ 2013-12-18 11:33:24 +10:00
nouveau_fence.h drm/nouveau: delay busy bo vma removal until fence signals 2013-07-01 13:50:31 +10:00
nouveau_gem.c drm: init TTM dev_mapping in ttm_bo_device_init() 2014-03-16 12:23:42 +01:00
nouveau_gem.h drm: kill ->gem_init_object() and friends 2013-10-09 14:38:02 +10:00
nouveau_hwmon.c drm/nouveau/hwmon: replace strict_strtol() with kstrtol() 2014-03-26 13:59:31 +10:00
nouveau_hwmon.h drm/nouveau/drm/pm: remove everything except the hwmon interfaces to THERM 2013-11-08 15:40:00 +10:00
nouveau_ioc32.c drm/nouveau: fix up 32-bit ioctls and device wake up. 2013-09-02 09:52:55 +10:00
nouveau_ioctl.h drm/nouveau: fix up 32-bit ioctls and device wake up. 2013-09-02 09:52:55 +10:00
nouveau_prime.c drm/nouveau: embed gem object in nouveau_bo 2013-10-09 14:37:55 +10:00
nouveau_reg.h
nouveau_sgdma.c drm/nouveau/vm: reduce number of entry-points to vm_map() 2014-01-23 13:38:25 +10:00
nouveau_sysfs.c support for platform devices 2014-03-26 14:08:04 +10:00
nouveau_sysfs.h drm/nouveau: implement a simple sysfs interface to new pm code 2013-11-08 15:40:18 +10:00
nouveau_ttm.c support for platform devices 2014-03-26 14:08:04 +10:00
nouveau_ttm.h
nouveau_vga.c support for platform devices 2014-03-26 14:08:04 +10:00
nouveau_vga.h
nv04_fbcon.c drm/nv11-: synchronise flips to vblank, unless async flip requested 2013-11-14 14:56:56 +10:00
nv04_fence.c drm/nouveau/fence: make internal hooks part of the context 2013-02-20 16:00:53 +10:00
nv10_fence.c drm/nouveau/fence: make internal hooks part of the context 2013-02-20 16:00:53 +10:00
nv10_fence.h drm/nouveau: share fence structures between nv10+ and nv50 implementations 2013-02-20 16:00:34 +10:00
nv17_fence.c drm/nouveau: fix semaphore dmabuf obj 2013-07-30 16:46:55 +10:00
nv50_display.c drm: Replace crtc fb with primary plane fb (v3) 2014-04-01 20:18:28 -04:00
nv50_display.h drm/nouveau: rename nvd0_display to nv50_display to reflect reality since merge 2012-11-29 09:57:58 +10:00
nv50_fbcon.c
nv50_fence.c drm/nouveau: fix semaphore dmabuf obj 2013-07-30 16:46:55 +10:00
nv84_fence.c drm/nv84-/fence: prepare for emit/sync support of sysram sequences 2013-02-20 16:00:53 +10:00
nvc0_fbcon.c
nvc0_fence.c drm/nv84-/fence: prepare for emit/sync support of sysram sequences 2013-02-20 16:00:53 +10:00