diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0145-amdgpu-vce3-Simplify-idle-and-wait-for-idle-code.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0145-amdgpu-vce3-Simplify-idle-and-wait-for-idle-code.patch | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0145-amdgpu-vce3-Simplify-idle-and-wait-for-idle-code.patch b/common/recipes-kernel/linux/files/0145-amdgpu-vce3-Simplify-idle-and-wait-for-idle-code.patch new file mode 100644 index 00000000..a035054f --- /dev/null +++ b/common/recipes-kernel/linux/files/0145-amdgpu-vce3-Simplify-idle-and-wait-for-idle-code.patch @@ -0,0 +1,71 @@ +From 8ba6c8ff3550f5ff51e323f03d07d481b64f50cf Mon Sep 17 00:00:00 2001 +From: Tom St Denis <tom.stdenis@amd.com> +Date: Tue, 15 Dec 2015 10:35:56 -0500 +Subject: [PATCH 0145/1110] amdgpu/vce3: Simplify idle and wait for idle code +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +More LOC reductions in VCE3 code. This patch simplifies the is_idle and +wait_for_idle logic. + +Signed-off-by: Tom St Denis <tom.stdenis@amd.com> +Reviewed-by: Christian König <christian.koenig@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 30 +++++------------------------- + 1 file changed, 5 insertions(+), 25 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c +index 0de86de..f20529d 100644 +--- a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c +@@ -535,17 +535,9 @@ static bool vce_v3_0_is_idle(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; + +- if (idx == 0) +- mask |= SRBM_STATUS2__VCE0_BUSY_MASK; +- else +- mask |= SRBM_STATUS2__VCE1_BUSY_MASK; +- } ++ mask |= (adev->vce.harvest_config & (1<<0)) ? 0 : SRBM_STATUS2__VCE0_BUSY_MASK; ++ mask |= (adev->vce.harvest_config & (1<<1)) ? 0 : SRBM_STATUS2__VCE1_BUSY_MASK; + + return !(RREG32(mmSRBM_STATUS2) & mask); + } +@@ -554,23 +546,11 @@ 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) & mask)) ++ for (i = 0; i < adev->usec_timeout; i++) ++ if (vce_v3_0_is_idle(handle)) + return 0; +- } ++ + return -ETIMEDOUT; + } + +-- +2.7.4 + |