2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-28 15:13:55 +08:00
linux-next/drivers/gpu/drm/radeon
Rafael J. Wysocki f244d8b623 ACPIPHP / radeon / nouveau: Fix VGA switcheroo problem related to hotplug
The changes in the ACPI-based PCI hotplug (ACPIPHP) subsystem made
during the 3.12 development cycle uncovered a problem with VGA
switcheroo that on some systems, when the device-specific method
(ATPX in the radeon case, _DSM in the nouveau case) is used to turn
off the discrete graphics, the BIOS generates ACPI hotplug events for
that device and those events cause ACPIPHP to attempt to remove the
device from the system (they are events for a device that was present
previously and is not present any more, so that's what should be done
according to the spec).  Then, the system stops functioning correctly.

Since the hotplug events in question were simply silently ignored
previously, the least intrusive way to address that problem is to
make ACPIPHP ignore them again.  For this purpose, introduce a new
ACPI device flag, no_hotplug, and modify ACPIPHP to ignore hotplug
events for PCI devices whose ACPI companions have that flag set.
Next, make the radeon and nouveau switcheroo detection code set the
no_hotplug flag for the discrete graphics' ACPI companion.

Fixes: bbd34fcdd1 (ACPI / hotplug / PCI: Register all devices under the given bridge)
References: https://bugzilla.kernel.org/show_bug.cgi?id=61891
References: https://bugzilla.kernel.org/show_bug.cgi?id=64891
Reported-and-tested-by: Mike Lothian <mike@fireburn.co.uk>
Reported-and-tested-by: <madcatx@atlas.cz>
Reported-and-tested-by: Joaquín Aramendía <samsagax@gmail.com>
Cc: Alex Deucher <alexdeucher@gmail.com>
Cc: Dave Airlie <airlied@linux.ie>
Cc: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: 3.12+ <stable@vger.kernel.org> # 3.12+
2013-12-31 13:39:42 +01:00
..
reg_srcs drm/radeon: add WAIT_UNTIL to the non-VM safe regs list for cayman/TN 2013-01-27 22:38:44 -05:00
.gitignore
atom-bits.h
atom-names.h
atom-types.h
atom.c drm/radeon/atom: initialize more atom interpretor elements to 0 2013-07-30 17:24:12 -04:00
atom.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
atombios_crtc.c drm/radeon: modesetting updates for hawaii 2013-11-08 12:33:46 -05:00
atombios_dp.c drm/radeon/dp: use drm_dp_enhanced_frame_cap() 2013-10-09 18:17:10 +10:00
atombios_encoders.c Merge tag 'drm-intel-fixes-2013-11-07' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-11-08 16:34:39 +10:00
atombios_i2c.c radeon/i2c: do not count reg index in number of i2c byte we are writing. 2013-11-15 15:29:32 -05:00
atombios.h drm/radeon: atombios.h updates for hawaii 2013-11-08 12:33:45 -05:00
avivod.h
btc_dpm.c drm/radeon/dpm/btc: off by one in btc_set_mc_special_registers() 2013-10-09 17:13:47 -04:00
btc_dpm.h drm/radeon/dpm: fetch the max clk from voltage dep tables helper 2013-09-23 10:29:51 -04:00
btcd.h drm/radeon/kms: add dpm support for btc (v3) 2013-06-27 19:15:44 -04:00
cayman_blit_shaders.c drm/radeon/kms: remove r6xx+ blit copy routines 2013-08-30 16:29:57 -04:00
cayman_blit_shaders.h
ci_dpm.c drm/radeon: add hawaii dpm support 2013-11-08 12:33:44 -05:00
ci_dpm.h drm/radeon/dpm: track uvd gated state for ci 2013-08-30 16:31:06 -04:00
ci_smc.c drm/radeon: add hawaii dpm support 2013-11-08 12:33:44 -05:00
cik_blit_shaders.c drm/radeon: Add CP init for CIK (v7) 2013-06-25 17:50:28 -04:00
cik_blit_shaders.h drm/radeon: Add CP init for CIK (v7) 2013-06-25 17:50:28 -04:00
cik_reg.h drm/radeon: add indirect accessors for dift registers on CIK 2013-08-30 16:30:09 -04:00
cik_sdma.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
cik.c drm/radeon/cik: Add macrotile mode array query 2013-11-18 09:19:36 -05:00
cikd.h drm/radeon: update rb setup for hawaii 2013-11-08 12:33:42 -05:00
clearstate_cayman.h drm/radeon: convert SI,CIK to use sumo_rlc functions 2013-08-30 16:30:08 -04:00
clearstate_ci.h drm/radeon: implement clock and power gating for CIK (v3) 2013-08-30 16:30:08 -04:00
clearstate_defs.h drm/radeon: properly set up the RLC on ON/LN/TN (v3) 2013-06-27 10:49:18 -04:00
clearstate_evergreen.h drm/radeon: convert SI,CIK to use sumo_rlc functions 2013-08-30 16:30:08 -04:00
clearstate_si.h drm/radeon: add clearstate init for verde power gating 2013-06-27 19:16:31 -04:00
cypress_dpm.c drm/radeon: cypress_dpm: Fix unused variable warning when CONFIG_ACPI=n 2013-11-15 15:29:31 -05:00
cypress_dpm.h drm/radeon/dpm: add pre/post_set_power_state callback (BTC) 2013-06-27 19:16:19 -04:00
dce6_afmt.c Revert "drm/radeon/audio: don't set speaker allocation on DCE4+" 2013-11-08 13:07:51 -05:00
evergreen_blit_shaders.c drm/radeon/kms: remove r6xx+ blit copy routines 2013-08-30 16:29:57 -04:00
evergreen_blit_shaders.h
evergreen_cs.c drm/radeon: don't check mipmap alignment if MIP_ADDRESS is FMASK 2013-03-07 12:58:59 -05:00
evergreen_dma.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
evergreen_hdmi.c Revert "drm/radeon/audio: don't set speaker allocation on DCE4+" 2013-11-08 13:07:51 -05:00
evergreen_reg.h drm/radeon: add accessors of pif_phy indirect register space 2013-06-27 19:16:26 -04:00
evergreen_smc.h drm/radeon/kms: add dpm support for evergreen (v4) 2013-06-27 19:15:22 -04:00
evergreen.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2013-11-15 14:19:54 +09:00
evergreend.h Merge tag 'drm-intel-fixes-2013-11-07' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-11-08 16:34:39 +10:00
Kconfig drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05:00
kv_dpm.c drm/radeon: disable bapm on KB 2013-10-23 16:25:18 -04:00
kv_dpm.h drm/radeon/dpm: handle bapm on kb/kv 2013-09-11 11:44:38 -04:00
kv_smc.c drm/radeon/dpm: handle bapm on kb/kv 2013-09-11 11:44:38 -04:00
Makefile drm/radeon: add audio support for DCE6/8 GPUs (v12) 2013-08-30 16:30:45 -04:00
mkregtable.c radeon: remove redundant __list_for_each definition from mkregtable.c 2013-07-03 16:07:43 -07:00
ni_dma.c drm/radeon: drop CP page table updates & cleanup v2 2013-11-01 15:25:52 -04:00
ni_dpm.c drm: radeon: ni_dpm: Fix unused variable warning when CONFIG_ACPI=n 2013-11-15 15:29:31 -05:00
ni_dpm.h drm/radeon/dpm: implement vblank_too_short callback for si 2013-07-08 17:41:11 -04:00
ni_reg.h
ni.c Merge tag 'drm-intel-fixes-2013-11-07' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-11-08 16:34:39 +10:00
nid.h drm/radeon: add fault decode function for cayman/TN (v2) 2013-07-14 10:11:28 -04:00
nislands_smc.h drm/radeon/kms: add dpm support for cayman (v5) 2013-06-27 19:16:10 -04:00
ObjectID.h drm/radeon: upstream ObjectID.h updates (v2) 2013-06-26 16:11:34 -04:00
ppsmc.h drm/radeon/dpm: handle bapm on trinity 2013-09-11 11:44:37 -04:00
pptable.h drm/radeon: switch to pptable.h 2013-08-30 16:30:11 -04:00
r100_track.h drm/radeon: use common next_reloc function 2013-01-31 16:24:45 -05:00
r100.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
r100d.h drm/radeon: consolidate redundant macros and constants 2013-01-31 16:24:46 -05:00
r200.c drm/radeon: use common next_reloc function 2013-01-31 16:24:45 -05:00
r300_cmdbuf.c drm/radeon: check incoming cliprects pointer 2013-05-13 15:23:34 +10:00
r300_reg.h
r300.c Docs: Comment: Fixed egregious typos 2013-08-20 12:44:51 +02:00
r300d.h drm/radeon: consolidate redundant macros and constants 2013-01-31 16:24:46 -05:00
r420.c drm/radeon: add spinlocks for indirect register accesss 2013-09-11 11:44:29 -04:00
r420d.h
r500_reg.h drm/radeon: disable the crtcs in mc_stop (r5xx-r7xx) (v2) 2013-04-22 10:39:09 -04:00
r520.c radeon: Fix system hang issue when using KMS with older cards 2013-06-03 10:17:54 -04:00
r520d.h
r600_audio.c drm/radeon: add audio support for DCE6/8 GPUs (v12) 2013-08-30 16:30:45 -04:00
r600_blit_shaders.c
r600_blit_shaders.h drm/radeon/kms: remove r6xx+ blit copy routines 2013-08-30 16:29:57 -04:00
r600_blit.c drm/radeon/kms: remove r6xx+ blit copy routines 2013-08-30 16:29:57 -04:00
r600_cp.c drm/radeon: s/drm_order/order_base_2/ 2013-07-23 20:14:24 +10:00
r600_cs.c drm/radeon: Return -ENOENT when a mode object can't be found 2013-11-06 13:25:20 +10:00
r600_dma.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
r600_dpm.c drm/radeon: fix missed variable sized access 2013-09-23 10:29:50 -04:00
r600_dpm.h drm/radeon/dpm: add helper to fetch the vrefresh of the current mode 2013-08-30 16:30:27 -04:00
r600_hdmi.c drm/radeon/audio: improve ACR calculation 2013-11-08 13:06:33 -05:00
r600_reg.h drm/radeon: add indirect accessors for UVD CTX registers 2013-06-27 19:16:30 -04:00
r600.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
r600d.h Merge tag 'drm-intel-fixes-2013-11-07' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-11-08 16:34:39 +10:00
radeon_acpi.c ACPI: Eliminate the DEVICE_ACPI_HANDLE() macro 2013-11-14 23:17:21 +01:00
radeon_acpi.h drm/radeon: implement handler for ACPI event 2012-09-20 13:10:36 -04:00
radeon_agp.c radeon: add AGPMode 1 quirk for RV250 2012-11-20 11:47:32 -05:00
radeon_asic.c drm/radeon: hook up backlight functions for CI and KV family. 2013-11-19 15:57:29 -05:00
radeon_asic.h drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
radeon_atombios.c drm/radeon: additional gcc fixes for radeon_atombios.c 2013-09-20 14:28:15 -04:00
radeon_atpx_handler.c ACPIPHP / radeon / nouveau: Fix VGA switcheroo problem related to hotplug 2013-12-31 13:39:42 +01:00
radeon_benchmark.c drm/radeon/benchmark: allow same domains for dma copy 2013-03-15 18:47:18 -04:00
radeon_bios.c More ACPI and power management updates for 3.13-rc1 2013-11-20 13:25:04 -08:00
radeon_clocks.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
radeon_combios.c drm/radeon: fix combios tables on older cards 2013-07-22 15:57:14 -04:00
radeon_connectors.c drm/radeon: fix mismerge of drm-next with 3.12 2013-11-08 13:03:47 -05:00
radeon_cp.c drm/radeon: s/drm_order/order_base_2/ 2013-07-23 20:14:24 +10:00
radeon_cs.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
radeon_cursor.c drm/radeon/cik: add hw cursor support (v2) 2013-06-26 16:11:38 -04:00
radeon_device.c drm/radeon: use a single doorbell for cik kms compute 2013-11-15 15:56:22 -05:00
radeon_display.c drm/radeon: Push get_scanout_position() timestamping into kms driver. 2013-11-06 11:53:42 +10:00
radeon_drv.c drm/radeon/cik: Add macrotile mode array query 2013-11-18 09:19:36 -05:00
radeon_drv.h drm/radeon: add runtime PM support (v2) 2013-11-01 12:43:14 -04:00
radeon_encoders.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
radeon_family.h drm/radeon: add Hawaii chip family 2013-11-08 12:33:39 -05:00
radeon_fb.c treewide: Fix typo in printk 2013-05-28 12:02:13 +02:00
radeon_fence.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
radeon_gart.c drm/radeon/vm: don't attempt to update ptes if ib allocation fails 2013-11-15 15:56:22 -05:00
radeon_gem.c drm: kill ->gem_init_object() and friends 2013-10-09 14:38:02 +10:00
radeon_i2c.c drm/radeon: Properly handle DDC probe for DP bridges 2013-01-03 15:04:38 -05:00
radeon_ioc32.c drm/radeon: add runtime PM support (v2) 2013-11-01 12:43:14 -04:00
radeon_irq_kms.c drm/radeon: add runtime PM support (v2) 2013-11-01 12:43:14 -04:00
radeon_irq.c drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05:00
radeon_kms.c drm/radeon/cik: Add macrotile mode array query 2013-11-18 09:19:36 -05:00
radeon_legacy_crtc.c radeon: workaround pinning failure on low ram gpu 2013-11-15 15:29:33 -05:00
radeon_legacy_encoders.c drm/sysfs: sort out minor and connector device object lifetimes. 2013-10-22 09:37:40 +01:00
radeon_legacy_tv.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
radeon_mem.c drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05:00
radeon_mode.h drm/radeon: Push get_scanout_position() timestamping into kms driver. 2013-11-06 11:53:42 +10:00
radeon_object.c drm/radeon: remove stale gem->driver_private access 2013-08-19 09:34:47 +10:00
radeon_object.h drm/ttm: convert to unified vma offset manager 2013-07-25 20:47:07 +10:00
radeon_pm.c drm/radeon: enable DPM by default in TN asics 2013-11-15 15:57:38 -05:00
radeon_prime.c drm/radeon: remove stale gem->driver_private access 2013-08-19 09:34:47 +10:00
radeon_reg.h drm/radeon/cik: add hw cursor support (v2) 2013-06-26 16:11:38 -04:00
radeon_ring.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
radeon_sa.c drm/radeon: allow selection of alignment in the sub-allocator 2013-07-14 10:11:31 -04:00
radeon_semaphore.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
radeon_state.c drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05:00
radeon_test.c drm/radeon: forever loop on error in radeon_do_test_moves() 2013-10-09 17:13:47 -04:00
radeon_trace_points.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
radeon_trace.h drm/radeon: add semaphore trace point 2013-11-15 15:56:02 -05:00
radeon_ttm.c drm: verify vma access in TTM+GEM drivers 2013-08-27 11:54:58 +10:00
radeon_ucode.h drm/radeon: update firmware loading for hawaii 2013-11-08 12:33:43 -05:00
radeon_uvd.c drm/radeon/cik: add hawaii UVD support 2013-11-08 12:33:43 -05:00
radeon.h drm/radeon/cik: Add macrotile mode array query 2013-11-18 09:19:36 -05:00
rs100d.h
rs400.c drm/radeon: add spinlocks for indirect register accesss 2013-09-11 11:44:29 -04:00
rs400d.h
rs600.c drm/radeon: add a connector property for dither 2013-11-01 12:43:13 -04:00
rs600d.h
rs690.c drm/radeon: fix-up some float to fixed conversion thinkos 2013-11-08 12:33:38 -05:00
rs690d.h drm/radeon: Use direct mapping for fast fb access on RS690 2013-04-09 10:31:31 -04:00
rs780_dpm.c drm/radeon/dpm/rs780: fix force_performance state for same sclks 2013-09-15 20:27:51 -04:00
rs780_dpm.h drm/radeon/kms: add dpm support for rs780/rs880 2013-06-27 10:49:25 -04:00
rs780d.h drm/radeon/dpm: add debugfs support for RS780/RS880 (v3) 2013-07-17 16:47:52 -04:00
rv6xx_dpm.c drm/radeon/dpm: cleanup a type issue with rv6xx_clocks_per_unit() 2013-11-01 12:43:16 -04:00
rv6xx_dpm.h drm/radeon/kms: add dpm support for rv6xx (v3) 2013-06-27 10:50:08 -04:00
rv6xxd.h drm/radeon/kms: add dpm support for rv6xx (v3) 2013-06-27 10:50:08 -04:00
rv200d.h
rv250d.h
rv350d.h
rv515.c drm/radeon: fix-up some float to fixed conversion thinkos 2013-11-08 12:33:38 -05:00
rv515d.h drm/radeon: consolidate redundant macros and constants 2013-01-31 16:24:46 -05:00
rv730_dpm.c drm/radeon/kms: add dpm support for rv7xx (v4) 2013-06-27 19:14:59 -04:00
rv730d.h drm/radeon/kms: add dpm support for rv7xx (v4) 2013-06-27 19:14:59 -04:00
rv740_dpm.c drm/radeon/dpm/rv7xx: restructure code 2013-06-27 19:16:12 -04:00
rv740d.h drm/radeon/kms: add dpm support for rv7xx (v4) 2013-06-27 19:14:59 -04:00
rv770_dma.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
rv770_dpm.c drm/radeon/dpm: rework auto performance level enable 2013-09-15 20:27:52 -04:00
rv770_dpm.h drm/radeon/dpm: fix spread spectrum setup (v2) 2013-08-07 17:37:10 -04:00
rv770_smc.c drm/radeon: protect concurrent smc register access with a spinlock 2013-09-11 11:44:28 -04:00
rv770_smc.h drm/radeon: protect concurrent smc register access with a spinlock 2013-09-11 11:44:28 -04:00
rv770.c drm/radeon: fix init ordering for r600+ 2013-08-30 16:31:15 -04:00
rv770d.h drm/radeon: Fix hmdi typo 2013-09-15 20:27:51 -04:00
si_blit_shaders.c
si_blit_shaders.h
si_dma.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
si_dpm.c Merge tag 'drm-intel-fixes-2013-11-07' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-11-08 16:34:39 +10:00
si_dpm.h drm/radeon/kms: add dpm support for SI (v7) 2013-06-27 19:40:05 -04:00
si_reg.h drm/radeon: SI tiling fixes for display 2012-06-20 19:55:56 +01:00
si_smc.c drm/radeon: protect concurrent smc register access with a spinlock 2013-09-11 11:44:28 -04:00
si.c Merge tag 'drm-intel-fixes-2013-11-07' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-11-08 16:34:39 +10:00
sid.h Merge tag 'drm-intel-fixes-2013-11-07' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-11-08 16:34:39 +10:00
sislands_smc.h drm/radeon/kms: add dpm support for SI (v7) 2013-06-27 19:40:05 -04:00
smu7_discrete.h drm/radeon: add dpm support for CI dGPUs (v2) 2013-08-30 16:30:29 -04:00
smu7_fusion.h drm/radeon/kms: add dpm support for KB/KV 2013-08-30 16:30:28 -04:00
smu7.h drm/radeon/kms: add dpm support for KB/KV 2013-08-30 16:30:28 -04:00
sumo_dpm.c drm/radeon/dpm: rework auto performance level enable 2013-09-15 20:27:52 -04:00
sumo_dpm.h drm/radeon/sumo add helper to go from vid7 to vid2 2013-08-30 16:30:10 -04:00
sumo_smc.c drm/radeon/dpm: remove local sumo_get_xclk() 2013-06-27 19:16:22 -04:00
sumod.h drm/radeon: add dpm UVD handling for sumo asics 2013-06-27 19:15:48 -04:00
trinity_dpm.c drm/radeon: adjust TN dpm parameters for stability (v2) 2013-11-15 15:57:30 -05:00
trinity_dpm.h drm/radeon/dpm: add bapm callback for trinity 2013-09-11 11:44:39 -04:00
trinity_smc.c drm/radeon/dpm: handle bapm on trinity 2013-09-11 11:44:37 -04:00
trinityd.h drm/radeon: add dpm UVD handling for TN asics (v2) 2013-06-27 19:15:48 -04:00
uvd_v1_0.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
uvd_v2_2.c drm/radeon: separate UVD code v3 2013-08-30 16:30:42 -04:00
uvd_v3_1.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
uvd_v4_2.c drm/radeon: split out radeon_uvd_resume from uvd_v4_2_resume 2013-08-30 16:31:12 -04:00