]> git.baikalelectronics.ru Git - kernel.git/commit
drm/etnaviv: fix TS cache flushing on GPUs with BLT engine
authorLucas Stach <l.stach@pengutronix.de>
Wed, 26 Feb 2020 15:27:08 +0000 (16:27 +0100)
committerLucas Stach <l.stach@pengutronix.de>
Fri, 20 Mar 2020 17:40:44 +0000 (18:40 +0100)
commit43fb36fbc1557fe7f7b95f3d25faf0c9d793a856
tree3a73919e1e4e8f6cf038f59a0bf4971614127410
parente440528b80ee5f64c4ec574ca75d87abf7d985d9
drm/etnaviv: fix TS cache flushing on GPUs with BLT engine

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>
drivers/gpu/drm/etnaviv/etnaviv_buffer.c
drivers/gpu/drm/etnaviv/state_blt.xml.h