1
0
Fork 0
alistair23-linux/drivers/gpu/drm/radeon
Alex Deucher 8a227555a8 drm/radeon/kms: enable UVD as needed (v9)
When using UVD, the driver must switch to a special UVD power
state.  In the CS ioctl, switch to the power state and schedule
work to change the power state back, when the work comes up,
check if uvd is still busy and if not, switch back to the user
state, otherwise, reschedule the work.

Note:  We really need some better way to decide when to
switch out of the uvd power state.  Switching power states
while playback is active make uvd angry.

V2: fix locking.

V3: switch from timer to delayed work

V4: check fence driver for UVD jobs, reduce timeout to
    1 second and rearm timeout on activity

v5: rebase on new dpm tree

v6: rebase on interim uvd on demand changes

v7: fix UVD when DPM is disabled

v8: unify non-DPM and DPM UVD handling

v9: remove leftover idle work struct

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Christian König <deathsimple@vodafone.de>
2013-06-27 19:15:49 -04: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
Kconfig drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05:00
Makefile drm/radeon/kms: add dpm support for trinity asics 2013-06-27 19:15:45 -04:00
ObjectID.h drm/radeon: upstream ObjectID.h updates (v2) 2013-06-26 16:11:34 -04:00
atom-bits.h
atom-names.h
atom-types.h
atom.c drm/radeon: fix endian bugs in atom_allocate_fb_scratch() 2013-05-02 10:01:45 -04:00
atom.h
atombios.h drm/radeon: atombios power table updates (v2) 2013-06-26 16:11:35 -04:00
atombios_crtc.c drm/radeon: use frac fb div on DCE8 2013-06-26 16:11:43 -04:00
atombios_dp.c drm: extract drm_dp_max_lane_count helper 2012-10-22 22:56:43 +02:00
atombios_encoders.c drm/radeon/atom: add support for new DVO tables 2013-06-26 16:11:41 -04:00
atombios_i2c.c
avivod.h
btc_dpm.c drm/radeon: add dpm UVD handling for evergreen/btc asics 2013-06-27 19:15:47 -04:00
btc_dpm.h drm/radeon: add dpm UVD handling for evergreen/btc asics 2013-06-27 19:15:47 -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
cayman_blit_shaders.h
cik.c drm/radeon: add cik tile mode array query 2013-06-27 10:49:12 -04: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/dce8: crtc_set_base updates 2013-06-26 16:11:39 -04:00
cikd.h drm/radeon/cik: Add support for compute queues (v4) 2013-06-27 10:49:08 -04:00
clearstate_cayman.h drm/radeon: properly set up the RLC on ON/LN/TN (v3) 2013-06-27 10:49:18 -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: properly set up the RLC on ON/LN/TN (v3) 2013-06-27 10:49:18 -04:00
cypress_dpm.c drm/radeon: add dpm UVD handling for evergreen/btc asics 2013-06-27 19:15:47 -04:00
cypress_dpm.h drm/radeon: add dpm UVD handling for evergreen/btc asics 2013-06-27 19:15:47 -04:00
evergreen.c drm/radeon/kms: add dpm support for trinity asics 2013-06-27 19:15:45 -04:00
evergreen_blit_kms.c
evergreen_blit_shaders.c
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_hdmi.c drm/radeon: fix AVI infoframe generation 2013-06-12 08:17:22 -04:00
evergreen_reg.h drm/radeon/evergreen: add indirect register accessors for CG registers 2013-06-27 10:49:15 -04:00
evergreen_smc.h drm/radeon/kms: add dpm support for evergreen (v4) 2013-06-27 19:15:22 -04:00
evergreend.h drm/radeon/kms: add dpm support for trinity asics 2013-06-27 19:15:45 -04:00
mkregtable.c
ni.c drm/radeon/kms: add dpm support for btc (v3) 2013-06-27 19:15:44 -04:00
ni_reg.h
nid.h drm/radeon: add support for thermal sensor on tn 2013-06-27 10:49:17 -04:00
ppsmc.h drm/radeon: add dpm UVD handling for TN asics (v2) 2013-06-27 19:15:48 -04:00
r100.c radeon: Fix system hang issue when using KMS with older cards 2013-06-03 10:17:54 -04:00
r100_track.h drm/radeon: use common next_reloc function 2013-01-31 16:24:45 -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.c radeon: Fix system hang issue when using KMS with older cards 2013-06-03 10:17:54 -04:00
r300_cmdbuf.c drm/radeon: check incoming cliprects pointer 2013-05-13 15:23:34 +10:00
r300_reg.h
r300d.h drm/radeon: consolidate redundant macros and constants 2013-01-31 16:24:46 -05:00
r420.c radeon: Fix system hang issue when using KMS with older cards 2013-06-03 10:17:54 -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.c drm/radeon/kms: add dpm support for evergreen (v4) 2013-06-27 19:15:22 -04:00
r600_audio.c drm/radeon: clean up audio dto programming 2013-04-23 18:03:53 -04:00
r600_blit.c drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05:00
r600_blit_kms.c drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05:00
r600_blit_shaders.c
r600_blit_shaders.h
r600_cp.c drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05:00
r600_cs.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2013-02-25 16:46:44 -08:00
r600_dpm.c drm/radeon/kms: add dpm support for rv6xx (v3) 2013-06-27 10:50:08 -04:00
r600_dpm.h drm/radeon/kms: add dpm support for rv6xx (v3) 2013-06-27 10:50:08 -04:00
r600_hdmi.c drm/radeon: fix AVI infoframe generation 2013-06-12 08:17:22 -04:00
r600_reg.h drm/radeon/kms: add accessors for RCU indirect space 2013-06-27 10:49:14 -04:00
r600d.h drm/radeon/kms: add dpm support for rv7xx (v4) 2013-06-27 19:14:59 -04:00
radeon.h drm/radeon/kms: enable UVD as needed (v9) 2013-06-27 19:15:49 -04:00
radeon_acpi.c drm/radeon/kms: add dpm support for evergreen (v4) 2013-06-27 19:15:22 -04:00
radeon_acpi.h
radeon_agp.c radeon: add AGPMode 1 quirk for RV250 2012-11-20 11:47:32 -05:00
radeon_asic.c drm/radeon/kms: add dpm support for trinity asics 2013-06-27 19:15:45 -04:00
radeon_asic.h drm/radeon/kms: add dpm support for trinity asics 2013-06-27 19:15:45 -04:00
radeon_atombios.c drm/radeon/kms: add dpm support for rv6xx (v3) 2013-06-27 10:50:08 -04:00
radeon_atpx_handler.c drm/radeon: properly validate the atpx interface 2013-02-20 08:51:21 -05:00
radeon_benchmark.c drm/radeon/benchmark: allow same domains for dma copy 2013-03-15 18:47:18 -04:00
radeon_bios.c Merge branch 'drm-radeon-sun-hainan' of git://people.freedesktop.org/~airlied/linux 2013-05-21 08:50:57 -07:00
radeon_blit_common.h
radeon_clocks.c
radeon_combios.c drm/radeon: add primary dac adj quirk for R200 board 2013-03-07 12:58:57 -05:00
radeon_connectors.c drm/radeon: Properly handle DDC probe for DP bridges 2013-01-03 15:04:38 -05:00
radeon_cp.c drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05:00
radeon_cs.c drm/radeon/kms: enable UVD as needed (v9) 2013-06-27 19:15:49 -04: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: implement simple doorbell page allocator 2013-06-27 10:49:07 -04:00
radeon_display.c drm/radeon/atom: add DCE8 encoder support 2013-06-26 16:11:40 -04:00
radeon_drv.c drm/radeon/kms: add common dpm infrastructure 2013-06-27 10:49:20 -04:00
radeon_drv.h drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05: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 CIK chip families 2013-06-25 17:50:22 -04:00
radeon_fb.c drm/<drivers>: simplify ->fb_probe callback 2013-02-14 00:07:58 +01:00
radeon_fence.c drm/radeon: fix write back suspend regression with uvd v2 2013-06-12 08:16:29 -04:00
radeon_gart.c drm/radeon: do not try to uselessly update virtual memory pagetable 2013-06-12 08:16:28 -04:00
radeon_gem.c radeon: add bo tracking debugfs 2013-05-02 10:09:47 -04:00
radeon_i2c.c drm/radeon: Properly handle DDC probe for DP bridges 2013-01-03 15:04:38 -05:00
radeon_ioc32.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
radeon_irq.c drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05:00
radeon_irq_kms.c drm/radeon/kms: add dpm support for rv6xx (v3) 2013-06-27 10:50:08 -04:00
radeon_kms.c drm/radeon: add cik tile mode array query 2013-06-27 10:49:12 -04:00
radeon_legacy_crtc.c drm/radeon: Remove superfluous variable 2013-05-20 10:44:57 -04:00
radeon_legacy_encoders.c radeon/kms: force rn50 chip to always report connected on analog output 2013-01-10 17:05:37 -05:00
radeon_legacy_tv.c
radeon_mem.c drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05:00
radeon_mode.h drm/radeon/kms: add dpm support for rv6xx (v3) 2013-06-27 10:50:08 -04:00
radeon_object.c drm/radeon: UVD bringup v8 2013-04-09 10:31:33 -04:00
radeon_object.h drm/radeon: UVD bringup v8 2013-04-09 10:31:33 -04:00
radeon_pm.c drm/radeon/kms: enable UVD as needed (v9) 2013-06-27 19:15:49 -04:00
radeon_prime.c drm/radeon: use prime helpers 2013-02-08 13:48:43 +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: use callbacks for ring pointer handling (v3) 2013-06-27 10:49:07 -04:00
radeon_sa.c drm/radeon: allocate SA bo in the requested domain 2013-05-02 10:01:47 -04:00
radeon_semaphore.c drm/radeon: improve semaphore debugging on lockup 2013-01-15 09:07:13 -05:00
radeon_state.c drm/radeon: Deprecate UMS support v2 2013-01-31 16:24:47 -05:00
radeon_test.c drm/radeon: UVD bringup v8 2013-04-09 10:31:33 -04:00
radeon_trace.h
radeon_trace_points.c
radeon_ttm.c drm/radeon: Fix VRAM size calculation for VRAM >= 4GB 2013-05-20 10:44:57 -04:00
radeon_ucode.h drm/radeon/kms: add dpm support for btc (v3) 2013-06-27 19:15:44 -04:00
radeon_uvd.c drm/radeon/kms: enable UVD as needed (v9) 2013-06-27 19:15:49 -04:00
rs100d.h
rs400.c radeon: Fix system hang issue when using KMS with older cards 2013-06-03 10:17:54 -04:00
rs400d.h
rs600.c radeon: Fix system hang issue when using KMS with older cards 2013-06-03 10:17:54 -04:00
rs600d.h
rs690.c drm/radeon/kms: fix up rs780/rs880 display watermark calc for dpm 2013-06-27 10:49:21 -04: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/kms: add dpm support for rv6xx (v3) 2013-06-27 10:50:08 -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/kms: add dpm support for rs780/rs880 2013-06-27 10:49:25 -04:00
rv6xx_dpm.c drm/radeon/kms: add dpm support for rv6xx (v3) 2013-06-27 10:50:08 -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/kms: fix up 6xx/7xx display watermark calc for dpm 2013-06-27 10:49:22 -04: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/kms: add dpm support for rv7xx (v4) 2013-06-27 19:14:59 -04:00
rv740d.h drm/radeon/kms: add dpm support for rv7xx (v4) 2013-06-27 19:14:59 -04:00
rv770.c radeon: Fix system hang issue when using KMS with older cards 2013-06-03 10:17:54 -04:00
rv770_dpm.c drm/radeon: add dpm UVD handling for evergreen/btc asics 2013-06-27 19:15:47 -04:00
rv770_dpm.h drm/radeon: add dpm UVD handling for evergreen/btc asics 2013-06-27 19:15:47 -04:00
rv770_smc.c drm/radeon/kms: add dpm support for btc (v3) 2013-06-27 19:15:44 -04:00
rv770_smc.h drm/radeon: add dpm UVD handling for evergreen/btc asics 2013-06-27 19:15:47 -04:00
rv770d.h drm/radeon/kms: add dpm support for rv7xx (v4) 2013-06-27 19:14:59 -04:00
si.c drm/radeon/kms: fix up dce6 display watermark calc for dpm 2013-06-27 10:49:23 -04:00
si_blit_shaders.c
si_blit_shaders.h
si_reg.h
sid.h drm/radeon: fill in GPU init for Hainan (v2) 2013-05-20 11:13:07 -04:00
sumo_dpm.c drm/radeon: add dpm UVD handling for sumo asics 2013-06-27 19:15:48 -04:00
sumo_dpm.h drm/radeon/kms: add dpm support for trinity asics 2013-06-27 19:15:45 -04:00
sumo_smc.c drm/radeon/kms: add dpm support for trinity asics 2013-06-27 19:15:45 -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: add dpm UVD handling for TN asics (v2) 2013-06-27 19:15:48 -04:00
trinity_dpm.h drm/radeon: add dpm UVD handling for TN asics (v2) 2013-06-27 19:15:48 -04:00
trinity_smc.c drm/radeon: add dpm UVD handling for TN asics (v2) 2013-06-27 19:15:48 -04:00
trinityd.h drm/radeon: add dpm UVD handling for TN asics (v2) 2013-06-27 19:15:48 -04:00