Commit 010c8bba authored by Adam Skladowski's avatar Adam Skladowski Committed by Rob Clark
Browse files

drm: msm: adreno: Disable preemption on Adreno 510



Downstream driver appears to not support preemption on A510 target,
trying to use one make device slow and fill log with rings related errors.
Set num_rings to 1 to disable preemption.

Suggested-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Fixes: e20c9284 ("drm/msm/adreno: Add support for Adreno 510 GPU")
Signed-off-by: default avatarAdam Skladowski <a39.skl@gmail.com>
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/526898/
Link: https://lore.kernel.org/r/20230314221757.13096-1-a39.skl@gmail.com


Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
parent 7ec6c41e
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -1743,6 +1743,7 @@ struct msm_gpu *a5xx_gpu_init(struct drm_device *dev)
	struct a5xx_gpu *a5xx_gpu = NULL;
	struct adreno_gpu *adreno_gpu;
	struct msm_gpu *gpu;
	unsigned int nr_rings;
	int ret;

	if (!pdev) {
@@ -1763,7 +1764,12 @@ struct msm_gpu *a5xx_gpu_init(struct drm_device *dev)

	check_speed_bin(&pdev->dev);

	ret = adreno_gpu_init(dev, pdev, adreno_gpu, &funcs, 4);
	nr_rings = 4;

	if (adreno_is_a510(adreno_gpu))
		nr_rings = 1;

	ret = adreno_gpu_init(dev, pdev, adreno_gpu, &funcs, nr_rings);
	if (ret) {
		a5xx_destroy(&(a5xx_gpu->base.base));
		return ERR_PTR(ret);