aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
diff options
context:
space:
mode:
authorAmber Lin <Amber.Lin@amd.com>2018-12-13 15:18:01 -0500
committerAlex Deucher <alexander.deucher@amd.com>2019-01-14 15:04:29 -0500
commit8e07e2676a42e7d3e5fe8eebac6262ec975664a1 (patch)
tree9a7cb67a5c11a365f3e7e73527aa4881d5c43cf8 /drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
parent2d3d25b616a09c16c2506f23289532a31638620f (diff)
drm/amdgpu: Simplify kgd2kfd interface
After amdkfd is merged into amdgpu module, amdgpu can call amdkfd functions directly. Signed-off-by: Amber Lin <Amber.Lin@amd.com> Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c26
1 files changed, 11 insertions, 15 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
index 358f69041164..fc926e2f857a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
@@ -61,17 +61,13 @@ int amdgpu_amdkfd_init(void)
61 61
62void amdgpu_amdkfd_fini(void) 62void amdgpu_amdkfd_fini(void)
63{ 63{
64 if (kgd2kfd) 64 kgd2kfd_exit();
65 kgd2kfd->exit();
66} 65}
67 66
68void amdgpu_amdkfd_device_probe(struct amdgpu_device *adev) 67void amdgpu_amdkfd_device_probe(struct amdgpu_device *adev)
69{ 68{
70 const struct kfd2kgd_calls *kfd2kgd; 69 const struct kfd2kgd_calls *kfd2kgd;
71 70
72 if (!kgd2kfd)
73 return;
74
75 switch (adev->asic_type) { 71 switch (adev->asic_type) {
76#ifdef CONFIG_DRM_AMDGPU_CIK 72#ifdef CONFIG_DRM_AMDGPU_CIK
77 case CHIP_KAVERI: 73 case CHIP_KAVERI:
@@ -98,8 +94,8 @@ void amdgpu_amdkfd_device_probe(struct amdgpu_device *adev)
98 return; 94 return;
99 } 95 }
100 96
101 adev->kfd.dev = kgd2kfd->probe((struct kgd_dev *)adev, 97 adev->kfd.dev = kgd2kfd_probe((struct kgd_dev *)adev,
102 adev->pdev, kfd2kgd); 98 adev->pdev, kfd2kgd);
103 99
104 if (adev->kfd.dev) 100 if (adev->kfd.dev)
105 amdgpu_amdkfd_total_mem_size += adev->gmc.real_vram_size; 101 amdgpu_amdkfd_total_mem_size += adev->gmc.real_vram_size;
@@ -182,7 +178,7 @@ void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)
182 &gpu_resources.doorbell_start_offset); 178 &gpu_resources.doorbell_start_offset);
183 179
184 if (adev->asic_type < CHIP_VEGA10) { 180 if (adev->asic_type < CHIP_VEGA10) {
185 kgd2kfd->device_init(adev->kfd.dev, &gpu_resources); 181 kgd2kfd_device_init(adev->kfd.dev, &gpu_resources);
186 return; 182 return;
187 } 183 }
188 184
@@ -211,14 +207,14 @@ void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)
211 gpu_resources.reserved_doorbell_mask = 0x1e0; 207 gpu_resources.reserved_doorbell_mask = 0x1e0;
212 gpu_resources.reserved_doorbell_val = 0x0e0; 208 gpu_resources.reserved_doorbell_val = 0x0e0;
213 209
214 kgd2kfd->device_init(adev->kfd.dev, &gpu_resources); 210 kgd2kfd_device_init(adev->kfd.dev, &gpu_resources);
215 } 211 }
216} 212}
217 213
218void amdgpu_amdkfd_device_fini(struct amdgpu_device *adev) 214void amdgpu_amdkfd_device_fini(struct amdgpu_device *adev)
219{ 215{
220 if (adev->kfd.dev) { 216 if (adev->kfd.dev) {
221 kgd2kfd->device_exit(adev->kfd.dev); 217 kgd2kfd_device_exit(adev->kfd.dev);
222 adev->kfd.dev = NULL; 218 adev->kfd.dev = NULL;
223 } 219 }
224} 220}
@@ -227,13 +223,13 @@ void amdgpu_amdkfd_interrupt(struct amdgpu_device *adev,
227 const void *ih_ring_entry) 223 const void *ih_ring_entry)
228{ 224{
229 if (adev->kfd.dev) 225 if (adev->kfd.dev)
230 kgd2kfd->interrupt(adev->kfd.dev, ih_ring_entry); 226 kgd2kfd_interrupt(adev->kfd.dev, ih_ring_entry);
231} 227}
232 228
233void amdgpu_amdkfd_suspend(struct amdgpu_device *adev) 229void amdgpu_amdkfd_suspend(struct amdgpu_device *adev)
234{ 230{
235 if (adev->kfd.dev) 231 if (adev->kfd.dev)
236 kgd2kfd->suspend(adev->kfd.dev); 232 kgd2kfd_suspend(adev->kfd.dev);
237} 233}
238 234
239int amdgpu_amdkfd_resume(struct amdgpu_device *adev) 235int amdgpu_amdkfd_resume(struct amdgpu_device *adev)
@@ -241,7 +237,7 @@ int amdgpu_amdkfd_resume(struct amdgpu_device *adev)
241 int r = 0; 237 int r = 0;
242 238
243 if (adev->kfd.dev) 239 if (adev->kfd.dev)
244 r = kgd2kfd->resume(adev->kfd.dev); 240 r = kgd2kfd_resume(adev->kfd.dev);
245 241
246 return r; 242 return r;
247} 243}
@@ -251,7 +247,7 @@ int amdgpu_amdkfd_pre_reset(struct amdgpu_device *adev)
251 int r = 0; 247 int r = 0;
252 248
253 if (adev->kfd.dev) 249 if (adev->kfd.dev)
254 r = kgd2kfd->pre_reset(adev->kfd.dev); 250 r = kgd2kfd_pre_reset(adev->kfd.dev);
255 251
256 return r; 252 return r;
257} 253}
@@ -261,7 +257,7 @@ int amdgpu_amdkfd_post_reset(struct amdgpu_device *adev)
261 int r = 0; 257 int r = 0;
262 258
263 if (adev->kfd.dev) 259 if (adev->kfd.dev)
264 r = kgd2kfd->post_reset(adev->kfd.dev); 260 r = kgd2kfd_post_reset(adev->kfd.dev);
265 261
266 return r; 262 return r;
267} 263}