diff options
author | Konrad Dybcio <konrad.dybcio@linaro.org> | 2023-04-01 13:54:45 +0200 |
---|---|---|
committer | Konrad Dybcio <konrad.dybcio@linaro.org> | 2023-04-26 11:21:57 +0000 |
commit | 71f33336f2dcb89d9fd33385ced14044ffbd3a63 (patch) | |
tree | c7b5c8379f69dd9304dcd850ad243b19e011453a | |
parent | 98bb17991ad304320fbddbb2c7c1322e69357c4b (diff) |
drm/msm/adreno: Disable has_cached_coherent in GMU wrapper configurations
A610 and A619_holi don't support the feature. Disable it to make the GPU stop
crashing after almost each and every submission - the received data on
the GPU end was simply incomplete in garbled, resulting in almost nothing
being executed properly. Extend the disablement to adreno_has_gmu_wrapper,
as none of the GMU wrapper Adrenos that don't support yet seem to feature it.
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
-rw-r--r-- | drivers/gpu/drm/msm/adreno/adreno_device.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c b/drivers/gpu/drm/msm/adreno/adreno_device.c index 8cff86e9d35c..b133755a56c4 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_device.c +++ b/drivers/gpu/drm/msm/adreno/adreno_device.c @@ -551,7 +551,6 @@ static int adreno_bind(struct device *dev, struct device *master, void *data) config.rev.minor, config.rev.patchid); priv->is_a2xx = config.rev.core == 2; - priv->has_cached_coherent = config.rev.core >= 6; gpu = info->init(drm); if (IS_ERR(gpu)) { @@ -563,6 +562,10 @@ static int adreno_bind(struct device *dev, struct device *master, void *data) if (ret) return ret; + if (config.rev.core >= 6) + if (!adreno_has_gmu_wrapper(to_adreno_gpu(gpu))) + priv->has_cached_coherent = true; + return 0; } |