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 drm/tegra: dc: Rename supports_blending to has_legacy_blending 2018-05-17 14:08:44 +02:00
dpaux.c drm/tegra: dpaux: Keep reset defaults for hybrid pad parameters 2017-12-21 14:52:37 +01:00
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 drm/tegra: gem: Make __tegra_gem_mmap() available more widely 2018-03-08 14:38:30 +01:00
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 drm/tegra: hub: Use private object for global state 2018-03-17 00:03:36 +01:00
Kconfig
Makefile drm/tegra: Add Tegra186 display hub support 2017-12-13 14:16:37 +01:00
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 drm/tegra: sor: Support HDMI 2.0 modes 2017-12-13 14:36:37 +01:00
trace.c
trace.h
vic.c drm/tegra: vic: Track interface version 2018-05-18 22:00:41 +02:00
vic.h