linux-brain/drivers/gpu/drm/etnaviv
Lucas Stach 538caddbe6 drm/etnaviv: fix TS cache flushing on GPUs with BLT engine
commit f232d9ec029ce3e2543b05213e2979e01e503408 upstream.

As seen in the Vivante kernel driver, most GPUs with the BLT engine have
a broken TS cache flush. The workaround is to temporarily set the BLT
command to CLEAR_IMAGE, without actually executing the clear. Apparently
this state change is enough to trigger the required TS cache flush. As
the BLT engine is completely asychronous, we also need a few more stall
states to synchronize the flush with the frontend.

Root-caused-by: Jonathan Marek <jonathan@marek.ca>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Cc: Walter Lozano <walter.lozano@collabora.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-09-05 11:22:50 +02:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile drm/etnaviv: add hardware database 2018-03-09 12:22:37 +01:00
cmdstream.xml.h drm/etnaviv: Allow DRAW_INSTANCED commands 2016-12-02 19:30:22 +01:00
common.xml.h drm/etnaviv: update hardware headers from rnndb 2018-03-09 12:22:36 +01:00
etnaviv_buffer.c drm/etnaviv: fix TS cache flushing on GPUs with BLT engine 2020-09-05 11:22:50 +02:00
etnaviv_cmd_parser.c drm/etnaviv: replace license text with SPDX tags 2018-05-18 15:27:56 +02:00
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 2019-08-22 13:21:16 +10:00
etnaviv_drv.h drm/etnaviv: implement softpin 2019-08-15 12:07:47 +02:00
etnaviv_dump.c drm/etnaviv: fix deadlock in GPU coredump 2019-10-29 18:11:06 +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 Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2019-08-22 13:21:16 +10:00
etnaviv_gem.h Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2019-08-22 13:21:16 +10:00
etnaviv_gem_prime.c Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next 2019-08-22 13:21:16 +10:00
etnaviv_gem_submit.c drm/etnaviv: Fix a leak in submit_pin_objects() 2020-05-27 17:46:42 +02:00
etnaviv_gpu.c drm/etnaviv: Fix error path on failure to enable bus clk 2020-08-19 08:16:07 +02:00
etnaviv_gpu.h drm/etnaviv: implement per-process address spaces on MMUv2 2019-08-15 11:44:27 +02:00
etnaviv_hwdb.c drm/etnaviv: replace license text with SPDX tags 2018-05-18 15:27:56 +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 drm/etnaviv: reinstate MMUv1 command buffer window check 2019-10-29 18:11:50 +01: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: fix perfmon domain interation 2020-05-27 17:46:41 +02:00
etnaviv_perfmon.h drm/etnaviv: replace license text with SPDX tags 2018-05-18 15:27:56 +02:00
etnaviv_sched.c drm/etnaviv: dump only failing submit 2019-08-15 10:48:51 +02:00
etnaviv_sched.h drm/etnaviv: replace license text with SPDX tags 2018-05-18 15:27:56 +02:00
state.xml.h drm/etnaviv: update hardware headers from rnndb 2018-03-09 12:22:36 +01:00
state_3d.xml.h drm/etnaviv: update hardware headers from rnndb 2018-03-09 12:22:36 +01:00
state_blt.xml.h drm/etnaviv: fix TS cache flushing on GPUs with BLT engine 2020-09-05 11:22:50 +02:00
state_hi.xml.h drm/etnaviv: update hardware headers from rnndb 2018-03-09 12:22:36 +01:00