linux/drivers/gpu/drm/msm/adreno
Marijn Suijten 7cc29fcdfc drm/msm: a5xx: Make preemption reset case reentrant
nr_rings is reset to 1, but when this function is called for a second
(and third!) time nr_rings > 1 is false, thus the else case is entered
to set up a buffer for the RPTR shadow and consequently written to
RB_RPTR_ADDR, hanging platforms without WHERE_AM_I firmware support.

Restructure the condition in such a way that shadow buffer setup only
ever happens when has_whereami is true; otherwise preemption is only
finalized when the number of ring buffers has not been reset to 1 yet.

Fixes: 8907afb476 ("drm/msm: Allow a5xx to mark the RPTR shadow as privileged")
Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@chromium.org>
2020-12-05 08:19:15 -08:00
..
a2xx_gpu.c drm/msm: Get rid of the REG_ADRENO offsets 2020-09-15 10:47:44 -07:00
a2xx_gpu.h drm/msm/adreno: add a2xx 2018-12-11 13:07:06 -05:00
a2xx.xml.h drm/msm: sync generated headers 2020-07-31 06:46:16 -07:00
a3xx_gpu.c drm/msm: Fix duplicate gpu node in icc summary 2020-11-04 08:26:26 -08:00
a3xx_gpu.h drm/msm/gpu: add ocmem init/cleanup functions 2019-10-07 08:17:39 -07:00
a3xx.xml.h drm/msm: sync generated headers 2020-07-31 06:46:16 -07:00
a4xx_gpu.c drm/msm: Fix duplicate gpu node in icc summary 2020-11-04 08:26:26 -08:00
a4xx_gpu.h drm/msm/gpu: add ocmem init/cleanup functions 2019-10-07 08:17:39 -07:00
a4xx.xml.h drm/msm: sync generated headers 2020-07-31 06:46:16 -07:00
a5xx_debugfs.c drm/msm/adreno: remove return value of function XX_print 2020-09-04 12:15:30 -07:00
a5xx_gpu.c drm/msm: a5xx: Make preemption reset case reentrant 2020-12-05 08:19:15 -08:00
a5xx_gpu.h drm/msm: Allow a5xx to mark the RPTR shadow as privileged 2020-09-15 10:47:44 -07:00
a5xx_power.c drm/msm: Allow a5xx to mark the RPTR shadow as privileged 2020-09-15 10:47:44 -07:00
a5xx_preempt.c drm/msm: Document and rename preempt_lock 2020-11-04 16:00:56 -08:00
a5xx.xml.h drm/msm: sync generated headers 2020-07-31 06:46:16 -07:00
a6xx_gmu.c drm/msm/gpu: Convert retire/recover work to kthread_worker 2020-11-01 10:13:32 -08:00
a6xx_gmu.h drm/msm/a6xx: fix crashstate capture for A650 2020-07-31 06:46:16 -07:00
a6xx_gmu.xml.h drm/msm: sync generated headers 2020-07-31 06:46:16 -07:00
a6xx_gpu_state.c drm/msm/adreno/a6xx_gpu_state: Make some local functions static 2020-11-29 10:36:53 -08:00
a6xx_gpu_state.h drm/msm/a6xx: fix crashdec section name typo 2020-08-22 10:36:30 -07:00
a6xx_gpu.c drm/msm/a6xx: Add support for using system cache on MMU500 based targets 2020-11-29 11:04:06 -08:00
a6xx_gpu.h drm/msm/a6xx: Add support for using system cache on MMU500 based targets 2020-11-29 11:04:06 -08:00
a6xx_hfi.c drm/msm/a6xx: add build_bw_table for A640/A650 2020-07-31 06:46:16 -07:00
a6xx_hfi.h drm/msm/a6xx: HFI v2 for A640 and A650 2020-05-18 09:26:33 -07:00
a6xx.xml.h drm/msm: sync generated headers 2020-07-31 06:46:16 -07:00
adreno_common.xml.h drm/msm: sync generated headers 2020-07-31 06:46:16 -07:00
adreno_device.c drm/msm: Implement shutdown callback for adreno 2020-11-04 08:26:26 -08:00
adreno_gpu.c drm/msm/a6xx: Add support for using system cache(LLC) 2020-11-29 11:03:37 -08:00
adreno_gpu.h drm/msm: Get rid of the REG_ADRENO offsets 2020-09-15 10:47:44 -07:00
adreno_pm4.xml.h drm/msm: Allow a5xx to mark the RPTR shadow as privileged 2020-09-15 10:47:44 -07:00