Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/amdgpu: sdma resume fail during S4 on CI

SDMA could be fail in the thaw() and restore() processes, do software reset
if each SDMA engine is busy.

Signed-off-by: JimQu <Jim.Qu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org

authored by

jimqu and committed by
Alex Deucher
10ea9434 279cf3f2

+3
+3
drivers/gpu/drm/amd/amdgpu/cik_sdma.c
··· 52 52 static void cik_sdma_set_irq_funcs(struct amdgpu_device *adev); 53 53 static void cik_sdma_set_buffer_funcs(struct amdgpu_device *adev); 54 54 static void cik_sdma_set_vm_pte_funcs(struct amdgpu_device *adev); 55 + static int cik_sdma_soft_reset(void *handle); 55 56 56 57 MODULE_FIRMWARE("radeon/bonaire_sdma.bin"); 57 58 MODULE_FIRMWARE("radeon/bonaire_sdma1.bin"); ··· 1037 1036 static int cik_sdma_resume(void *handle) 1038 1037 { 1039 1038 struct amdgpu_device *adev = (struct amdgpu_device *)handle; 1039 + 1040 + cik_sdma_soft_reset(handle); 1040 1041 1041 1042 return cik_sdma_hw_init(adev); 1042 1043 }