aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2984-drm-amdgpu-add-all-VCN-rings-into-schedule-request-q.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2984-drm-amdgpu-add-all-VCN-rings-into-schedule-request-q.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2984-drm-amdgpu-add-all-VCN-rings-into-schedule-request-q.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2984-drm-amdgpu-add-all-VCN-rings-into-schedule-request-q.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2984-drm-amdgpu-add-all-VCN-rings-into-schedule-request-q.patch
new file mode 100644
index 00000000..3ca33aae
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2984-drm-amdgpu-add-all-VCN-rings-into-schedule-request-q.patch
@@ -0,0 +1,75 @@
+From 5a41081028038e1bd226e650652e47144c392df4 Mon Sep 17 00:00:00 2001
+From: James Zhu <James.Zhu@amd.com>
+Date: Mon, 1 Jul 2019 19:12:14 -0400
+Subject: [PATCH 2984/4256] drm/amdgpu:add all VCN rings into schedule request
+ queue
+
+Add all VCN instances' decode/encode/jpeg decode rings into
+drm_sched_rq list.
+
+Signed-off-by: James Zhu <James.Zhu@amd.com>
+Reviewed-by: Leo Liu <leo.liu@amd.com>
+Reviewed-by: Boyuan Zhang <boyuan.zhang@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 26 +++++++++++++++++--------
+ 1 file changed, 18 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+index 4f7f8ca1986d..54b9b955f12f 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+@@ -75,7 +75,7 @@ static int amdgpu_ctx_init(struct amdgpu_device *adev,
+ struct amdgpu_ctx *ctx)
+ {
+ unsigned num_entities = amdgput_ctx_total_num_entities();
+- unsigned i, j;
++ unsigned i, j, k;
+ int r;
+
+ if (priority < 0 || priority >= DRM_SCHED_PRIORITY_MAX)
+@@ -126,7 +126,7 @@ static int amdgpu_ctx_init(struct amdgpu_device *adev,
+ for (i = 0; i < AMDGPU_HW_IP_NUM; ++i) {
+ struct amdgpu_ring *rings[AMDGPU_MAX_RINGS];
+ struct drm_sched_rq *rqs[AMDGPU_MAX_RINGS];
+- unsigned num_rings;
++ unsigned num_rings = 0;
+ unsigned num_rqs = 0;
+
+ switch (i) {
+@@ -157,16 +157,26 @@ static int amdgpu_ctx_init(struct amdgpu_device *adev,
+ num_rings = 1;
+ break;
+ case AMDGPU_HW_IP_VCN_DEC:
+- rings[0] = &adev->vcn.inst[0].ring_dec;
+- num_rings = 1;
++ for (j = 0; j < adev->vcn.num_vcn_inst; ++j) {
++ if (adev->vcn.harvest_config & (1 << j))
++ continue;
++ rings[num_rings++] = &adev->vcn.inst[j].ring_dec;
++ }
+ break;
+ case AMDGPU_HW_IP_VCN_ENC:
+- rings[0] = &adev->vcn.inst[0].ring_enc[0];
+- num_rings = 1;
++ for (j = 0; j < adev->vcn.num_vcn_inst; ++j) {
++ if (adev->vcn.harvest_config & (1 << j))
++ continue;
++ for (k = 0; k < adev->vcn.num_enc_rings; ++k)
++ rings[num_rings++] = &adev->vcn.inst[j].ring_enc[k];
++ }
+ break;
+ case AMDGPU_HW_IP_VCN_JPEG:
+- rings[0] = &adev->vcn.inst[0].ring_jpeg;
+- num_rings = 1;
++ for (j = 0; j < adev->vcn.num_vcn_inst; ++j) {
++ if (adev->vcn.harvest_config & (1 << j))
++ continue;
++ rings[num_rings++] = &adev->vcn.inst[j].ring_jpeg;
++ }
+ break;
+ }
+
+--
+2.17.1
+