[PATCH 1/2] drm/etnaviv: add missing quirks for GC300
Christian Gmeiner
christian.gmeiner at gmail.com
Sat Sep 3 11:38:37 UTC 2022
>
> The GC300's features register doesn't specify that a 2D pipe is
> available, and like the GC600, its idle register reports zero bits where
> modules aren't present.
>
> Signed-off-by: Doug Brown <doug at schmorgal.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>
> ---
> drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> index 37018bc55810..f667e7906d1f 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> @@ -416,6 +416,12 @@ static void etnaviv_hw_identify(struct etnaviv_gpu *gpu)
> if (gpu->identity.model == chipModel_GC700)
> gpu->identity.features &= ~chipFeatures_FAST_CLEAR;
>
> + /* These models/revisions don't have the 2D pipe bit */
> + if ((gpu->identity.model == chipModel_GC500 &&
> + gpu->identity.revision <= 2) ||
> + gpu->identity.model == chipModel_GC300)
> + gpu->identity.features |= chipFeatures_PIPE_2D;
> +
> if ((gpu->identity.model == chipModel_GC500 &&
> gpu->identity.revision < 2) ||
> (gpu->identity.model == chipModel_GC300 &&
> @@ -449,8 +455,9 @@ static void etnaviv_hw_identify(struct etnaviv_gpu *gpu)
> gpu_read(gpu, VIVS_HI_CHIP_MINOR_FEATURE_5);
> }
>
> - /* GC600 idle register reports zero bits where modules aren't present */
> - if (gpu->identity.model == chipModel_GC600)
> + /* GC600/300 idle register reports zero bits where modules aren't present */
> + if (gpu->identity.model == chipModel_GC600 ||
> + gpu->identity.model == chipModel_GC300)
> gpu->idle_mask = VIVS_HI_IDLE_STATE_TX |
> VIVS_HI_IDLE_STATE_RA |
> VIVS_HI_IDLE_STATE_SE |
> --
> 2.25.1
>
--
greets
--
Christian Gmeiner, MSc
https://christian-gmeiner.info/privacypolicy
More information about the etnaviv
mailing list