diff options
author | Amber Lin <Amber.Lin@amd.com> | 2018-12-13 15:18:01 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2019-01-14 15:04:29 -0500 |
commit | 8e07e2676a42e7d3e5fe8eebac6262ec975664a1 (patch) | |
tree | 9a7cb67a5c11a365f3e7e73527aa4881d5c43cf8 /drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | |
parent | 2d3d25b616a09c16c2506f23289532a31638620f (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.c | 26 |
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 | ||
62 | void amdgpu_amdkfd_fini(void) | 62 | void amdgpu_amdkfd_fini(void) |
63 | { | 63 | { |
64 | if (kgd2kfd) | 64 | kgd2kfd_exit(); |
65 | kgd2kfd->exit(); | ||
66 | } | 65 | } |
67 | 66 | ||
68 | void amdgpu_amdkfd_device_probe(struct amdgpu_device *adev) | 67 | void 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 | ||
218 | void amdgpu_amdkfd_device_fini(struct amdgpu_device *adev) | 214 | void 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 | ||
233 | void amdgpu_amdkfd_suspend(struct amdgpu_device *adev) | 229 | void 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 | ||
239 | int amdgpu_amdkfd_resume(struct amdgpu_device *adev) | 235 | int 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 | } |