bianbu-linux-6.6/drivers/gpu/drm/panfrost
Boris Brezillon 5bc5cc2819 drm/panfrost: Move the GPU reset bits outside the timeout handler
We've fixed many races in panfrost_job_timedout() but some remain.
Instead of trying to fix it again, let's simplify the logic and move
the reset bits to a separate work scheduled when one of the queue
reports a timeout.

v5:
- Simplify panfrost_scheduler_stop() (Steven Price)
- Always restart the queue in panfrost_scheduler_start() even if
  the status is corrupted (Steven Price)

v4:
- Rework the logic to prevent a race between drm_sched_start()
  (reset work) and drm_sched_job_timedout() (timeout work)
- Drop Steven's R-b
- Add dma_fence annotation to the panfrost_reset() function (Daniel Vetter)

v3:
- Replace the atomic_cmpxchg() by an atomic_xchg() (Robin Murphy)
- Add Steven's R-b

v2:
- Use atomic_cmpxchg() to conditionally schedule the reset work
  (Steven Price)

Fixes: 1a11a88cfd ("drm/panfrost: Fix job timeout handling")
Cc: <stable@vger.kernel.org>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201105151704.2010667-1-boris.brezillon@collabora.com
2020-11-16 10:27:30 +00:00
..
Kconfig drm/panfrost: Require the simple_ondemand governor 2019-06-10 09:30:34 -06:00
Makefile drm/panfrost: Add madvise and shrinker support 2019-08-08 15:57:36 -06:00
panfrost_devfreq.c drm/panfrost: simplify the return expression of panfrost_devfreq_target() 2020-10-01 13:59:01 +01:00
panfrost_devfreq.h drm/panfrost: add regulators to devfreq 2020-08-07 10:11:26 -06:00
panfrost_device.c drm/panfrost: Move the GPU reset bits outside the timeout handler 2020-11-16 10:27:30 +00:00
panfrost_device.h drm/panfrost: Move the GPU reset bits outside the timeout handler 2020-11-16 10:27:30 +00:00
panfrost_drv.c Merge drm/drm-next into drm-misc-next 2020-11-10 17:11:37 +01:00
panfrost_features.h
panfrost_gem.c Linux 5.10-rc3 2020-11-10 14:36:36 +01:00
panfrost_gem.h drm/panfrost: Fix a deadlock between the shrinker and madvise path 2020-11-03 09:21:52 +01:00
panfrost_gem_shrinker.c drm/panfrost: Fix a deadlock between the shrinker and madvise path 2020-11-03 09:21:52 +01:00
panfrost_gpu.c drm/panfrost: increase readl_relaxed_poll_timeout values 2020-10-09 16:57:27 +01:00
panfrost_gpu.h drm/panfrost: add amlogic reset quirk callback 2020-09-21 10:13:50 +01:00
panfrost_issues.h drm/panfrost: Add errata descriptions from kbase 2019-08-23 12:16:27 -05:00
panfrost_job.c drm/panfrost: Move the GPU reset bits outside the timeout handler 2020-11-16 10:27:30 +00:00
panfrost_job.h drm/panfrost: Add the panfrost_gem_mapping concept 2020-01-21 10:32:55 -06:00
panfrost_mmu.c Merge drm/drm-next into drm-misc-next 2020-11-02 11:17:54 +01:00
panfrost_mmu.h drm/panfrost: Add the panfrost_gem_mapping concept 2020-01-21 10:32:55 -06:00
panfrost_perfcnt.c drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
panfrost_perfcnt.h drm/panfrost: Open/close the perfcnt BO 2019-12-06 11:06:20 -06:00
panfrost_regs.h drm/panfrost: add amlogic reset quirk callback 2020-09-21 10:13:50 +01:00
TODO drm/panfrost: Remove commented out call to panfrost_core_dump 2019-10-09 13:36:56 -05:00