diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0904-drm-amdgpu-vcn-Update-vcn.cur_state-during-suspend.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/0904-drm-amdgpu-vcn-Update-vcn.cur_state-during-suspend.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0904-drm-amdgpu-vcn-Update-vcn.cur_state-during-suspend.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0904-drm-amdgpu-vcn-Update-vcn.cur_state-during-suspend.patch new file mode 100644 index 00000000..173b22e4 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0904-drm-amdgpu-vcn-Update-vcn.cur_state-during-suspend.patch @@ -0,0 +1,39 @@ +From 7897931a98ff22ab83f6f5c81730d70e4bcbd990 Mon Sep 17 00:00:00 2001 +From: James Zhu <James.Zhu@amd.com> +Date: Mon, 3 Dec 2018 22:04:28 -0500 +Subject: [PATCH 0904/2940] drm/amdgpu/vcn: Update vcn.cur_state during suspend + +Replace vcn_v1_0_stop with vcn_v1_0_set_powergating_state during suspend, +to keep adev->vcn.cur_state update. It will fix VCN S3 hung issue. + +Signed-off-by: James Zhu <James.Zhu@amd.com> +Reviewed-by: Leo Liu <leo.liu@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c +index c1a03505f956..4f8352044563 100644 +--- a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c +@@ -48,6 +48,7 @@ static void vcn_v1_0_set_enc_ring_funcs(struct amdgpu_device *adev); + static void vcn_v1_0_set_jpeg_ring_funcs(struct amdgpu_device *adev); + static void vcn_v1_0_set_irq_funcs(struct amdgpu_device *adev); + static void vcn_v1_0_jpeg_ring_set_patch_ring(struct amdgpu_ring *ring, uint32_t ptr); ++static int vcn_v1_0_set_powergating_state(void *handle, enum amd_powergating_state state); + + /** + * vcn_v1_0_early_init - set function pointers +@@ -214,7 +215,7 @@ static int vcn_v1_0_hw_fini(void *handle) + struct amdgpu_ring *ring = &adev->vcn.ring_dec; + + if (RREG32_SOC15(VCN, 0, mmUVD_STATUS)) +- vcn_v1_0_stop(adev); ++ vcn_v1_0_set_powergating_state(adev, AMD_PG_STATE_GATE); + + ring->sched.ready = false; + +-- +2.17.1 + |