drm/amdgpu: move stolen memory from gmc to mman
It's more related to memory management than memory controller. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
7438ae6e52
commit
cacbbe7c00
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user