[PATCH 1/2] drm/amdgpu: Merge get_reserved_allocation to get_vbios_allocations.

Christian König ckoenig.leichtzumerken at gmail.com
Tue Mar 15 14:40:22 UTC 2022


Am 15.03.22 um 15:11 schrieb Yongqiang Sun:
> 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.
>
> Signed-off-by: Yongqiang Sun <yongqiang.sun at amd.com>
> Change-Id: I142127513047a3e81573eb983c510d763b548a24

Acked-by: Christian König <christian.koenig at amd.com>

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 32 ++++++++++---------------
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h |  1 -
>   drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c  |  1 -
>   3 files changed, 13 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> index 7c2a9555b7cc..f18d050a14cf 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> @@ -626,6 +626,13 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev)
>   {
>   	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:
>   	 * Currently there is a bug where some memory client outside
> @@ -640,6 +647,12 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev)
>   	case CHIP_RENOIR:
>   		adev->mman.keep_stolen_vga_memory = true;
>   		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:
>   		adev->mman.keep_stolen_vga_memory = false;
>   		break;
> @@ -760,25 +773,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;
>   }
>   
> -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)
>   {
>   	struct amdgpu_bo *vram_bo = NULL;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
> index 93505bb0a36c..032b0313f277 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
> @@ -331,7 +331,6 @@ amdgpu_gmc_set_vm_fault_masks(struct amdgpu_device *adev, int hub_type,
>   			      bool enable);
>   
>   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);
>   uint64_t amdgpu_gmc_vram_mc2pa(struct amdgpu_device *adev, uint64_t mc_addr);
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> index f60b7bd4dbf5..3c1d440824a7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> @@ -948,7 +948,6 @@ static int gmc_v10_0_sw_init(void *handle)
>   		return r;
>   
>   	amdgpu_gmc_get_vbios_allocations(adev);
> -	amdgpu_gmc_get_reserved_allocation(adev);
>   
>   	/* Memory manager */
>   	r = amdgpu_bo_init(adev);



More information about the amd-gfx mailing list