diff options
author | Christian König <christian.koenig@amd.com> | 2016-03-30 04:54:16 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-05-02 15:26:57 -0400 |
commit | 4325198180e5aeff21f44ba32c9ec18d9dd3ba72 (patch) | |
tree | 09bbd759715ebd3921c5e9ea913d80cea1f8a902 /drivers/gpu/drm/amd | |
parent | 8358dceed981cf389778fba217288da8dadbe103 (diff) |
drm/amdgpu: remove GART page addr array
Not needed any more.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 22 |
2 files changed, 4 insertions, 19 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index 2ac07ebecfd1..e6f7bad735cc 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h | |||
@@ -612,7 +612,6 @@ struct amdgpu_gart { | |||
612 | unsigned num_cpu_pages; | 612 | unsigned num_cpu_pages; |
613 | unsigned table_size; | 613 | unsigned table_size; |
614 | struct page **pages; | 614 | struct page **pages; |
615 | dma_addr_t *pages_addr; | ||
616 | bool ready; | 615 | bool ready; |
617 | const struct amdgpu_gart_funcs *gart_funcs; | 616 | const struct amdgpu_gart_funcs *gart_funcs; |
618 | }; | 617 | }; |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c index 7312d729d300..a13603abed07 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | |||
@@ -240,8 +240,7 @@ void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset, | |||
240 | for (i = 0; i < pages; i++, p++) { | 240 | for (i = 0; i < pages; i++, p++) { |
241 | if (adev->gart.pages[p]) { | 241 | if (adev->gart.pages[p]) { |
242 | adev->gart.pages[p] = NULL; | 242 | adev->gart.pages[p] = NULL; |
243 | adev->gart.pages_addr[p] = adev->dummy_page.addr; | 243 | page_base = adev->dummy_page.addr; |
244 | page_base = adev->gart.pages_addr[p]; | ||
245 | if (!adev->gart.ptr) | 244 | if (!adev->gart.ptr) |
246 | continue; | 245 | continue; |
247 | 246 | ||
@@ -287,10 +286,9 @@ int amdgpu_gart_bind(struct amdgpu_device *adev, unsigned offset, | |||
287 | p = t / (PAGE_SIZE / AMDGPU_GPU_PAGE_SIZE); | 286 | p = t / (PAGE_SIZE / AMDGPU_GPU_PAGE_SIZE); |
288 | 287 | ||
289 | for (i = 0; i < pages; i++, p++) { | 288 | for (i = 0; i < pages; i++, p++) { |
290 | adev->gart.pages_addr[p] = dma_addr[i]; | ||
291 | adev->gart.pages[p] = pagelist[i]; | 289 | adev->gart.pages[p] = pagelist[i]; |
292 | if (adev->gart.ptr) { | 290 | if (adev->gart.ptr) { |
293 | page_base = adev->gart.pages_addr[p]; | 291 | page_base = dma_addr[i]; |
294 | for (j = 0; j < (PAGE_SIZE / AMDGPU_GPU_PAGE_SIZE); j++, t++) { | 292 | for (j = 0; j < (PAGE_SIZE / AMDGPU_GPU_PAGE_SIZE); j++, t++) { |
295 | amdgpu_gart_set_pte_pde(adev, adev->gart.ptr, t, page_base, flags); | 293 | amdgpu_gart_set_pte_pde(adev, adev->gart.ptr, t, page_base, flags); |
296 | page_base += AMDGPU_GPU_PAGE_SIZE; | 294 | page_base += AMDGPU_GPU_PAGE_SIZE; |
@@ -312,7 +310,7 @@ int amdgpu_gart_bind(struct amdgpu_device *adev, unsigned offset, | |||
312 | */ | 310 | */ |
313 | int amdgpu_gart_init(struct amdgpu_device *adev) | 311 | int amdgpu_gart_init(struct amdgpu_device *adev) |
314 | { | 312 | { |
315 | int r, i; | 313 | int r; |
316 | 314 | ||
317 | if (adev->gart.pages) { | 315 | if (adev->gart.pages) { |
318 | return 0; | 316 | return 0; |
@@ -336,16 +334,6 @@ int amdgpu_gart_init(struct amdgpu_device *adev) | |||
336 | amdgpu_gart_fini(adev); | 334 | amdgpu_gart_fini(adev); |
337 | return -ENOMEM; | 335 | return -ENOMEM; |
338 | } | 336 | } |
339 | adev->gart.pages_addr = vzalloc(sizeof(dma_addr_t) * | ||
340 | adev->gart.num_cpu_pages); | ||
341 | if (adev->gart.pages_addr == NULL) { | ||
342 | amdgpu_gart_fini(adev); | ||
343 | return -ENOMEM; | ||
344 | } | ||
345 | /* set GART entry to point to the dummy page by default */ | ||
346 | for (i = 0; i < adev->gart.num_cpu_pages; i++) { | ||
347 | adev->gart.pages_addr[i] = adev->dummy_page.addr; | ||
348 | } | ||
349 | return 0; | 337 | return 0; |
350 | } | 338 | } |
351 | 339 | ||
@@ -358,15 +346,13 @@ int amdgpu_gart_init(struct amdgpu_device *adev) | |||
358 | */ | 346 | */ |
359 | void amdgpu_gart_fini(struct amdgpu_device *adev) | 347 | void amdgpu_gart_fini(struct amdgpu_device *adev) |
360 | { | 348 | { |
361 | if (adev->gart.pages && adev->gart.pages_addr && adev->gart.ready) { | 349 | if (adev->gart.pages && adev->gart.ready) { |
362 | /* unbind pages */ | 350 | /* unbind pages */ |
363 | amdgpu_gart_unbind(adev, 0, adev->gart.num_cpu_pages); | 351 | amdgpu_gart_unbind(adev, 0, adev->gart.num_cpu_pages); |
364 | } | 352 | } |
365 | adev->gart.ready = false; | 353 | adev->gart.ready = false; |
366 | vfree(adev->gart.pages); | 354 | vfree(adev->gart.pages); |
367 | vfree(adev->gart.pages_addr); | ||
368 | adev->gart.pages = NULL; | 355 | adev->gart.pages = NULL; |
369 | adev->gart.pages_addr = NULL; | ||
370 | 356 | ||
371 | amdgpu_dummy_page_fini(adev); | 357 | amdgpu_dummy_page_fini(adev); |
372 | } | 358 | } |