]> 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)
commit59f86b924c03213b35c55b3e91c698beea2c255d
tree3a73919e1e4e8f6cf038f59a0bf4971614127410
parentecd0f48e11a46d1636260112df95bdfac80337fe
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