aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/5663-drm-amdkfd-Simplify-packet-manager-initialization.patch
blob: 81745ccd1be586aaa77b056f2bd4c4a3beb3ebc3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
From ec949130a270007e1ed2ebbd91b40134fbce8352 Mon Sep 17 00:00:00 2001
From: Felix Kuehling <Felix.Kuehling@amd.com>
Date: Tue, 24 Apr 2018 18:05:50 -0400
Subject: [PATCH 5663/5725] drm/amdkfd: Simplify packet manager initialization

Assign the function tables directly instead of doing it in a one-line
function. Also making the tables const while I'm at it.

Change-Id: If03fe1f89fc5badf15f3e9dd356b44601152bd7b
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
---
 drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c | 8 +-------
 drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_vi.c | 7 +------
 drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c  | 4 ++--
 drivers/gpu/drm/amd/amdkfd/kfd_priv.h            | 9 ++++-----
 4 files changed, 8 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c
index c6d5a33..6724b1a 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c
@@ -323,7 +323,7 @@ static int pm_release_mem_v9(uint64_t gpu_addr, uint32_t *buffer)
 	return 0;
 }
 
-static struct packet_manager_funcs kfd_v9_pm_funcs = {
+const struct packet_manager_funcs kfd_v9_pm_funcs = {
 	.map_process		= pm_map_process_v9,
 	.runlist		= pm_runlist_v9,
 	.set_resources		= pm_set_resources_vi,
@@ -339,9 +339,3 @@ static struct packet_manager_funcs kfd_v9_pm_funcs = {
 	.query_status_size	= sizeof(struct pm4_mes_query_status),
 	.release_mem_size	= sizeof(struct pm4_mec_release_mem)
 };
-
-void kfd_pm_func_init_v9(struct packet_manager *pm)
-{
-	pm->pmf = &kfd_v9_pm_funcs;
-}
-
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_vi.c b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_vi.c
index a1a2e7b..357478f 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_vi.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_vi.c
@@ -358,7 +358,7 @@ static int pm_release_mem_vi(uint64_t gpu_addr, uint32_t *buffer)
 	return 0;
 }
 
-static struct packet_manager_funcs kfd_vi_pm_funcs = {
+const struct packet_manager_funcs kfd_vi_pm_funcs = {
 	.map_process		= pm_map_process_vi,
 	.runlist		= pm_runlist_vi,
 	.set_resources		= pm_set_resources_vi,
@@ -374,8 +374,3 @@ static struct packet_manager_funcs kfd_vi_pm_funcs = {
 	.query_status_size	= sizeof(struct pm4_mes_query_status),
 	.release_mem_size	= sizeof(struct pm4_mec_release_mem)
 };
-
-void kfd_pm_func_init_vi(struct packet_manager *pm)
-{
-	pm->pmf = &kfd_vi_pm_funcs;
-}
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
index 699352b..bc6e854 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
@@ -237,11 +237,11 @@ int pm_init(struct packet_manager *pm, struct device_queue_manager *dqm)
 	case CHIP_FIJI:
 	case CHIP_POLARIS10:
 	case CHIP_POLARIS11:
-		kfd_pm_func_init_vi(pm);
+		pm->pmf = &kfd_vi_pm_funcs;
 		break;
 	case CHIP_VEGA10:
 	case CHIP_RAVEN:
-		kfd_pm_func_init_v9(pm);
+		pm->pmf = &kfd_v9_pm_funcs;
 		break;
 	default:
 		BUG();
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
index 52740ae..8513abf 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h
@@ -991,7 +991,7 @@ struct packet_manager {
 	struct kfd_mem_obj *ib_buffer_obj;
 	unsigned int ib_size_bytes;
 
-	struct packet_manager_funcs *pmf;
+	const struct packet_manager_funcs *pmf;
 };
 
 struct packet_manager_funcs {
@@ -1023,6 +1023,9 @@ struct packet_manager_funcs {
 	int release_mem_size;
 };
 
+extern const struct packet_manager_funcs kfd_vi_pm_funcs;
+extern const struct packet_manager_funcs kfd_v9_pm_funcs;
+
 int pm_init(struct packet_manager *pm, struct device_queue_manager *dqm);
 void pm_uninit(struct packet_manager *pm);
 int pm_send_set_resources(struct packet_manager *pm,
@@ -1043,10 +1046,6 @@ unsigned int pm_build_pm4_header(unsigned int opcode, size_t packet_size);
 int pm_set_resources_vi(struct packet_manager *pm, uint32_t *buffer,
 				struct scheduling_resources *res);
 
-void kfd_pm_func_init_vi(struct packet_manager *pm);
-void kfd_pm_func_init_v9(struct packet_manager *pm);
-
-
 uint64_t kfd_get_number_elems(struct kfd_dev *kfd);
 
 /* Events */
-- 
2.7.4