drm/omap: partial workaround for DRA7xx DMM errata i878
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 26 Sep 2018 09:11:30 +0000 (12:11 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 2 Oct 2018 06:36:56 +0000 (09:36 +0300)
commitf5b9930b85dc6319fd6bcc259e447eff62fc691c
tree374c62c7c7f398320ab64be23983b0290e483ba6
parent176c866d40551565e78893fc0cb2bc8eed7b3c80
drm/omap: partial workaround for DRA7xx DMM errata i878

Errata i878 says that MPU should not be used to access RAM and DMM at
the same time. As it's not possible to prevent MPU accessing RAM, we
need to access DMM via a proxy.

This patch changes DMM driver to access DMM registers via sDMA. Instead
of doing a normal readl/writel call to read/write a register, we use
sDMA to copy 4 bytes from/to the DMM registers.

This patch provides only a partial workaround for i878, as not only DMM
register reads/writes are affected, but also accesses to the DMM mapped
buffers (framebuffers, usually).

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
drivers/gpu/drm/omapdrm/omap_dmm_priv.h
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c