Re: [PATCH] drm/msm/a5xx: Add support for Adreno 506 GPU

Bjorn Andersson
2021-10-22T17:31:50Z

On Fri 22 Oct 04:43 PDT 2021, Vladimir Lypak wrote:

> This GPU is found on SoCs such as MSM8953(650MHz), SDM450(600MHz),
> SDM632(725MHz).
>
> Signed-off-by: Vladimir Lypak <vladimir.lypak@gmail.com>
> ---
> drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 34 ++++++++++++++--------
> drivers/gpu/drm/msm/adreno/adreno_device.c | 18 ++++++++++++
> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 5 ++++
> 3 files changed, 45 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
> index 5e2750eb3810..249a0d8bc673 100644
> --- a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
> +++ b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
> @@ -441,7 +441,7 @@ void a5xx_set_hwcg(struct msm_gpu *gpu, bool state)
> const struct adreno_five_hwcg_regs *regs;
> unsigned int i, sz;
>
> - if (adreno_is_a508(adreno_gpu)) {
> + if (adreno_is_a506(adreno_gpu) || adreno_is_a508(adreno_gpu)) {
> regs = a50x_hwcg;
> sz = ARRAY_SIZE(a50x_hwcg);
> } else if (adreno_is_a509(adreno_gpu) || adreno_is_a512(adreno_gpu)) {
> @@ -485,7 +485,7 @@ static int a5xx_me_init(struct msm_gpu *gpu)
> OUT_RING(ring, 0x00000000);
>
> /* Specify workarounds for various microcode issues */
> - if (adreno_is_a530(adreno_gpu)) {
> + if (adreno_is_a506(adreno_gpu) || adreno_is_a530(adreno_gpu)) {
> /* Workaround for token end syncs
> * Force a WFI after every direct-render 3D mode draw and every
> * 2D mode 3 draw
> @@ -620,8 +620,17 @@ static int a5xx_ucode_init(struct msm_gpu *gpu)
>
> static int a5xx_zap_shader_resume(struct msm_gpu *gpu)
> {
> + struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
> int ret;
>
> + /*
> + * Adreno 506,508,512 have CPZ Retention feature and
> + * don't need to resume zap shader
> + */
> + if (adreno_is_a506(adreno_gpu) || adreno_is_a508(adreno_gpu) ||
> + adreno_is_a512(adreno_gpu))
> + return 0;

Afaict all other changes in the patch adds a506 support, but this hunk
changes a508 and a512 behavior.

I'm not saying that the change is wrong, but this hunk deserves to be in
it's own patch - so that if there's any impact on those other versions
it can be tracked down to that specific patch.

Thanks,
Bjorn