diff options
author | Lucas Stach <l.stach@pengutronix.de> | 2020-02-26 18:27:08 +0300 |
---|---|---|
committer | Lucas Stach <l.stach@pengutronix.de> | 2020-03-20 20:40:44 +0300 |
commit | f232d9ec029ce3e2543b05213e2979e01e503408 (patch) | |
tree | 3a73919e1e4e8f6cf038f59a0bf4971614127410 /drivers/gpu/drm/etnaviv/state_blt.xml.h | |
parent | b72af445cd38a44553a5bcfcce5676155dcffcbb (diff) | |
download | linux-f232d9ec029ce3e2543b05213e2979e01e503408.tar.xz |
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>
Diffstat (limited to 'drivers/gpu/drm/etnaviv/state_blt.xml.h')
-rw-r--r-- | drivers/gpu/drm/etnaviv/state_blt.xml.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/etnaviv/state_blt.xml.h b/drivers/gpu/drm/etnaviv/state_blt.xml.h index daae55995def..0e8bcf9dcc93 100644 --- a/drivers/gpu/drm/etnaviv/state_blt.xml.h +++ b/drivers/gpu/drm/etnaviv/state_blt.xml.h @@ -46,6 +46,8 @@ DEALINGS IN THE SOFTWARE. /* This is a cut-down version of the state_blt.xml.h file */ +#define VIVS_BLT_SET_COMMAND 0x000140ac + #define VIVS_BLT_ENABLE 0x000140b8 #define VIVS_BLT_ENABLE_ENABLE 0x00000001 |