diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0149-amdgpu-vce3-Simplify-vce_v3_0_hw_init-and-ensure-bot.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0149-amdgpu-vce3-Simplify-vce_v3_0_hw_init-and-ensure-bot.patch | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0149-amdgpu-vce3-Simplify-vce_v3_0_hw_init-and-ensure-bot.patch b/common/recipes-kernel/linux/files/0149-amdgpu-vce3-Simplify-vce_v3_0_hw_init-and-ensure-bot.patch new file mode 100644 index 00000000..b06f802f --- /dev/null +++ b/common/recipes-kernel/linux/files/0149-amdgpu-vce3-Simplify-vce_v3_0_hw_init-and-ensure-bot.patch @@ -0,0 +1,64 @@ +From b22c8cdefe4b97e402c9387cb063fc3aaf7c2e1b Mon Sep 17 00:00:00 2001 +From: Tom St Denis <tom.stdenis@amd.com> +Date: Tue, 15 Dec 2015 10:55:34 -0500 +Subject: [PATCH 0149/1110] amdgpu/vce3: Simplify vce_v3_0_hw_init and ensure + both rings default to not ready. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Simplified the ring test and added logic to ensure rings are marked not ready +by default. + +Signed-off-by: Tom St Denis <tom.stdenis@amd.com> +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +Reviewed-by: Christian König <christian.koenig@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 24 +++++++++--------------- + 1 file changed, 9 insertions(+), 15 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c +index ad56b1f..e99af81 100644 +--- a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c +@@ -414,28 +414,22 @@ static int vce_v3_0_sw_fini(void *handle) + + static int vce_v3_0_hw_init(void *handle) + { +- struct amdgpu_ring *ring; +- int r; ++ int r, i; + struct amdgpu_device *adev = (struct amdgpu_device *)handle; + + r = vce_v3_0_start(adev); + if (r) + return r; + +- ring = &adev->vce.ring[0]; +- ring->ready = true; +- r = amdgpu_ring_test_ring(ring); +- if (r) { +- ring->ready = false; +- return r; +- } ++ adev->vce.ring[0].ready = false; ++ adev->vce.ring[1].ready = false; + +- ring = &adev->vce.ring[1]; +- ring->ready = true; +- r = amdgpu_ring_test_ring(ring); +- if (r) { +- ring->ready = false; +- return r; ++ for (i = 0; i < 2; i++) { ++ r = amdgpu_ring_test_ring(&adev->vce.ring[i]); ++ if (r) ++ return r; ++ else ++ adev->vce.ring[i].ready = true; + } + + DRM_INFO("VCE initialized successfully.\n"); +-- +2.7.4 + |