linux/drivers/gpu/drm/nouveau
Lukas Wunner 98b3a3402e drm/nouveau: Defer probe if gmux is present but its driver isn't
gmux is a microcontroller built into dual GPU MacBook Pros.
On pre-retina MBPs, if we're the inactive GPU, we need apple-gmux
to temporarily switch DDC so that we can probe the panel's EDID.

The checks for CONFIG_VGA_ARB and CONFIG_VGA_SWITCHEROO are necessary
because if either of them is disabled but gmux is present, the driver
would never load, even if we're the active GPU. (vga_default_device()
would evaluate to NULL and vga_switcheroo_handler_flags() would
evaluate to 0.)

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=88861
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61115
Tested-by: Lukas Wunner <lukas@wunner.de>
    [MBP  9,1 2012  intel IVB + nvidia GK107  pre-retina  15"]
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/d9542ca5041178165d3ff286c90cc99634f7d2ce.1452525860.git.lukas@wunner.de
2016-02-09 11:21:12 +01:00
..
dispnv04 drm/nouveau: Constify function pointer structs 2015-12-15 13:47:45 +01:00
include drm/nouveau/perf: add fields for pci speed and width and use it for the pstates 2016-01-11 11:30:22 +10:00
nvif drm/nouveau/nvif: device time mthd 2015-08-28 12:40:33 +10:00
nvkm asm-generic changes for 4.5 2016-01-20 17:30:20 -08:00
Kbuild drm/nouveau/sysfs: remove pstate interface 2016-01-11 11:28:26 +10:00
Kconfig drm/nouveau: merge nouveau_platform.ko into nouveau.ko 2015-01-22 12:15:09 +10:00
nouveau_abi16.c drm/nouveau/nvif: modify nvif_unvers/nvif_unpack macros to be more obvious 2016-01-11 11:17:40 +10:00
nouveau_abi16.h drm/nouveau/abi16: implement limited interoperability with usif/nvif 2015-11-03 15:02:18 +10:00
nouveau_acpi.c vga_switcheroo: Add handler flags infrastructure 2016-02-09 11:21:07 +01:00
nouveau_acpi.h drm/nouveau/device: remove pci/platform_device from common struct 2015-08-28 12:40:49 +10:00
nouveau_backlight.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nouveau_bios.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nouveau_bios.h
nouveau_bo.c drm: Remove __OS_HAS_AGP 2015-09-30 10:44:48 +02:00
nouveau_bo.h drm/nouveau: finalise nvkm namespace switch (no binary change) 2015-01-22 12:18:07 +10:00
nouveau_chan.c drm/nouveau/nvif: split out ctxdma interface definitions 2016-01-11 11:17:40 +10:00
nouveau_chan.h drm/nouveau: remove unnecessary usage of object handles 2015-11-03 15:02:18 +10:00
nouveau_connector.c drm/nouveau: Switch DDC when reading the EDID 2016-02-09 11:21:10 +01:00
nouveau_connector.h drm/nouveau: finalise nvkm namespace switch (no binary change) 2015-01-22 12:18:07 +10:00
nouveau_crtc.h drm/nouveau: Use private save/restore hooks for CRTCs 2015-12-08 16:13:49 +01:00
nouveau_debugfs.c drm/nouveau/debugfs: add copy of sysfs pstate interface ported to debugfs 2016-01-11 11:28:25 +10:00
nouveau_debugfs.h drm: nouveau: fix nouveau_debugfs_init prototype 2016-01-14 07:56:41 +10:00
nouveau_display.c drm/nouveau/nvif: split out display interface definitions 2016-01-11 11:17:40 +10:00
nouveau_display.h drm: Pass the user drm_mode_fb_cmd2 as const to .fb_create() 2015-11-24 11:47:38 +01:00
nouveau_dma.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nouveau_dma.h drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nouveau_dp.c drm/nouveau/i2c: transition pad/ports away from being based on nvkm_object 2015-08-28 12:40:29 +10:00
nouveau_drm.c drm/nouveau: Defer probe if gmux is present but its driver isn't 2016-02-09 11:21:12 +01:00
nouveau_drm.h drm/nouveau/sysfs: remove pstate interface 2016-01-11 11:28:26 +10:00
nouveau_encoder.h drm: Constify drm_encoder_slave_funcs 2015-12-15 13:41:17 +01:00
nouveau_fbcon.c drm/nouveau/fbcon: take runpm reference when userspace has an open fd 2015-10-12 13:54:40 +10:00
nouveau_fbcon.h drm: Remove unused fbdev_list members 2015-11-24 11:41:52 +01:00
nouveau_fence.c drm/nouveau/nvif: split out fifo interface definitions 2016-01-11 11:17:40 +10:00
nouveau_fence.h drm/nouveau/sw: turn flip completion into an event 2015-08-28 12:40:38 +10:00
nouveau_gem.c drm/nouveau/abi16: remove unused argument from nouveau_abi16_get() 2015-11-03 15:02:18 +10:00
nouveau_gem.h drm: Pass dma-buf as argument to gem_prime_import_sg_table 2014-09-30 14:04:00 +02:00
nouveau_hwmon.c drm/nouveau/nouveau/perfmon: add interface files for current core voltage 2016-01-11 11:28:26 +10:00
nouveau_hwmon.h
nouveau_ioc32.c drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
nouveau_ioctl.h
nouveau_nvif.c drm/nouveau/client: tidy ctor/dtor interfaces 2015-08-28 12:40:30 +10:00
nouveau_platform.c drm/nouveau/gk20a: Add MODULE_FIRMWARE for gk20a 2016-01-11 11:17:40 +10:00
nouveau_platform.h drm/nouveau/tegra: merge platform setup from nouveau drm 2015-08-28 12:40:49 +10:00
nouveau_prime.c drm/nouveau: teach nouveau_bo_pin() how to force a contig vram allocation 2014-12-02 15:44:09 +10:00
nouveau_reg.h drm/nouveau/sw: rename from software (no binary change) 2015-01-22 12:17:47 +10:00
nouveau_sgdma.c drm/nouveau: finalise nvkm namespace switch (no binary change) 2015-01-22 12:18:07 +10:00
nouveau_ttm.c nouveau: don't call pci_dma_supported 2015-11-10 16:32:11 -08:00
nouveau_ttm.h
nouveau_usif.c drm/nouveau/nvif: modify nvif_unvers/nvif_unpack macros to be more obvious 2016-01-11 11:17:40 +10:00
nouveau_usif.h drm/nouveau: expose the full object/event interfaces to userspace 2014-08-10 05:28:18 +10:00
nouveau_vga.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nouveau_vga.h
nv04_fbcon.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nv04_fence.c drm/nouveau/nvif: split out nvsw interface definitons 2016-01-11 11:17:40 +10:00
nv10_fence.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nv10_fence.h drm/nouveau: remove as much direct use of core headers as possible 2014-08-10 05:13:16 +10:00
nv17_fence.c drm/nouveau/nvif: split out ctxdma interface definitions 2016-01-11 11:17:40 +10:00
nv50_display.c drm/nouveau/nvif: split out ctxdma interface definitions 2016-01-11 11:17:40 +10:00
nv50_display.h
nv50_fbcon.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nv50_fence.c drm/nouveau/nvif: split out ctxdma interface definitions 2016-01-11 11:17:40 +10:00
nv84_fence.c drm/nouveau/fifo: convert user classes to new-style nvkm_object 2015-08-28 12:40:40 +10:00
nvc0_fbcon.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nvc0_fence.c drm/nouveau: remove as much direct use of core headers as possible 2014-08-10 05:13:16 +10:00