aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4446-drm-amdgpu-use-the-JPEG-structure-for-general-driver.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4446-drm-amdgpu-use-the-JPEG-structure-for-general-driver.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4446-drm-amdgpu-use-the-JPEG-structure-for-general-driver.patch95
1 files changed, 95 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4446-drm-amdgpu-use-the-JPEG-structure-for-general-driver.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4446-drm-amdgpu-use-the-JPEG-structure-for-general-driver.patch
new file mode 100644
index 00000000..ffcbfd8a
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4446-drm-amdgpu-use-the-JPEG-structure-for-general-driver.patch
@@ -0,0 +1,95 @@
+From acacc1b13681b090b5ccc01dc76706436fd659a4 Mon Sep 17 00:00:00 2001
+From: Leo Liu <leo.liu@amd.com>
+Date: Fri, 8 Nov 2019 10:23:14 -0500
+Subject: [PATCH 4446/4736] drm/amdgpu: use the JPEG structure for general
+ driver support
+
+JPEG1.0 will be functional along with VCN1.0
+
+Signed-off-by: Leo Liu <leo.liu@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 4 ++--
+ drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 6 +++---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 8 +++-----
+ 3 files changed, 8 insertions(+), 10 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+index 0300635f6f63..3ad8ccc6630b 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+@@ -172,10 +172,10 @@ static int amdgpu_ctx_init(struct amdgpu_device *adev,
+ }
+ break;
+ case AMDGPU_HW_IP_VCN_JPEG:
+- for (j = 0; j < adev->vcn.num_vcn_inst; ++j) {
++ for (j = 0; j < adev->jpeg.num_jpeg_inst; ++j) {
+ if (adev->vcn.harvest_config & (1 << j))
+ continue;
+- rings[num_rings++] = &adev->vcn.inst[j].ring_jpeg;
++ rings[num_rings++] = &adev->jpeg.inst[j].ring_dec;
+ }
+ break;
+ }
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+index 488258f1138d..ab6e0fc5800f 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+@@ -398,11 +398,11 @@ static int amdgpu_hw_ip_info(struct amdgpu_device *adev,
+ break;
+ case AMDGPU_HW_IP_VCN_JPEG:
+ type = AMD_IP_BLOCK_TYPE_VCN;
+- for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
+- if (adev->uvd.harvest_config & (1 << i))
++ for (i = 0; i < adev->jpeg.num_jpeg_inst; i++) {
++ if (adev->jpeg.harvest_config & (1 << i))
+ continue;
+
+- if (adev->vcn.inst[i].ring_jpeg.sched.ready)
++ if (adev->jpeg.inst[i].ring_dec.sched.ready)
+ ++num_rings;
+ }
+ ib_start_alignment = 16;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
+index c72819d55502..9daa42f03886 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
+@@ -213,8 +213,6 @@ int amdgpu_vcn_sw_fini(struct amdgpu_device *adev)
+
+ for (i = 0; i < adev->vcn.num_enc_rings; ++i)
+ amdgpu_ring_fini(&adev->vcn.inst[j].ring_enc[i]);
+-
+- amdgpu_ring_fini(&adev->vcn.inst[j].ring_jpeg);
+ }
+
+ release_firmware(adev->vcn.fw);
+@@ -307,7 +305,7 @@ static void amdgpu_vcn_idle_work_handler(struct work_struct *work)
+ else
+ new_state.fw_based = VCN_DPG_STATE__UNPAUSE;
+
+- if (amdgpu_fence_count_emitted(&adev->vcn.inst[j].ring_jpeg))
++ if (amdgpu_fence_count_emitted(&adev->jpeg.inst[j].ring_dec))
+ new_state.jpeg = VCN_DPG_STATE__PAUSE;
+ else
+ new_state.jpeg = VCN_DPG_STATE__UNPAUSE;
+@@ -315,7 +313,7 @@ static void amdgpu_vcn_idle_work_handler(struct work_struct *work)
+ adev->vcn.pause_dpg_mode(adev, &new_state);
+ }
+
+- fence[j] += amdgpu_fence_count_emitted(&adev->vcn.inst[j].ring_jpeg);
++ fence[j] += amdgpu_fence_count_emitted(&adev->jpeg.inst[j].ring_dec);
+ fence[j] += amdgpu_fence_count_emitted(&adev->vcn.inst[j].ring_dec);
+ fences += fence[j];
+ }
+@@ -359,7 +357,7 @@ void amdgpu_vcn_ring_begin_use(struct amdgpu_ring *ring)
+ else
+ new_state.fw_based = VCN_DPG_STATE__UNPAUSE;
+
+- if (amdgpu_fence_count_emitted(&adev->vcn.inst[ring->me].ring_jpeg))
++ if (amdgpu_fence_count_emitted(&adev->jpeg.inst[ring->me].ring_dec))
+ new_state.jpeg = VCN_DPG_STATE__PAUSE;
+ else
+ new_state.jpeg = VCN_DPG_STATE__UNPAUSE;
+--
+2.17.1
+