linux-uconsole/drivers/gpu/drm/tegra
Dmitry Osipenko 1715a46322 drm/tegra: gem: Fix CPU-cache maintenance for BO's allocated using get_pages()
commit 61b51fb51c upstream.

The allocated pages need to be invalidated in CPU caches. On ARM32 the
DMA_BIDIRECTIONAL flag only ensures that data is written-back to DRAM and
the data stays in CPU cache lines. While the DMA_FROM_DEVICE flag ensures
that the corresponding CPU cache lines are getting invalidated and nothing
more, that's exactly what is needed for a newly allocated pages.

This fixes randomly failing rendercheck tests on Tegra30 using the
Opentegra driver for tests that use small-sized pixmaps (10x10 and less,
i.e. 1-2 memory pages) because apparently CPU reads out stale data from
caches and/or that data is getting evicted to DRAM at the time of HW job
execution.

Fixes: bd43c9f0fa ("drm/tegra: gem: Map pages via the DMA API")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-06-09 09:17:22 +02:00
..
dc.c driver core: Rename flag AUTOREMOVE to AUTOREMOVE_CONSUMER 2018-07-09 12:14:31 +02:00
dc.h
dpaux.c
dpaux.h
drm.c drm/tegra: Fix comparison operator for buffer size 2018-07-09 10:33:45 +02:00
drm.h drm/tegra: Track client version 2018-05-18 21:59:51 +02:00
dsi.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
dsi.h
falcon.c
falcon.h
fb.c drm/tegra: Use drm_gem_fb_destroy 2018-05-17 17:44:48 +02:00
gem.c drm/tegra: gem: Fix CPU-cache maintenance for BO's allocated using get_pages() 2019-06-09 09:17:22 +02:00
gem.h
gr2d.c drm/tegra: gr2d: Track interface version 2018-05-18 22:00:13 +02:00
gr2d.h
gr3d.c drm/tegra: gr3d: Track interface version 2018-05-18 22:00:25 +02:00
gr3d.h
hdmi.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
hdmi.h
hub.c drm/tegra: hub: Fix dereference before check 2019-05-04 09:20:18 +02:00
hub.h
Kconfig
Makefile
mipi-phy.c
mipi-phy.h
output.c drm: drop _mode_ from update_edit_property() 2018-07-13 18:40:27 +02:00
plane.c drm/tegra: dc: Support rotation property 2018-05-18 21:56:21 +02:00
plane.h drm/tegra: dc: Support rotation property 2018-05-18 21:56:21 +02:00
rgb.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
sor.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
sor.h
trace.c
trace.h
vic.c drm/tegra: vic: Track interface version 2018-05-18 22:00:41 +02:00
vic.h