linux-hardened/drivers/gpu/drm/radeon
Lukas Wunner 156d7d4120 vga_switcheroo: Add handler flags infrastructure
Allow handlers to declare their capabilities and allow clients to
obtain that information. So far we have these use cases:

* If the handler is able to switch DDC separately, clients need to
  probe EDID with drm_get_edid_switcheroo(). We should allow them
  to detect a capable handler to ensure this function only gets
  called when needed.

* Likewise if the handler is unable to switch AUX separately, the active
  client needs to communicate link training parameters to the inactive
  client, which may then skip the AUX handshake and set up its output
  with these pre-calibrated values (DisplayPort specification v1.1a,
  section 2.5.3.3). Clients need a way to recognize such a situation.

The flags for the radeon_atpx_handler and amdgpu_atpx_handler are
initially set to 0, this can later on be amended with
  handler_flags |= VGA_SWITCHEROO_CAN_SWITCH_DDC;
when a ->switch_ddc callback is added.

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>
Reviewed-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/2b0d93ed6e511ca09e95e45e0b35627f330fabce.1452525860.git.lukas@wunner.de
2016-02-09 11:21:07 +01:00
..
reg_srcs drm/radeon: allow geom rings to be setup on r600/r700 (v2) 2014-02-06 12:13:52 +10:00
.gitignore
atom-bits.h
atom-names.h
atom-types.h
atom.c drm/radeon: add locking around atombios scratch space usage 2014-11-11 17:22:26 -05:00
atom.h drm/radeon: add locking around atombios scratch space usage 2014-11-11 17:22:26 -05:00
atombios.h drm/radeon: fix comment 2015-05-26 15:09:03 +02:00
atombios_crtc.c drm: Move LEAVE/ENTER_ATOMIC_MODESET to fbdev helpers 2015-12-08 16:07:51 +01:00
atombios_dp.c drm/radeon: fix dp link rate selection (v2) 2015-12-21 16:39:02 -05:00
atombios_encoders.c drm: Pass 'name' to drm_encoder_init() 2015-12-11 09:13:20 +01:00
atombios_i2c.c drm/radeon: add locking around atombios scratch space usage 2014-11-11 17:22:26 -05:00
avivod.h
btc_dpm.c drm/radeon: remove some rv7xx leftovers from btc dpm code 2015-03-19 12:26:31 -04:00
btc_dpm.h Revert "drm/radeon: drop btc_get_max_clock_from_voltage_dependency_table" 2014-10-13 11:34:13 -04:00
btcd.h drm/radeon/dpm: use the driver state for dpm debugfs 2014-02-06 12:22:46 -05:00
cayman_blit_shaders.c drm: fix trivial typos 2015-10-21 11:35:11 -04:00
cayman_blit_shaders.h
ci_dpm.c drm/radeon/ci: silence a harmless PCC warning 2015-07-16 12:39:43 -04:00
ci_dpm.h drm/radeon: bind fan control on CI cards to hwmon interface (v2) 2015-01-22 10:38:48 -05:00
ci_smc.c drm/radeon: comment out some currently unused ci dpm code 2015-01-22 10:38:53 -05:00
cik.c Backmerge drm-fixes merge into Linus's tree into drm-next. 2015-12-24 08:08:47 +10:00
cik_blit_shaders.c
cik_blit_shaders.h
cik_reg.h drm/radeon: Add H/W debugger kfd->kgd functions 2015-06-03 11:31:12 +03:00
cik_sdma.c drm/radeon: SDMA fix hibernation (CI GPU family). 2015-06-29 11:21:41 -04:00
cikd.h drm/radeon: Add ATC VMID<-->PASID functions to kfd->kgd 2015-06-03 11:34:46 +03:00
clearstate_cayman.h drm/radeon: use NULL instead of zero in clearstate headers 2014-06-02 10:25:07 -04:00
clearstate_ci.h drm/radeon: use NULL instead of zero in clearstate headers 2014-06-02 10:25:07 -04:00
clearstate_defs.h
clearstate_evergreen.h
clearstate_si.h drm/radeon: use NULL instead of zero in clearstate headers 2014-06-02 10:25:07 -04:00
cypress_dpm.c drm/radeon: comment out some currently unused eg dpm code 2015-01-22 10:38:58 -05:00
cypress_dpm.h
dce3_1_afmt.c drm/radeon: use proper ACR regisiter for DCE3.2 2015-06-01 23:16:22 -04:00
dce6_afmt.c drm/radeon: Add a common function for DFS handling 2016-01-27 12:48:32 -05:00
evergreen.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-18 17:29:47 -05:00
evergreen_blit_shaders.c drm: fix trivial typos 2015-10-21 11:35:11 -04:00
evergreen_blit_shaders.h
evergreen_cs.c drm/radeon: remove volatile qualifier 2015-10-02 16:08:30 -04:00
evergreen_dma.c drm/radeon: split semaphore and sync object handling v2 2014-11-20 13:00:16 -05:00
evergreen_hdmi.c drm/radeon: fix DP audio support for APU with DCE4.1 display engine 2016-01-27 12:50:25 -05:00
evergreen_reg.h radeon/audio: enable DP audio 2015-01-22 10:42:19 -05:00
evergreen_smc.h drm/radeon/dpm: fix typo in EVERGREEN_SMC_FIRMWARE_HEADER_softRegisters 2014-03-06 16:46:58 -05:00
evergreend.h drm/radeon: fix DP audio support for APU with DCE4.1 display engine 2016-01-27 12:50:25 -05:00
Kconfig drm/radeon: remove UMS support 2015-12-02 12:45:54 -05:00
kv_dpm.c drm/radeon/kv: implement get_current_sclk/mclk 2015-03-19 12:26:36 -04:00
kv_dpm.h
kv_smc.c
Makefile drm/radeon: remove UMS support 2015-12-02 12:45:54 -05:00
mkregtable.c Replace mentions of "list_struct" to "list_head" 2014-11-20 14:45:15 +01:00
ni.c drm/radeon: disable vce init on cayman (v2) 2015-07-09 11:40:12 -04:00
ni_dma.c drm/radeon: Remove rdev->gart.pages_addr array 2015-01-22 11:48:03 -05:00
ni_dpm.c drm/radeon/ni: implement get_current_sclk/mclk 2015-03-19 12:26:32 -04:00
ni_dpm.h
ni_reg.h drm/radeon: add DisplayPort MST support (v2) 2015-03-19 12:26:51 -04:00
nid.h drm/radeon: implement tn_set_vce_clocks 2015-05-26 10:31:21 -04:00
nislands_smc.h
ObjectID.h
ppsmc.h drm/radeon/dpm: add thermal dpm support for CI 2014-11-20 13:00:10 -05:00
pptable.h drm/radeon/dpm: add smc fan control for CI (v2) 2014-11-20 13:00:10 -05:00
r100.c radeon: r100: Silence 'may be used uninitialized' warnings 2016-01-08 15:39:28 -05:00
r100_track.h
r100d.h
r200.c drm/radeon: rename radeon_cs_reloc to radeon_bo_list 2014-12-03 14:26:47 -05:00
r300.c radeon: Deinline indirect register accessor functions 2015-05-28 14:52:40 -04:00
r300_reg.h
r300d.h
r420.c drm/radeon: Only flush HDP cache for indirect buffers from userspace 2014-08-18 17:09:44 -04:00
r420d.h
r500_reg.h drm/radeon: Bypass hw lut's for > 8 bpc framebuffer scanout. 2014-06-13 12:22:30 -04:00
r520.c drm/radeon: resume old pm late 2014-03-06 16:46:56 -05:00
r520d.h
r600.c drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt 2015-12-04 13:09:12 -05:00
r600_blit_shaders.c drm: fix trivial typos 2015-10-21 11:35:11 -04:00
r600_blit_shaders.h
r600_cs.c drm/radeon: remove UMS support 2015-12-02 12:45:54 -05:00
r600_dma.c Linux 3.18-rc7 2014-12-02 10:58:33 +10:00
r600_dpm.c drm/radeon: use drm_mode_vrefresh() rather than mode->vrefresh 2015-02-25 16:06:05 -05:00
r600_dpm.h drm/radeon/dpm: add smc fan control for SI (v2) 2014-11-20 13:00:09 -05:00
r600_hdmi.c drm/radeon: fix ordering of AVI packet setup 2015-04-27 09:54:52 -04:00
r600_reg.h
r600d.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-10-14 09:39:08 +02:00
radeon.h drm/radeon: cleaned up VCO output settings for DP audio 2016-01-27 12:47:28 -05:00
radeon_acpi.c drm/radeon: Drop unnecessary #include <linux/vga_switcheroo.h> 2015-10-14 16:16:37 -04:00
radeon_acpi.h
radeon_agp.c add blacklist for thinkpad T40p 2015-11-30 14:44:34 -05:00
radeon_asic.c drm/radeon: constify radeon_asic_ring structures 2015-12-02 12:45:56 -05:00
radeon_asic.h drm/radeon: add VCE 1.0 support v4 2015-05-26 10:31:23 -04:00
radeon_atombios.c drm/radeon: fix DP audio support for APU with DCE4.1 display engine 2016-01-27 12:50:25 -05:00
radeon_atpx_handler.c vga_switcheroo: Add handler flags infrastructure 2016-02-09 11:21:07 +01:00
radeon_audio.c drm/radeon: Add a common function for DFS handling 2016-01-27 12:48:32 -05:00
radeon_audio.h drm/radeon: Add a common function for DFS handling 2016-01-27 12:48:32 -05:00
radeon_benchmark.c drm/radeon: fix the crash in benchmark functions 2015-02-02 11:39:35 -05:00
radeon_bios.c drm/radeon: Drop unnecessary #include <linux/vga_switcheroo.h> 2015-10-14 16:16:37 -04:00
radeon_clocks.c
radeon_combios.c Add radeon suspend/resume quirk for HP Compaq dc5750. 2015-09-02 12:19:52 -04:00
radeon_connectors.c drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt 2015-12-04 13:09:12 -05:00
radeon_cs.c drm/radeon: Use drm_calloc_ab for CS relocs 2015-04-27 09:54:50 -04:00
radeon_cursor.c drm/radeon: Fold radeon_set_cursor() into radeon_show_cursor() 2015-07-09 11:40:02 -04:00
radeon_device.c drm/radeon: fix trivial typo in warning message 2016-01-08 15:39:29 -05:00
radeon_display.c drm/radeon: only init fbdev if we have connectors 2016-01-26 00:35:49 -05:00
radeon_dp_auxch.c drm/radeon/native: Send out the full AUX address 2015-08-31 11:38:30 -04:00
radeon_dp_mst.c Merge tag 'topic/drm-misc-2016-01-17' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-01-18 07:01:16 +10:00
radeon_drv.c drm/radeon: remove UMS support 2015-12-02 12:45:54 -05:00
radeon_drv.h drm/radeon: remove UMS support 2015-12-02 12:45:54 -05:00
radeon_encoders.c drm/radeon: move bl encoder assignment into bl init 2015-10-29 11:13:18 -04:00
radeon_family.h drm/radeon: add Mullins chip family 2014-05-06 12:19:57 +02:00
radeon_fb.c drm/radeon: Use unlocked gem unreferencing 2015-12-02 12:46:00 -05:00
radeon_fence.c drm/radeon: only increment sync_seq when a fence is really emitted 2015-12-18 17:29:49 -05:00
radeon_gart.c drm/radeon: Don't flush the GART TLB if rdev->gart.ptr == NULL 2015-07-16 12:39:37 -04:00
radeon_gem.c drm/radeon: Ensure radeon bo is unreserved in radeon_gem_va_ioctl 2016-01-25 10:57:17 -05:00
radeon_i2c.c drm/radeon/radeon_i2c: Remove unused function 2015-01-22 10:38:51 -05:00
radeon_ib.c drm/radeon: track VM update fences separately 2014-11-20 13:00:17 -05:00
radeon_ioc32.c drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
radeon_irq_kms.c drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt 2015-12-04 13:09:12 -05:00
radeon_kfd.c drm/radeon: Modify kgd_engine_type enum to match CZ 2015-07-20 09:16:47 +03:00
radeon_kfd.h drm/radeon: Don't use relative paths in #include 2015-01-02 23:32:49 +02:00
radeon_kms.c drm/radeon: Drop unnecessary unsigned int < 0 check 2016-01-04 12:30:46 -05:00
radeon_legacy_crtc.c drm: Move LEAVE/ENTER_ATOMIC_MODESET to fbdev helpers 2015-12-08 16:07:51 +01:00
radeon_legacy_encoders.c drm: Pass 'name' to drm_encoder_init() 2015-12-11 09:13:20 +01:00
radeon_legacy_tv.c
radeon_mn.c drm/radeon: fix userptr lockup 2015-05-07 11:00:15 -04:00
radeon_mode.h Merge branch 'drm-next-4.5' of git://people.freedesktop.org/~agd5f/linux into drm-next 2015-12-23 14:15:26 +10:00
radeon_object.c drm/radeon: mask out WC from BO on unsupported arches 2016-02-02 10:09:05 -05:00
radeon_object.h gpu: drm: radeon: radeon_object: Remove unused function 2015-01-22 10:38:52 -05:00
radeon_pm.c drm/radeon: use kobj_to_dev() 2016-01-13 12:15:53 -05:00
radeon_prime.c drm/radeon: export reservation_object from dmabuf to ttm 2014-10-03 09:19:17 -04:00
radeon_reg.h
radeon_ring.c drm/radeon: always dump the ring content if it's available 2015-03-27 10:17:43 -04:00
radeon_sa.c drm/radeon: export reservation_object from dmabuf to ttm 2014-10-03 09:19:17 -04:00
radeon_semaphore.c drm/radeon: split semaphore and sync object handling v2 2014-11-20 13:00:16 -05:00
radeon_sync.c drm/radeon: track VM update fences separately 2014-11-20 13:00:17 -05:00
radeon_test.c drm/radeon: fix the crash in test functions 2015-02-02 11:39:36 -05:00
radeon_trace.h tracing/drm: Remove unused TRACE_SYSTEM_STRING define 2015-04-07 12:29:23 -04:00
radeon_trace_points.c
radeon_ttm.c drm: Remove __OS_HAS_AGP 2015-09-30 10:44:48 +02:00
radeon_ucode.c drm/radeon: add new firmware header definitions (v3) 2014-08-05 08:53:22 -04:00
radeon_ucode.h drm/radeon: add new firmware header definitions (v3) 2014-08-05 08:53:22 -04:00
radeon_uvd.c drm/radeon: stop trying to suspend UVD sessions 2015-05-07 11:00:18 -04:00
radeon_vce.c radeon: Fix VCE IB test on Big-Endian systems 2015-12-09 00:23:56 -05:00
radeon_vm.c drm/radeon: Fix off-by-one errors in radeon_vm_bo_set_addr 2015-12-21 16:39:14 -05:00
rs100d.h
rs400.c drm/radeon: Split off gart_get_page_entry ASIC hook from set_page_entry 2015-01-22 11:46:17 -05:00
rs400d.h
rs600.c drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt 2015-12-04 13:09:12 -05:00
rs600d.h
rs690.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-18 17:29:47 -05:00
rs690d.h
rs780_dpm.c drm/radeon/rs780: implement get_current_sclk/mclk 2015-03-19 12:26:29 -04:00
rs780_dpm.h
rs780d.h
rv6xx_dpm.c drm/radeon/rv6xx: implement get_current_sclk/mclk 2015-03-19 12:26:29 -04:00
rv6xx_dpm.h
rv6xxd.h
rv200d.h
rv250d.h
rv350d.h
rv515.c drm/radeon: make sure mode init is complete in bandwidth_update 2014-11-06 15:42:44 -05:00
rv515d.h
rv730_dpm.c drm/radeon: make some dpm errors debug only 2015-11-25 11:28:42 -05:00
rv730d.h
rv740_dpm.c
rv740d.h
rv770.c drm/radeon: partially revert "fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling" 2015-05-28 09:54:43 -04:00
rv770_dma.c drm/radeon: split semaphore and sync object handling v2 2014-11-20 13:00:16 -05:00
rv770_dpm.c drm/radeon: make some dpm errors debug only 2015-11-25 11:28:42 -05:00
rv770_dpm.h drm/radeon: comment out some currently unused 7xx dpm code 2015-01-22 10:38:58 -05:00
rv770_smc.c
rv770_smc.h
rv770d.h drm/radeon: disable semaphores for UVD V1 (v2) 2015-05-04 15:03:56 -04:00
si.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-18 17:29:47 -05:00
si_blit_shaders.c
si_blit_shaders.h
si_dma.c drm/radeon: Remove rdev->gart.pages_addr array 2015-01-22 11:48:03 -05:00
si_dpm.c drm/radeon: fix quirk for MSI R7 370 Armor 2X 2015-11-16 11:05:54 -05:00
si_dpm.h drm/radeon: bind fan control on SI cards to hwmon interface 2015-01-22 10:38:48 -05:00
si_reg.h
si_smc.c drm/radeon/si: Add support for new ucode format (v3) 2014-08-05 08:53:23 -04:00
sid.h drm/radeon: Fix "slow" audio over DP on DCE8+ 2015-12-18 17:29:46 -05:00
sislands_smc.h drm/radeon/dpm: add smc fan control for SI (v2) 2014-11-20 13:00:09 -05:00
smu7.h
smu7_discrete.h drm/radeon/dpm: add smc fan control for CI (v2) 2014-11-20 13:00:10 -05:00
smu7_fusion.h
sumo_dpm.c drm/radeon/sumo: implement get_current_sclk/mclk 2015-03-19 12:26:34 -04:00
sumo_dpm.h drm/radeon: comment out some currently unused sumo dpm code 2015-01-22 10:38:57 -05:00
sumo_smc.c drm/radeon/dpm: make some functions static for sumo 2014-01-07 12:55:50 -05:00
sumod.h
trinity_dpm.c drm/radeon/tn/si: enable/disable vce cg when encoding v2 2015-05-26 10:31:25 -04:00
trinity_dpm.h
trinity_smc.c drm/radeon/dpm: make some functions static for TN 2014-01-07 12:55:57 -05:00
trinityd.h
uvd_v1_0.c drm/radeon: disable semaphores for UVD V1 (v2) 2015-05-04 15:03:56 -04:00
uvd_v2_2.c drm/radeon: disable semaphores for UVD V1 (v2) 2015-05-04 15:03:56 -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
vce_v1_0.c drm/radeon: properly byte swap vce firmware setup 2016-01-22 10:50:24 -05:00
vce_v2_0.c drm/radeon: rework VCE FW size calculation 2015-05-26 10:31:20 -04:00