diff options
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.patch | 75 |
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 + |