diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0946-drm-amdgpu-ungate-SMC-clockgating-first-before-suspe.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0946-drm-amdgpu-ungate-SMC-clockgating-first-before-suspe.patch | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/common/recipes-kernel/linux/files/0946-drm-amdgpu-ungate-SMC-clockgating-first-before-suspe.patch b/common/recipes-kernel/linux/files/0946-drm-amdgpu-ungate-SMC-clockgating-first-before-suspe.patch deleted file mode 100644 index f68fb12e..00000000 --- a/common/recipes-kernel/linux/files/0946-drm-amdgpu-ungate-SMC-clockgating-first-before-suspe.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 92c26f2d88d2eb5330b6ff3d478f30e2fe539c5a Mon Sep 17 00:00:00 2001 -From: Flora Cui <Flora.Cui@amd.com> -Date: Fri, 26 Feb 2016 10:45:25 +0800 -Subject: [PATCH 0946/1110] drm/amdgpu: ungate SMC clockgating first before - suspend -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -46c34bcb6a15dd85329a39a5e72c62108626acdc put all block’s clockgating -support in SMC. The sequence in suspend routine should be adjusted -accordingly, otherwise it causes asic hang. - -Signed-off-by: Flora Cui <Flora.Cui@amd.com> -Reviewed-by: Eric Huang <JinHuiEric.Huang@amd.com> ---- - drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 17 +++++++++++++---- - 1 file changed, 13 insertions(+), 4 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c -index 42d0efd..7d91a69 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c -@@ -1343,14 +1343,23 @@ static int amdgpu_suspend(struct amdgpu_device *adev) - { - int i, r; - -+ /* ungate SMC block first */ -+ r = amdgpu_set_clockgating_state(adev, AMD_IP_BLOCK_TYPE_SMC, -+ AMD_CG_STATE_UNGATE); -+ if (r) { -+ DRM_ERROR("set_clockgating_state(ungate) SMC failed %d\n",r); -+ } -+ - for (i = adev->num_ip_blocks - 1; i >= 0; i--) { - if (!adev->ip_block_status[i].valid) - continue; - /* ungate blocks so that suspend can properly shut them down */ -- r = adev->ip_blocks[i].funcs->set_clockgating_state((void *)adev, -- AMD_CG_STATE_UNGATE); -- if (r) { -- DRM_ERROR("set_clockgating_state(ungate) %d failed %d\n", i, r); -+ if (i != AMD_IP_BLOCK_TYPE_SMC) { -+ r = adev->ip_blocks[i].funcs->set_clockgating_state((void *)adev, -+ AMD_CG_STATE_UNGATE); -+ if (r) { -+ DRM_ERROR("set_clockgating_state(ungate) %d failed %d\n", i, r); -+ } - } - /* XXX handle errors */ - r = adev->ip_blocks[i].funcs->suspend(adev); --- -2.7.4 - |