drm/msm/a6xx: Add skeleton A7xx support
authorKonrad Dybcio <konrad.dybcio@linaro.org>
Mon, 25 Sep 2023 14:50:34 +0000 (16:50 +0200)
committerRob Clark <robdclark@chromium.org>
Mon, 9 Oct 2023 18:22:05 +0000 (11:22 -0700)
commitaf66706accdf5afef45204afc87037f876e0665c
treea390b17130fa7571ccfd162b87d853419983cdd0
parent23eeae60b0fa9fb1af7623b42a55a719a4ec4597
drm/msm/a6xx: Add skeleton A7xx support

A7xx GPUs are - from kernel's POV anyway - basically another generation
of A6xx. They build upon the A650/A660_family advancements, skipping some
writes (presumably more values are preset correctly on reset), adding
some new ones and changing others.

One notable difference is the introduction of a second shadow, called BV.
To handle this with the current code, allocate it right after the current
RPTR shadow.

BV handling and .submit are mostly based on Jonathan Marek's work.

All A7xx GPUs are assumed to have a GMU.
A702 is not an A7xx-class GPU, it's a weird forked A610.

Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> # sm8450
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/559285/
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
drivers/gpu/drm/msm/adreno/a6xx_gpu.c
drivers/gpu/drm/msm/adreno/adreno_gpu.c
drivers/gpu/drm/msm/adreno/adreno_gpu.h
drivers/gpu/drm/msm/msm_ringbuffer.h