From: Alex Deucher Date: Wed, 29 Jul 2020 16:53:56 +0000 (-0400) Subject: drm/amdgpu: move stolen memory from gmc to mman X-Git-Tag: v5.10.7~1332^2~30^2~226 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cacbbe7c00655985aec37e5e4d02c66d7a1732c9;p=platform%2Fkernel%2Flinux-rpi.git drm/amdgpu: move stolen memory from gmc to mman It's more related to memory management than memory controller. Reviewed-by: Christian König Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c index 0bd7b37..213ef09 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c @@ -449,10 +449,10 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev) case CHIP_VEGA10: case CHIP_RAVEN: case CHIP_RENOIR: - adev->gmc.keep_stolen_vga_memory = true; + adev->mman.keep_stolen_vga_memory = true; break; default: - adev->gmc.keep_stolen_vga_memory = false; + adev->mman.keep_stolen_vga_memory = false; break; } @@ -466,10 +466,10 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev) size = 0; if (size > AMDGPU_VBIOS_VGA_ALLOCATION) { - adev->gmc.stolen_vga_size = AMDGPU_VBIOS_VGA_ALLOCATION; - adev->gmc.stolen_extended_size = size - adev->gmc.stolen_vga_size; + adev->mman.stolen_vga_size = AMDGPU_VBIOS_VGA_ALLOCATION; + adev->mman.stolen_extended_size = size - adev->mman.stolen_vga_size; } else { - adev->gmc.stolen_vga_size = size; - adev->gmc.stolen_extended_size = 0; + adev->mman.stolen_vga_size = size; + adev->mman.stolen_extended_size = 0; } } diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h index c2a85d0..d61bbde 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h @@ -215,11 +215,6 @@ struct amdgpu_gmc { uint8_t vram_vendor; uint32_t srbm_soft_reset; bool prt_warning; - uint64_t stolen_vga_size; - struct amdgpu_bo *stolen_vga_memory; - uint64_t stolen_extended_size; - struct amdgpu_bo *stolen_extended_memory; - bool keep_stolen_vga_memory; uint32_t sdpif_register; /* apertures */ u64 shared_aperture_start; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index 3df9d5a..cc1a5b2 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -1978,16 +1978,16 @@ int amdgpu_ttm_init(struct amdgpu_device *adev) * This is used for VGA emulation and pre-OS scanout buffers to * avoid display artifacts while transitioning between pre-OS * and driver. */ - r = amdgpu_bo_create_kernel_at(adev, 0, adev->gmc.stolen_vga_size, + r = amdgpu_bo_create_kernel_at(adev, 0, adev->mman.stolen_vga_size, AMDGPU_GEM_DOMAIN_VRAM, - &adev->gmc.stolen_vga_memory, + &adev->mman.stolen_vga_memory, NULL); if (r) return r; - r = amdgpu_bo_create_kernel_at(adev, adev->gmc.stolen_vga_size, - adev->gmc.stolen_extended_size, + r = amdgpu_bo_create_kernel_at(adev, adev->mman.stolen_vga_size, + adev->mman.stolen_extended_size, AMDGPU_GEM_DOMAIN_VRAM, - &adev->gmc.stolen_extended_memory, + &adev->mman.stolen_extended_memory, NULL); if (r) return r; @@ -2048,9 +2048,9 @@ int amdgpu_ttm_init(struct amdgpu_device *adev) void amdgpu_ttm_late_init(struct amdgpu_device *adev) { /* return the VGA stolen memory (if any) back to VRAM */ - if (!adev->gmc.keep_stolen_vga_memory) - amdgpu_bo_free_kernel(&adev->gmc.stolen_vga_memory, NULL, NULL); - amdgpu_bo_free_kernel(&adev->gmc.stolen_extended_memory, NULL, NULL); + if (!adev->mman.keep_stolen_vga_memory) + amdgpu_bo_free_kernel(&adev->mman.stolen_vga_memory, NULL, NULL); + amdgpu_bo_free_kernel(&adev->mman.stolen_extended_memory, NULL, NULL); } /** @@ -2063,8 +2063,8 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev) amdgpu_ttm_training_reserve_vram_fini(adev); /* return the stolen vga memory back to VRAM */ - if (adev->gmc.keep_stolen_vga_memory) - amdgpu_bo_free_kernel(&adev->gmc.stolen_vga_memory, NULL, NULL); + if (adev->mman.keep_stolen_vga_memory) + amdgpu_bo_free_kernel(&adev->mman.stolen_vga_memory, NULL, NULL); /* return the IP Discovery TMR memory back to VRAM */ amdgpu_bo_free_kernel(&adev->discovery_memory, NULL, NULL); amdgpu_ttm_fw_reserve_vram_fini(adev); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h index 17c8d0d..98af87f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h @@ -59,6 +59,12 @@ struct amdgpu_mman { struct mutex gtt_window_lock; /* Scheduler entity for buffer moves */ struct drm_sched_entity entity; + + uint64_t stolen_vga_size; + struct amdgpu_bo *stolen_vga_memory; + uint64_t stolen_extended_size; + struct amdgpu_bo *stolen_extended_memory; + bool keep_stolen_vga_memory; }; struct amdgpu_copy_mem {