The series is to add gpu soft reset: Check gpu status first, if MC/VMC/DISPLAY hang, directly triger full reset. If engine hangs, then triger engine soft reset, if soft reset fails, will fallback to full reset. V2: use per ip block soft reset tests: gfx and sdma engines are tested successfully by soft reset on Fiji. Chunming Zhou (14): drm/amdgpu: add check_soft_reset ip func drm/amdgpu: implement gfx8 check_soft_reset drm/amdgpu: add pre_soft_reset ip func drm/amdgpu: add gfx8 pre soft reset drm/amdgpu: add amdgpu soft reset drm/amdgpu: implement gfx8 post_soft_reset drm/amdgpu: implement sdma3 check/pre/post_soft_reset drm/amdgpu: implement gmc8 check/pre/post_soft_reset drm/amdgpu: implement vi ih check/pre/post_soft_reset drm/amdgpu: implement UVD6 check/pre/post_soft_reset drm/amdgpu: implement vce3 check/post_soft_reset drm/amdgpu: is_dislay_hung will be called by soft reset drm/amdgpu: add dm check_soft_reset drm/amdgpu: add vce10 check_soft_reset drivers/gpu/drm/amd/amdgpu/amdgpu.h | 10 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 136 ++++++++++++++-- drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h | 1 + drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 18 ++- drivers/gpu/drm/amd/amdgpu/dce_v10_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/dce_v11_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/dce_v8_0.h | 2 +- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 225 ++++++++++++++++++++------ drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 59 +++++-- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 80 +++++++-- drivers/gpu/drm/amd/amdgpu/tonga_ih.c | 49 +++++- drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 71 +++++++- drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 115 ++++++++++++- drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c | 24 ++- drivers/gpu/drm/amd/include/amd_shared.h | 6 + 17 files changed, 694 insertions(+), 110 deletions(-) -- 1.9.1