mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-27 12:57:53 +00:00
drm/amd/amdgpu: Assign GART pages to AMD device mapping
This allows kernel mapped pages like the PDB and PTB to be read via the iomem debugfs when there is no vram in the system. Signed-off-by: Tom St Denis <tom.stdenis@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org # 6.7.x
This commit is contained in:
parent
f1807682de
commit
e7a8594cc2
1 changed files with 8 additions and 0 deletions
|
@ -121,6 +121,7 @@ int amdgpu_gart_table_ram_alloc(struct amdgpu_device *adev)
|
|||
struct amdgpu_bo_param bp;
|
||||
dma_addr_t dma_addr;
|
||||
struct page *p;
|
||||
unsigned long x;
|
||||
int ret;
|
||||
|
||||
if (adev->gart.bo != NULL)
|
||||
|
@ -130,6 +131,10 @@ int amdgpu_gart_table_ram_alloc(struct amdgpu_device *adev)
|
|||
if (!p)
|
||||
return -ENOMEM;
|
||||
|
||||
/* assign pages to this device */
|
||||
for (x = 0; x < (1UL << order); x++)
|
||||
p[x].mapping = adev->mman.bdev.dev_mapping;
|
||||
|
||||
/* If the hardware does not support UTCL2 snooping of the CPU caches
|
||||
* then set_memory_wc() could be used as a workaround to mark the pages
|
||||
* as write combine memory.
|
||||
|
@ -223,6 +228,7 @@ void amdgpu_gart_table_ram_free(struct amdgpu_device *adev)
|
|||
unsigned int order = get_order(adev->gart.table_size);
|
||||
struct sg_table *sg = adev->gart.bo->tbo.sg;
|
||||
struct page *p;
|
||||
unsigned long x;
|
||||
int ret;
|
||||
|
||||
ret = amdgpu_bo_reserve(adev->gart.bo, false);
|
||||
|
@ -234,6 +240,8 @@ void amdgpu_gart_table_ram_free(struct amdgpu_device *adev)
|
|||
sg_free_table(sg);
|
||||
kfree(sg);
|
||||
p = virt_to_page(adev->gart.ptr);
|
||||
for (x = 0; x < (1UL << order); x++)
|
||||
p[x].mapping = NULL;
|
||||
__free_pages(p, order);
|
||||
|
||||
adev->gart.ptr = NULL;
|
||||
|
|
Loading…
Reference in a new issue