OpenCloudOS-Kernel/drivers/gpu/drm/etnaviv
Boris Brezillon 78efe21b6f drm/sched: Allow using a dedicated workqueue for the timeout/fault tdr
Mali Midgard/Bifrost GPUs have 3 hardware queues but only a global GPU
reset. This leads to extra complexity when we need to synchronize timeout
works with the reset work. One solution to address that is to have an
ordered workqueue at the driver level that will be used by the different
schedulers to queue their timeout work. Thanks to the serialization
provided by the ordered workqueue we are guaranteed that timeout
handlers are executed sequentially, and can thus easily reset the GPU
from the timeout handler without extra synchronization.

v5:
* Add a new paragraph to the timedout_job() method

v3:
* New patch

v4:
* Actually use the timeout_wq to queue the timeout work

Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Christian König <christian.koenig@amd.com>
Cc: Qiang Yu <yuq825@gmail.com>
Cc: Emma Anholt <emma@anholt.net>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210630062751.2832545-3-boris.brezillon@collabora.com
2021-07-01 08:53:25 +02:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile
cmdstream.xml.h
common.xml.h
etnaviv_buffer.c drm/etnaviv: fix TS cache flushing on GPUs with BLT engine 2020-03-20 18:40:44 +01:00
etnaviv_cmd_parser.c
etnaviv_cmdbuf.c drm/etnaviv: implement softpin 2019-08-15 12:07:47 +02:00
etnaviv_cmdbuf.h drm/etnaviv: rework MMU handling 2019-08-15 10:56:45 +02:00
etnaviv_drv.c Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2020-12-03 13:25:23 +10:00
etnaviv_drv.h Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2020-12-03 13:25:23 +10:00
etnaviv_dump.c drm/etnaviv: dump: fix sparse warnings 2021-01-22 12:38:17 +01:00
etnaviv_dump.h drm/etnaviv: pass mmu pointer to etnaviv_core_dump_mmu 2019-08-15 10:53:31 +02:00
etnaviv_gem.c dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
etnaviv_gem.h drm/etnaviv: Replace zero-length array with flexible-array member 2020-03-05 12:15:46 +01:00
etnaviv_gem_prime.c Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2021-06-11 13:00:58 +10:00
etnaviv_gem_submit.c Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2021-06-11 13:00:58 +10:00
etnaviv_gpu.c drm/etnaviv: rework linear window offset calculation 2021-05-03 16:14:40 +02:00
etnaviv_gpu.h drm/etnaviv: determine product, customer and eco id 2020-02-26 16:20:04 +01:00
etnaviv_hwdb.c drm/etnaviv: add HWDB entry for GC7000 rev 6204 2021-06-10 15:09:40 +02:00
etnaviv_iommu.c drm/etnaviv: fix missing unlock on error in etnaviv_iommuv1_context_alloc() 2019-09-02 12:48:55 +02:00
etnaviv_iommu_v2.c drm/etnaviv: fix dumping of iommuv2 2019-10-29 18:12:24 +01:00
etnaviv_mmu.c Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2020-12-03 13:25:23 +10:00
etnaviv_mmu.h drm/etnaviv: allow to request specific virtual address for gem mapping 2019-08-15 11:58:59 +02:00
etnaviv_perfmon.c drm/etnaviv: add pipe_select(..) helper 2020-09-25 12:02:58 +02:00
etnaviv_perfmon.h
etnaviv_sched.c drm/sched: Allow using a dedicated workqueue for the timeout/fault tdr 2021-07-01 08:53:25 +02:00
etnaviv_sched.h
state.xml.h
state_3d.xml.h
state_blt.xml.h drm/etnaviv: fix TS cache flushing on GPUs with BLT engine 2020-03-20 18:40:44 +01:00
state_hi.xml.h drm/etnaviv: Update idle bits 2020-03-03 10:58:57 +01:00