diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0534-drm-amdgpu-fix-vce3-instance-handling.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0534-drm-amdgpu-fix-vce3-instance-handling.patch | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/common/recipes-kernel/linux/files/0534-drm-amdgpu-fix-vce3-instance-handling.patch b/common/recipes-kernel/linux/files/0534-drm-amdgpu-fix-vce3-instance-handling.patch deleted file mode 100644 index dcea6ee7..00000000 --- a/common/recipes-kernel/linux/files/0534-drm-amdgpu-fix-vce3-instance-handling.patch +++ /dev/null @@ -1,104 +0,0 @@ -From be4f38e28ca2bbd6d06db8064277d71389746e26 Mon Sep 17 00:00:00 2001 -From: Alex Deucher <alexander.deucher@amd.com> -Date: Thu, 3 Sep 2015 19:03:11 -0400 -Subject: [PATCH 0534/1050] drm/amdgpu: fix vce3 instance handling -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Need to properly handle the instances for the idle -checks and soft reset. - -Acked-by: Leo Liu <leo.liu@amd.com> -Reviewed-by: Christian König <christian.koenig@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> ---- - drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 48 ++++++++++++++++++++++++++++++----- - 1 file changed, 42 insertions(+), 6 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c -index 5642b8e..f0656df 100644 ---- a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c -+++ b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c -@@ -32,8 +32,8 @@ - #include "vid.h" - #include "vce/vce_3_0_d.h" - #include "vce/vce_3_0_sh_mask.h" --#include "oss/oss_2_0_d.h" --#include "oss/oss_2_0_sh_mask.h" -+#include "oss/oss_3_0_d.h" -+#include "oss/oss_3_0_sh_mask.h" - #include "gca/gfx_8_0_d.h" - #include "smu/smu_7_1_2_d.h" - #include "smu/smu_7_1_2_sh_mask.h" -@@ -426,17 +426,41 @@ static void vce_v3_0_mc_resume(struct amdgpu_device *adev, int idx) - static bool vce_v3_0_is_idle(void *handle) - { - struct amdgpu_device *adev = (struct amdgpu_device *)handle; -+ u32 mask = 0; -+ int idx; - -- return !(RREG32(mmSRBM_STATUS2) & SRBM_STATUS2__VCE_BUSY_MASK); -+ for (idx = 0; idx < 2; ++idx) { -+ if (adev->vce.harvest_config & (1 << idx)) -+ continue; -+ -+ if (idx == 0) -+ mask |= SRBM_STATUS2__VCE0_BUSY_MASK; -+ else -+ mask |= SRBM_STATUS2__VCE1_BUSY_MASK; -+ } -+ -+ return !(RREG32(mmSRBM_STATUS2) & mask); - } - - static int vce_v3_0_wait_for_idle(void *handle) - { - unsigned i; - struct amdgpu_device *adev = (struct amdgpu_device *)handle; -+ u32 mask = 0; -+ int idx; -+ -+ for (idx = 0; idx < 2; ++idx) { -+ if (adev->vce.harvest_config & (1 << idx)) -+ continue; -+ -+ if (idx == 0) -+ mask |= SRBM_STATUS2__VCE0_BUSY_MASK; -+ else -+ mask |= SRBM_STATUS2__VCE1_BUSY_MASK; -+ } - - for (i = 0; i < adev->usec_timeout; i++) { -- if (!(RREG32(mmSRBM_STATUS2) & SRBM_STATUS2__VCE_BUSY_MASK)) -+ if (!(RREG32(mmSRBM_STATUS2) & mask)) - return 0; - } - return -ETIMEDOUT; -@@ -445,9 +469,21 @@ static int vce_v3_0_wait_for_idle(void *handle) - static int vce_v3_0_soft_reset(void *handle) - { - struct amdgpu_device *adev = (struct amdgpu_device *)handle; -+ u32 mask = 0; -+ int idx; -+ -+ for (idx = 0; idx < 2; ++idx) { -+ if (adev->vce.harvest_config & (1 << idx)) -+ continue; - -- WREG32_P(mmSRBM_SOFT_RESET, SRBM_SOFT_RESET__SOFT_RESET_VCE_MASK, -- ~SRBM_SOFT_RESET__SOFT_RESET_VCE_MASK); -+ if (idx == 0) -+ mask |= SRBM_SOFT_RESET__SOFT_RESET_VCE0_MASK; -+ else -+ mask |= SRBM_SOFT_RESET__SOFT_RESET_VCE1_MASK; -+ } -+ WREG32_P(mmSRBM_SOFT_RESET, mask, -+ ~(SRBM_SOFT_RESET__SOFT_RESET_VCE0_MASK | -+ SRBM_SOFT_RESET__SOFT_RESET_VCE1_MASK)); - mdelay(5); - - return vce_v3_0_start(adev); --- -1.9.1 - |