linux/drivers/platform/x86
Bruno Prémont 126c7689c5 apple-gmux: lock iGP IO to protect from vgaarb changes
commit 4eebd5a4e7 upstream.

As GMUX depends on IO for iGP to be enabled and active, lock the IO at
vgaarb level. This should prevent GPU driver for dGPU to disable IO for
iGP while it tries to own legacy VGA IO.

This fixes usage of backlight control combined with closed nvidia
driver on some Apple dual-GPU (intel/nvidia) systems.

On those systems loading nvidia driver disables intel IO decoding,
disabling the gmux backlight controls as a side effect.
Prior to commits moving boot_vga from (optional) efifb to less optional
vgaarb this mis-behavior could be avoided by using right kernel config
(efifb enabled but vgaarb disabled).

This patch explicitly does not try to trigger vgaarb changes in order
to avoid confusing already running graphics drivers. If IO has been
mis-configured by vgaarb gmux will thus fail to probe.
It is expected to load/probe gmux prior to graphics drivers.

Fixes: ce027dac59 # nvidia interaction
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=86121
Reported-by: Petri Hodju <petrihodju@yahoo.com>
Tested-by: Petri Hodju <petrihodju@yahoo.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Matthew Garrett <matthew.garrett@nebula.com>
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
History 2015-05-06 11:33:00 +01:00
..
acer-wmi.c acer-wmi: Add acpi_backlight=video quirk for the Acer KAV80 2014-11-14 15:19:54 +00:00
acerhdf.c Drivers: platform: x86: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
alienware-wmi.c alienware-wmi: For WMAX HDMI method, introduce a way to query HDMI cable status 2014-06-10 19:04:17 -04:00
amilo-rfkill.c amilo-rfkill: Enable using amilo-rfkill with the FSC Amilo L1310. 2013-09-05 08:52:12 -04:00
apple-gmux.c apple-gmux: lock iGP IO to protect from vgaarb changes 2015-05-06 11:33:00 +01:00
asus-laptop.c Merge branch 'acpi-cleanup' 2014-01-12 23:44:09 +01:00
asus-nb-wmi.c asus-nb-wmi: Add another wapf=4 quirk 2015-02-04 10:59:59 +00:00
asus-wmi.c platform: x86: asus-wmi.c: Cleaning up uninitialized variables 2014-06-10 19:11:08 -04:00
asus-wmi.h asus-wmi: always report brightness key events 2013-02-27 08:30:37 -05:00
classmate-laptop.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
compal-laptop.c compal-laptop: Check return value of power_supply_register 2015-05-04 16:06:39 +01:00
dell-laptop.c dell-laptop: Only install the i8042 filter when rfkill is active 2014-01-21 08:44:17 -05:00
dell-smo8800.c platform: x86: dell-smo8800: Dell Latitude freefall driver (ACPI SMO8800/SMO8810) 2014-06-10 19:11:10 -04:00
dell-wmi-aio.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
dell-wmi.c dell-wmi: Fix access out of memory 2014-11-27 11:22:10 +00:00
eeepc-laptop.c PCI: Make pci_bus_add_device() void 2014-05-30 09:34:27 -06:00
eeepc-wmi.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
fujitsu-laptop.c fujitsu-laptop: Drop unneeded include 2014-03-20 02:43:05 +01:00
fujitsu-tablet.c fujitsu-tablet: add support for Lifebook T901 and T902 2014-04-06 12:58:15 -04:00
hdaps.c platform / x86 / PM: Fix unused function warnings for CONFIG_PM_SLEEP 2012-08-10 14:29:43 +02:00
hp-wireless.c hp-wireless: new driver for hp wireless button for Windows 8 2014-01-21 08:44:18 -05:00
hp-wmi.c hp-wmi: Enable hotkeys on some systems 2014-06-10 19:11:11 -04:00
hp_accel.c hp_accel: Add support for HP ZBook 15 2015-01-15 10:43:25 +00:00
ibm_rtl.c efi: Make 'efi_enabled' a function to query EFI facilities 2013-01-30 11:51:59 -08:00
ideapad-laptop.c ideapad-laptop: Change Lenovo Yoga 2 series rfkill handling 2015-03-02 15:04:45 +00:00
intel-rst.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
intel-smartconnect.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
intel_ips.c drivers/platform/x86/intel_ips: Convert to module_pci_driver 2013-07-10 15:42:47 -04:00
intel_ips.h drm/i915, intel_ips: When i915 loads after IPS, make IPS relink to i915. 2010-12-23 09:51:36 +00:00
intel_menlow.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
intel_mid_powerbtn.c platform:x86: Remove OOM message after input_allocate_device 2013-11-20 18:51:03 -05:00
intel_mid_thermal.c ix86/mid/thermal: Introduce the use of the managed version of kzalloc 2014-06-10 19:11:07 -04:00
intel_oaktrail.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
intel_pmic_gpio.c platform-drivers-x86: intel_pmic_gpio: Fix off-by-one valid offset range check 2014-06-09 17:39:58 -04:00
intel_scu_ipc.c ipc: add intel-mid's pci id macros 2014-01-21 08:47:15 -05:00
intel_scu_ipcutil.c intel_scu_ipc: Remove Moorestown support 2012-03-20 12:02:02 -04:00
Kconfig platform: x86: dell-smo8800: Dell Latitude freefall driver (ACPI SMO8800/SMO8810) 2014-06-10 19:11:10 -04:00
Makefile platform: x86: dell-smo8800: Dell Latitude freefall driver (ACPI SMO8800/SMO8810) 2014-06-10 19:11:10 -04:00
msi-laptop.c x86: msi-laptop: fix memleak 2013-07-10 15:42:40 -04:00
msi-wmi.c msi-wmi: Add MSI Wind support 2013-02-24 14:49:54 -08:00
mxm-wmi.c Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 2014-01-29 18:54:05 -08:00
panasonic-laptop.c Fix sleep / suspend keys for Toughbook CF-51 2014-04-06 12:58:11 -04:00
pvpanic.c pvpanic: Set high notifier priority 2014-06-09 17:45:36 -04:00
samsung-laptop.c samsung-laptop: Add use_native_backlight quirk, and enable it on some models 2015-02-24 10:01:08 +00:00
samsung-q10.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
sony-laptop.c sony-laptop: remove useless sony-laptop versioning 2014-04-06 12:58:13 -04:00
tc1100-wmi.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
thinkpad_acpi.c thinkpad_acpi: Add mappings for F9 - F12 hotkeys on X240 / T440 / T540 2014-06-10 19:11:10 -04:00
topstar-laptop.c platform:x86: Remove OOM message after input_allocate_device 2013-11-20 18:51:03 -05:00
toshiba_acpi.c toshiba_acpi: Add alternative keymap support for Satellite M840 2014-06-09 17:39:58 -04:00
toshiba_bluetooth.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
wmi.c Merge branch 'acpi-cleanup' 2014-01-12 23:44:09 +01:00
xo1-rfkill.c Drivers: platform: x86: remove __dev* attributes. 2013-01-03 15:57:03 -08:00
xo15-ebook.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00