diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/0018-drm-amdgpu-Disable-gfx-off-if-VCN-is-busy.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/0018-drm-amdgpu-Disable-gfx-off-if-VCN-is-busy.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/0018-drm-amdgpu-Disable-gfx-off-if-VCN-is-busy.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/0018-drm-amdgpu-Disable-gfx-off-if-VCN-is-busy.patch new file mode 100644 index 00000000..507f7d25 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/0018-drm-amdgpu-Disable-gfx-off-if-VCN-is-busy.patch @@ -0,0 +1,38 @@ +From 24a33b111dabbbcbe2fa2ae729c44e5b062676c8 Mon Sep 17 00:00:00 2001 +From: Rex Zhu <Rex.Zhu@amd.com> +Date: Fri, 27 Jul 2018 17:00:02 +0800 +Subject: [PATCH 0018/2940] drm/amdgpu: Disable gfx off if VCN is busy + +this patch is a workaround for the gpu hang +at video begin/end time if gfx off is enabled. + +Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> +Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +index 400fc74bbae2..35211841b7f2 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +@@ -217,6 +217,7 @@ static void amdgpu_vcn_idle_work_handler(struct work_struct *work) + fences += amdgpu_fence_count_emitted(&adev->vcn.ring_jpeg); + + if (fences == 0) { ++ amdgpu_gfx_off_ctrl(adev, true); + if (adev->pm.dpm_enabled) + amdgpu_dpm_enable_uvd(adev, false); + else +@@ -233,6 +234,7 @@ void amdgpu_vcn_ring_begin_use(struct amdgpu_ring *ring) + bool set_clocks = !cancel_delayed_work_sync(&adev->vcn.idle_work); + + if (set_clocks) { ++ amdgpu_gfx_off_ctrl(adev, false); + if (adev->pm.dpm_enabled) + amdgpu_dpm_enable_uvd(adev, true); + else +-- +2.17.1 + |