summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/msm/adreno/a8xx_gpu.c
diff options
context:
space:
mode:
authorRob Clark <robin.clark@oss.qualcomm.com>2026-05-26 07:50:42 -0700
committerRob Clark <robin.clark@oss.qualcomm.com>2026-05-29 07:07:28 -0700
commit90f2b0461b0cf41b1553d9ec51fba0d6bb1695b2 (patch)
treed7391e3b088fcf1a7206f1c52bf397de27af1ba1 /drivers/gpu/drm/msm/adreno/a8xx_gpu.c
parent4250923945d05311f41411e8e9d3cffc72a9c523 (diff)
downloadlinux-next-90f2b0461b0cf41b1553d9ec51fba0d6bb1695b2.tar.gz
linux-next-90f2b0461b0cf41b1553d9ec51fba0d6bb1695b2.zip
drm/msm/a6xx: Add yield & flush helper
It's a common pattern, needing to insert a yield packet before flushing the rb. And we'll need this once again for configuring perfcntr SEL regs. So add a helper. Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Anna Maniscalco <anna.maniscalco2000@gmail.com> Reviewed-by: Akhil P Oommen <akhilpo@oss.qualcomm.com> Patchwork: https://patchwork.freedesktop.org/patch/728208/ Message-ID: <20260526145137.160554-9-robin.clark@oss.qualcomm.com>
Diffstat (limited to 'drivers/gpu/drm/msm/adreno/a8xx_gpu.c')
-rw-r--r--drivers/gpu/drm/msm/adreno/a8xx_gpu.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/drivers/gpu/drm/msm/adreno/a8xx_gpu.c b/drivers/gpu/drm/msm/adreno/a8xx_gpu.c
index 9cf307cf9fda..f29cd6e1fde0 100644
--- a/drivers/gpu/drm/msm/adreno/a8xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a8xx_gpu.c
@@ -484,15 +484,7 @@ static int a8xx_preempt_start(struct msm_gpu *gpu)
a6xx_emit_set_pseudo_reg(ring, a6xx_gpu, NULL);
- /* Yield the floor on command completion */
- OUT_PKT7(ring, CP_CONTEXT_SWITCH_YIELD, 4);
- OUT_RING(ring, 0x00);
- OUT_RING(ring, 0x00);
- OUT_RING(ring, 0x00);
- /* Generate interrupt on preemption completion */
- OUT_RING(ring, 0x00);
-
- a6xx_flush(gpu, ring);
+ a6xx_flush_yield(gpu, ring);
return a8xx_idle(gpu, ring) ? 0 : -EINVAL;
}