[PATCH 7/9] drm/panfrost: Don't set L2_MMU_CONFIG quirks

Steven Price steven.price at arm.com
Mon Feb 14 16:23:37 UTC 2022


On 11/02/2022 20:27, alyssa.rosenzweig at collabora.com wrote:
> From: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
> 
> L2_MMU_CONFIG is an implementation-defined register. Different Mali GPUs
> define slightly different MAX_READS and MAX_WRITES fields, which
> throttle outstanding reads and writes when set to non-zero values. When
> left as zero, reads and writes are not throttled.
> 
> Both kbase and panfrost always zero these registers. Per discussion with
> Steven Price, there are two reasons these quirks may be used:
> 
> 1. Simulating slower memory subsystems. This use case is only of
>    interest to system-on-chip designers; it is not relevant to mainline.
> 
> 2. Working around broken memory subsystems. Hopefully we never see this
>    case in mainline. If we do, we'll need to set this register based on
>    an SoC-compatible, rather than generally matching on the GPU model.
> 
> To the best of our knowledge, these fields are zero at reset, so the
> write is not necessary. Let's remove the write to aid porting to new
> Mali GPUs, which have different layouts for the L2_MMU_CONFIG register.
> 
> Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
> Suggested-by: Steven Price <steven.price at arm.com>

Reviewed-by: Steven Price <steven.price at arm.com>

> ---
>  drivers/gpu/drm/panfrost/panfrost_gpu.c | 12 ------------
>  1 file changed, 12 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> index 1c1e2017aa80..73e5774f01c1 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
> @@ -127,18 +127,6 @@ static void panfrost_gpu_init_quirks(struct panfrost_device *pfdev)
>  	gpu_write(pfdev, GPU_TILER_CONFIG, quirks);
>  
>  
> -	quirks = gpu_read(pfdev, GPU_L2_MMU_CONFIG);
> -
> -	/* Limit read & write ID width for AXI */
> -	if (panfrost_has_hw_feature(pfdev, HW_FEATURE_3BIT_EXT_RW_L2_MMU_CONFIG))
> -		quirks &= ~(L2_MMU_CONFIG_3BIT_LIMIT_EXTERNAL_READS |
> -			    L2_MMU_CONFIG_3BIT_LIMIT_EXTERNAL_WRITES);
> -	else
> -		quirks &= ~(L2_MMU_CONFIG_LIMIT_EXTERNAL_READS |
> -			    L2_MMU_CONFIG_LIMIT_EXTERNAL_WRITES);
> -
> -	gpu_write(pfdev, GPU_L2_MMU_CONFIG, quirks);
> -
>  	quirks = 0;
>  	if ((panfrost_model_eq(pfdev, 0x860) || panfrost_model_eq(pfdev, 0x880)) &&
>  	    pfdev->features.revision >= 0x2000)



More information about the dri-devel mailing list