linux/drivers/gpu/drm/radeon
Jérôme Glisse 161569deaa drm/radeon: compute ring fix hibernation (CI GPU family) v2.
In order for hibernation to reliably work we need to cleanup more
thoroughly the compute ring. Hibernation is different from suspend
resume as when we resume from hibernation the hardware is first
fully initialize by regular kernel then freeze callback happens
(which correspond to a suspend inside the radeon kernel driver)
and turn off each of the block. It turns out we were not cleanly
shutting down the compute ring. This patch fix that.

Hibernation and suspend to ram were tested (several times) on :
Bonaire
Hawaii
Mullins
Kaveri
Kabini

Changed since v1:
  - Factor the ring stop logic into a function taking ring as arg.

Cc: stable@vger.kernel.org
Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2015-06-29 11:21:41 -04: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_crtc.c drm/radeon: don't share plls if monitors differ in audio support 2015-05-26 22:25:59 -04:00
atombios_dp.c Linux 4.1-rc6 2015-06-04 09:23:51 +10:00
atombios_encoders.c drm/radeon: only enable audio streams if the monitor supports it 2015-04-27 09:54:56 -04:00
atombios_i2c.c drm/radeon: add locking around atombios scratch space usage 2014-11-11 17:22:26 -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: 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/radeon/kms: remove r6xx+ blit copy routines 2013-08-30 16:29:57 -04:00
cayman_blit_shaders.h
ci_dpm.c drm/radeon/ci: implement get_current_sclk/mclk 2015-03-19 12:26:34 -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_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 H/W debugger kfd->kgd functions 2015-06-03 11:31:12 +03:00
cik_sdma.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into drm-next 2015-01-29 11:45:31 +10:00
cik.c drm/radeon: compute ring fix hibernation (CI GPU family) v2. 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 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: 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 drm/radeon/dpm: add pre/post_set_power_state callback (BTC) 2013-06-27 19:16:19 -04:00
dce3_1_afmt.c radeon/audio: consolidate audio_mode_set() functions 2015-01-22 10:42:17 -05:00
dce6_afmt.c drm/radeon: drop dce6_dp_enable 2015-04-27 09:54:53 -04:00
drm_buffer.c drm/radeon: move drm_buffer to drm/radeon/ 2014-09-10 17:11:21 +10:00
drm_buffer.h drm/radeon: move drm_buffer to drm/radeon/ 2014-09-10 17:11:21 +10: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: evergreen/cayman indirect draw support (v2) 2015-01-22 10:38:46 -05: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/audio: make sure connector is valid in hotplug case 2015-05-27 13:14:59 -04: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
evergreen.c Linux 4.1-rc6 2015-06-04 09:23:51 +10:00
evergreend.h drm/radeon: add get_allowed_info_register for EG/BTC 2015-03-19 12:26:39 -04:00
Kconfig drm/radeon: add userptr config option 2015-04-13 11:17:58 -04:00
kv_dpm.c drm/radeon/kv: implement get_current_sclk/mclk 2015-03-19 12:26:36 -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 DisplayPort MST support (v2) 2015-03-19 12:26:51 -04:00
mkregtable.c Replace mentions of "list_struct" to "list_head" 2014-11-20 14:45:15 +01: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 drm/radeon/dpm: implement vblank_too_short callback for si 2013-07-08 17:41:11 -04:00
ni_reg.h drm/radeon: add DisplayPort MST support (v2) 2015-03-19 12:26:51 -04:00
ni.c Linux 4.1-rc6 2015-06-04 09:23:51 +10:00
nid.h drm/radeon: implement tn_set_vce_clocks 2015-05-26 10:31:21 -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: 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_track.h drm/radeon: use common next_reloc function 2013-01-31 16:24:45 -05:00
r100.c radeon: Deinline indirect register accessor functions 2015-05-28 14:52:40 -04:00
r100d.h drm/radeon: consolidate redundant macros and constants 2013-01-31 16:24:46 -05:00
r200.c drm/radeon: rename radeon_cs_reloc to radeon_bo_list 2014-12-03 14:26:47 -05:00
r300_cmdbuf.c drm/radeon: move drm_buffer to drm/radeon/ 2014-09-10 17:11:21 +10:00
r300_reg.h
r300.c radeon: Deinline indirect register accessor functions 2015-05-28 14:52:40 -04:00
r300d.h drm/radeon: consolidate redundant macros and constants 2013-01-31 16:24:46 -05:00
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_blit_shaders.c The following text was taken from the original review request: 2012-03-24 10:08:39 -07:00
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: Move drm_memory.c map support declarations to <drm/drm_legacy.h> 2014-09-12 15:28:12 +02:00
r600_cs.c drm/radeon: use pointers instead of indexes for CS chunks 2014-12-03 18:26:53 -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 drm/radeon: add indirect accessors for UVD CTX registers 2013-06-27 19:16:30 -04:00
r600.c Linux 4.1-rc6 2015-06-04 09:23:51 +10:00
r600d.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-10-14 09:39:08 +02:00
radeon_acpi.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
radeon_acpi.h drm/radeon: implement handler for ACPI event 2012-09-20 13:10:36 -04:00
radeon_agp.c radeon: Remove useless quirk for zx1/FireGL X1 combo introduced with fdo #7770 2014-06-02 10:25:08 -04:00
radeon_asic.c drm/radeon: add support for vce 1.0 clock gating 2015-05-26 10:31:24 -04: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: add DisplayPort MST support (v2) 2015-03-19 12:26:51 -04:00
radeon_atpx_handler.c ACPIPHP / radeon / nouveau: Remove acpi_bus_no_hotplug() 2014-09-15 13:15:34 -06:00
radeon_audio.c Linux 4.1-rc6 2015-06-04 09:23:51 +10:00
radeon_audio.h drm/radeon: clean up radeon_audio_enable 2015-05-28 00:03:39 -04:00
radeon_benchmark.c drm/radeon: fix the crash in benchmark functions 2015-02-02 11:39:35 -05:00
radeon_bios.c radeon: Do not directly dereference pointers to BIOS area. 2015-03-27 10:17:42 -04: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/combios: declare legacy_connector_convert as static 2014-10-01 09:00:08 -04:00
radeon_connectors.c Revert "drm/radeon: only mark audio as connected if the monitor supports it (v3)" 2015-05-27 12:08:29 -04:00
radeon_cp.c drm: Move drm_memory.c map support declarations to <drm/drm_legacy.h> 2014-09-12 15:28:12 +02: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: Move hotspot handling out of radeon_set_cursor 2014-12-03 14:26:44 -05:00
radeon_device.c drm/radeon: add a GPU reset counter queryable by userspace 2015-05-26 10:31:19 -04:00
radeon_display.c drm/radeon: implement output csc property for DCE5+ 2015-03-19 12:26:25 -04:00
radeon_dp_auxch.c drm/radeon: fix error flag checking in native aux path 2015-05-21 12:43:21 -04:00
radeon_dp_mst.c drm/radeon: don't do mst probing if MST isn't enabled. 2015-05-14 11:46:47 -04:00
radeon_drv.c drm/radeon: add a GPU reset counter queryable by userspace 2015-05-26 10:31:19 -04:00
radeon_drv.h drm: Create drm legacy driver header 2014-09-12 11:08:55 +02:00
radeon_encoders.c drm/radeon: add DisplayPort MST support (v2) 2015-03-19 12:26:51 -04:00
radeon_family.h drm/radeon: add Mullins chip family 2014-05-06 12:19:57 +02:00
radeon_fb.c radeon/fb: add wrapper functions around fb connector add/remove 2015-03-19 12:26:48 -04:00
radeon_fence.c drm/radeon: fix wait to actually occur after the signaling callback 2015-03-11 08:30:35 -04:00
radeon_gart.c drm/radeon: Remove rdev->gart.pages_addr array 2015-01-22 11:48:03 -05:00
radeon_gem.c drm/radeon: don't init gpuvm if accel is disabled (v3) 2015-02-02 11:39:33 -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: Fix max_vblank_count value for current display engines 2015-05-28 00:15:30 -04:00
radeon_irq.c drm: Kill DRM_COPY_(TO|FROM)_USER 2013-12-18 11:35:01 +10:00
radeon_kfd.c drm/radeon: Add ATC VMID<-->PASID functions to kfd->kgd 2015-06-03 11:34:46 +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: add a GPU reset counter queryable by userspace 2015-05-26 10:31:19 -04:00
radeon_legacy_crtc.c drm/radeon: Re-show the cursor after a modeset 2014-12-03 14:26:44 -05:00
radeon_legacy_encoders.c drm/radeon: constify all struct drm_*_helper funcs pointers 2015-04-07 17:06:42 +02: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: Kill DRM_COPY_(TO|FROM)_USER 2013-12-18 11:35:01 +10:00
radeon_mn.c drm/radeon: fix userptr lockup 2015-05-07 11:00:15 -04:00
radeon_mode.h drm/radeon: make dpcd parameters const 2015-05-26 10:31:26 -04:00
radeon_object.c drm/radeon: drop ttm two ended allocation 2015-03-18 09:53:40 -04: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/dpm: fix 120hz handling harder 2015-03-27 10:17:42 -04:00
radeon_prime.c drm/radeon: export reservation_object from dmabuf to ttm 2014-10-03 09:19:17 -04: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: 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_state.c drm/radeon: integer underflow in radeon_cp_dispatch_texture() 2015-01-05 12:10:08 -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_points.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
radeon_trace.h tracing/drm: Remove unused TRACE_SYSTEM_STRING define 2015-04-07 12:29:23 -04:00
radeon_ttm.c drm/radeon: use kzalloc for allocating one thing 2015-06-29 11:21:39 -04: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 drm/radeon: add VCE 1.0 support v4 2015-05-26 10:31:23 -04:00
radeon_vm.c drm/radeon: stop using addr to check for BO move 2015-05-28 00:03:39 -04:00
radeon.h drm/radeon: remove obsolete kfd_bo from radeon_device 2015-06-16 10:52:46 +03: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: do a posting read in rs600_set_irq 2015-03-03 17:28:27 -05:00
rs600d.h drm/radeon/kms: add register definitions for audio 2012-04-24 09:50:13 +01:00
rs690.c radeon/audio: consolidate audio_fini() functions 2015-01-22 10:42:09 -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/rs780: implement get_current_sclk/mclk 2015-03-19 12:26:29 -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/rv6xx: implement get_current_sclk/mclk 2015-03-19 12:26:29 -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: make sure mode init is complete in bandwidth_update 2014-11-06 15:42:44 -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: split semaphore and sync object handling v2 2014-11-20 13:00:16 -05:00
rv770_dpm.c drm/radeon/rv7xx/eg: implement get_current_sclk/mclk 2015-03-19 12:26:30 -04: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 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: partially revert "fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling" 2015-05-28 09:54:43 -04:00
rv770d.h drm/radeon: disable semaphores for UVD V1 (v2) 2015-05-04 15:03:56 -04:00
si_blit_shaders.c The following text was taken from the original review request: 2012-03-24 10:08:39 -07:00
si_blit_shaders.h drm/radeon/kms: add support for CP setup on SI 2012-03-21 06:55:54 +00:00
si_dma.c drm/radeon: Remove rdev->gart.pages_addr array 2015-01-22 11:48:03 -05:00
si_dpm.c drm/radeon/tn/si: enable/disable vce cg when encoding v2 2015-05-26 10:31:25 -04: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 drm/radeon: SI tiling fixes for display 2012-06-20 19:55:56 +01:00
si_smc.c drm/radeon/si: Add support for new ucode format (v3) 2014-08-05 08:53:23 -04:00
si.c Linux 4.1-rc6 2015-06-04 09:23:51 +10:00
sid.h drm/radeon: add support for vce 1.0 clock gating 2015-05-26 10:31:24 -04:00
sislands_smc.h drm/radeon/dpm: add smc fan control for SI (v2) 2014-11-20 13:00:09 -05:00
smu7_discrete.h drm/radeon/dpm: add smc fan control for CI (v2) 2014-11-20 13:00:10 -05: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/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 drm/radeon: add dpm UVD handling for sumo asics 2013-06-27 19:15:48 -04:00
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 drm/radeon/dpm: add bapm callback for trinity 2013-09-11 11:44:39 -04:00
trinity_smc.c drm/radeon/dpm: make some functions static for TN 2014-01-07 12:55:57 -05: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: 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 drm/radeon: split out radeon_uvd_resume from uvd_v4_2_resume 2013-08-30 16:31:12 -04:00
vce_v1_0.c drm/radeon: add support for vce 1.0 clock gating 2015-05-26 10:31:24 -04:00
vce_v2_0.c drm/radeon: rework VCE FW size calculation 2015-05-26 10:31:20 -04:00