aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2167-drm-amdgpu-Add-struct-kiq_pm4_funcs-into-kiq-struct.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2167-drm-amdgpu-Add-struct-kiq_pm4_funcs-into-kiq-struct.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2167-drm-amdgpu-Add-struct-kiq_pm4_funcs-into-kiq-struct.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2167-drm-amdgpu-Add-struct-kiq_pm4_funcs-into-kiq-struct.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2167-drm-amdgpu-Add-struct-kiq_pm4_funcs-into-kiq-struct.patch
new file mode 100644
index 00000000..1e58b2c3
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2167-drm-amdgpu-Add-struct-kiq_pm4_funcs-into-kiq-struct.patch
@@ -0,0 +1,57 @@
+From dbcbb067f275c5daa12f6d0524f9c91fd821e95b Mon Sep 17 00:00:00 2001
+From: Rex Zhu <Rex.Zhu@amd.com>
+Date: Wed, 22 Aug 2018 11:44:20 +0800
+Subject: [PATCH 2167/2940] drm/amdgpu: Add struct kiq_pm4_funcs into kiq
+ struct
+
+kiq can support 4 pm4 scheduler packets
+set_resource, map_queues, unmap_queues, query_status.
+
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
+Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h
+index f2441c02f9db..14d6f01db27b 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h
+@@ -55,12 +55,32 @@ struct amdgpu_mec {
+ DECLARE_BITMAP(queue_bitmap, AMDGPU_MAX_COMPUTE_QUEUES);
+ };
+
++struct kiq_pm4_funcs {
++ /* Support ASIC-specific kiq pm4 packets*/
++ void (*kiq_set_resources)(struct amdgpu_ring *kiq_ring,
++ uint64_t queue_mask);
++ void (*kiq_map_queues)(struct amdgpu_ring *kiq_ring,
++ struct amdgpu_ring *ring);
++ void (*kiq_unmap_queues)(struct amdgpu_ring *kiq_ring,
++ struct amdgpu_ring *ring, bool reset);
++ void (*kiq_query_status)(struct amdgpu_ring *kiq_ring,
++ struct amdgpu_ring *ring,
++ u64 addr,
++ u64 seq);
++ /* Packet sizes */
++ int set_resources_size;
++ int map_queues_size;
++ int unmap_queues_size;
++ int query_status_size;
++};
++
+ struct amdgpu_kiq {
+ u64 eop_gpu_addr;
+ struct amdgpu_bo *eop_obj;
+ spinlock_t ring_lock;
+ struct amdgpu_ring ring;
+ struct amdgpu_irq_src irq;
++ const struct kiq_pm4_funcs *pmf;
+ };
+
+ /*
+--
+2.17.1
+