[PATCH 1/3] drm/amdgpu: cleanup initializing gtt_size

Deucher, Alexander Alexander.Deucher at amd.com
Mon Jun 26 15:54:54 UTC 2017


> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of Christian König
> Sent: Monday, June 26, 2017 9:40 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: john at fastquake.com; Kuehling, Felix
> Subject: [PATCH 1/3] drm/amdgpu: cleanup initializing gtt_size
> 
> From: Christian König <christian.koenig at amd.com>
> 
> Stop spreading the code over all GMC generations.
> 
> Signed-off-by: Christian König <christian.koenig at amd.com>

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>


> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu.h      |  1 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 20
> ++++++++++++++++++++
>  drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c    | 10 +---------
>  drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c    | 10 +---------
>  drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c    | 10 +---------
>  drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c    | 10 +---------
>  6 files changed, 25 insertions(+), 36 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index 7624294..ab1dad2 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -561,6 +561,7 @@ struct amdgpu_gart {
>  	const struct amdgpu_gart_funcs *gart_funcs;
>  };
> 
> +void amdgpu_gart_set_defaults(struct amdgpu_device *adev);
>  int amdgpu_gart_table_ram_alloc(struct amdgpu_device *adev);
>  void amdgpu_gart_table_ram_free(struct amdgpu_device *adev);
>  int amdgpu_gart_table_vram_alloc(struct amdgpu_device *adev);
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> index ccef3cf..8877015 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> @@ -52,6 +52,26 @@
>  /*
>   * Common GART table functions.
>   */
> +
> +/**
> + * amdgpu_gart_set_defaults - set the default gtt_size
> + *
> + * @adev: amdgpu_device pointer
> + *
> + * Set the default gtt_size based on parameters and available VRAM.
> + */
> +void amdgpu_gart_set_defaults(struct amdgpu_device *adev)
> +{
> +	/* unless the user had overridden it, set the gart
> +	 * size equal to the 1024 or vram, whichever is larger.
> +	 */
> +	if (amdgpu_gart_size == -1)
> +		adev->mc.gtt_size =
> max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
> +					adev->mc.mc_vram_size);
> +	else
> +		adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
> +}
> +
>  /**
>   * amdgpu_gart_table_ram_alloc - allocate system ram for gart page table
>   *
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
> b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
> index 35655a1..5cc3f39 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
> @@ -321,15 +321,7 @@ static int gmc_v6_0_mc_init(struct amdgpu_device
> *adev)
>  	adev->mc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) *
> 1024ULL * 1024ULL;
>  	adev->mc.visible_vram_size = adev->mc.aper_size;
> 
> -	/* unless the user had overridden it, set the gart
> -	 * size equal to the 1024 or vram, whichever is larger.
> -	 */
> -	if (amdgpu_gart_size == -1)
> -		adev->mc.gtt_size =
> max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
> -					adev->mc.mc_vram_size);
> -	else
> -		adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
> -
> +	amdgpu_gart_set_defaults(adev);
>  	gmc_v6_0_vram_gtt_location(adev, &adev->mc);
> 
>  	return 0;
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
> b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
> index 83c21a1..15f2c0f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
> @@ -373,15 +373,7 @@ static int gmc_v7_0_mc_init(struct amdgpu_device
> *adev)
>  	if (adev->mc.visible_vram_size > adev->mc.real_vram_size)
>  		adev->mc.visible_vram_size = adev->mc.real_vram_size;
> 
> -	/* unless the user had overridden it, set the gart
> -	 * size equal to the 1024 or vram, whichever is larger.
> -	 */
> -	if (amdgpu_gart_size == -1)
> -		adev->mc.gtt_size =
> max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
> -					adev->mc.mc_vram_size);
> -	else
> -		adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
> -
> +	amdgpu_gart_set_defaults(adev);
>  	gmc_v7_0_vram_gtt_location(adev, &adev->mc);
> 
>  	return 0;
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> index c92af24..213af65 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> @@ -535,15 +535,7 @@ static int gmc_v8_0_mc_init(struct amdgpu_device
> *adev)
>  	if (adev->mc.visible_vram_size > adev->mc.real_vram_size)
>  		adev->mc.visible_vram_size = adev->mc.real_vram_size;
> 
> -	/* unless the user had overridden it, set the gart
> -	 * size equal to the 1024 or vram, whichever is larger.
> -	 */
> -	if (amdgpu_gart_size == -1)
> -		adev->mc.gtt_size =
> max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
> -					adev->mc.mc_vram_size);
> -	else
> -		adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
> -
> +	amdgpu_gart_set_defaults(adev);
>  	gmc_v8_0_vram_gtt_location(adev, &adev->mc);
> 
>  	return 0;
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> index 7c6188b..128989e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> @@ -495,15 +495,7 @@ static int gmc_v9_0_mc_init(struct amdgpu_device
> *adev)
>  	if (adev->mc.visible_vram_size > adev->mc.real_vram_size)
>  		adev->mc.visible_vram_size = adev->mc.real_vram_size;
> 
> -	/* unless the user had overridden it, set the gart
> -	 * size equal to the 1024 or vram, whichever is larger.
> -	 */
> -	if (amdgpu_gart_size == -1)
> -		adev->mc.gtt_size =
> max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
> -					adev->mc.mc_vram_size);
> -	else
> -		adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
> -
> +	amdgpu_gart_set_defaults(adev);
>  	gmc_v9_0_vram_gtt_location(adev, &adev->mc);
> 
>  	return 0;
> --
> 2.7.4
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list