drm/amdgpu: Merge get_reserved_allocation to get_vbios_allocations.
Some ASICs need reserved memory for firmware or other components, which is not allowed to be used by driver. amdgpu_gmc_get_reserved_allocation is to handle additional areas. To avoid any missing calling, merged amdgpu_gmc_get_reserved_allocation to amdgpu_gmc_get_vbios_allocations. Acked-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Yongqiang Sun <yongqiang.sun@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
9527b9caf8
commit
3f54355284
@@ -622,6 +622,13 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev)
|
|||||||
{
|
{
|
||||||
unsigned size;
|
unsigned size;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Some ASICs need to reserve a region of video memory to avoid access
|
||||||
|
* from driver
|
||||||
|
*/
|
||||||
|
adev->mman.stolen_reserved_offset = 0;
|
||||||
|
adev->mman.stolen_reserved_size = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO:
|
* TODO:
|
||||||
* Currently there is a bug where some memory client outside
|
* Currently there is a bug where some memory client outside
|
||||||
@@ -636,6 +643,12 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev)
|
|||||||
case CHIP_RENOIR:
|
case CHIP_RENOIR:
|
||||||
adev->mman.keep_stolen_vga_memory = true;
|
adev->mman.keep_stolen_vga_memory = true;
|
||||||
break;
|
break;
|
||||||
|
case CHIP_YELLOW_CARP:
|
||||||
|
if (amdgpu_discovery == 0) {
|
||||||
|
adev->mman.stolen_reserved_offset = 0x1ffb0000;
|
||||||
|
adev->mman.stolen_reserved_size = 64 * PAGE_SIZE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
adev->mman.keep_stolen_vga_memory = false;
|
adev->mman.keep_stolen_vga_memory = false;
|
||||||
break;
|
break;
|
||||||
@@ -756,25 +769,6 @@ uint64_t amdgpu_gmc_vram_cpu_pa(struct amdgpu_device *adev, struct amdgpu_bo *bo
|
|||||||
return amdgpu_bo_gpu_offset(bo) - adev->gmc.vram_start + adev->gmc.aper_base;
|
return amdgpu_bo_gpu_offset(bo) - adev->gmc.vram_start + adev->gmc.aper_base;
|
||||||
}
|
}
|
||||||
|
|
||||||
void amdgpu_gmc_get_reserved_allocation(struct amdgpu_device *adev)
|
|
||||||
{
|
|
||||||
/* Some ASICs need to reserve a region of video memory to avoid access
|
|
||||||
* from driver */
|
|
||||||
adev->mman.stolen_reserved_offset = 0;
|
|
||||||
adev->mman.stolen_reserved_size = 0;
|
|
||||||
|
|
||||||
switch (adev->asic_type) {
|
|
||||||
case CHIP_YELLOW_CARP:
|
|
||||||
if (amdgpu_discovery == 0) {
|
|
||||||
adev->mman.stolen_reserved_offset = 0x1ffb0000;
|
|
||||||
adev->mman.stolen_reserved_size = 64 * PAGE_SIZE;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int amdgpu_gmc_vram_checking(struct amdgpu_device *adev)
|
int amdgpu_gmc_vram_checking(struct amdgpu_device *adev)
|
||||||
{
|
{
|
||||||
struct amdgpu_bo *vram_bo = NULL;
|
struct amdgpu_bo *vram_bo = NULL;
|
||||||
|
|||||||
@@ -331,7 +331,6 @@ amdgpu_gmc_set_vm_fault_masks(struct amdgpu_device *adev, int hub_type,
|
|||||||
bool enable);
|
bool enable);
|
||||||
|
|
||||||
void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev);
|
void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev);
|
||||||
void amdgpu_gmc_get_reserved_allocation(struct amdgpu_device *adev);
|
|
||||||
|
|
||||||
void amdgpu_gmc_init_pdb0(struct amdgpu_device *adev);
|
void amdgpu_gmc_init_pdb0(struct amdgpu_device *adev);
|
||||||
uint64_t amdgpu_gmc_vram_mc2pa(struct amdgpu_device *adev, uint64_t mc_addr);
|
uint64_t amdgpu_gmc_vram_mc2pa(struct amdgpu_device *adev, uint64_t mc_addr);
|
||||||
|
|||||||
@@ -948,7 +948,6 @@ static int gmc_v10_0_sw_init(void *handle)
|
|||||||
return r;
|
return r;
|
||||||
|
|
||||||
amdgpu_gmc_get_vbios_allocations(adev);
|
amdgpu_gmc_get_vbios_allocations(adev);
|
||||||
amdgpu_gmc_get_reserved_allocation(adev);
|
|
||||||
|
|
||||||
/* Memory manager */
|
/* Memory manager */
|
||||||
r = amdgpu_bo_init(adev);
|
r = amdgpu_bo_init(adev);
|
||||||
|
|||||||
Reference in New Issue
Block a user