diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2017-05-20 23:42:53 +0200 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2017-05-24 09:44:32 +0530 |
commit | 1e1cfc7213a37131a53e7dfada75dce77b8e043d (patch) | |
tree | 265d4643fd8ac54d591ab14b2fd38afb68992c4b /include/drm | |
parent | ebe9b3005d90d4500f4feb605a4ab6191e2dd34f (diff) | |
download | linux-stable-1e1cfc7213a37131a53e7dfada75dce77b8e043d.tar.gz linux-stable-1e1cfc7213a37131a53e7dfada75dce77b8e043d.tar.bz2 linux-stable-1e1cfc7213a37131a53e7dfada75dce77b8e043d.zip |
dmaengine: pl08x: Add support for Faraday Technology FTDMAC020
After reading the specs for the Faraday Technology FTDMAC020 found
in the Gemini platform, it becomes pretty evident that this is just
another PL08x derivative, and should be handled like such by simply
extending the existing PL08x driver to handle the quirks in this
hardware.
This patch makes memcpy work and has been tested on the Gemini and
also regression-tested on the Nomadik NHK15 using dmatest with
10 threads per channel without a hinch for hours.
I have not implemented slave DMA in those codepaths, because this
device (Gemini) does not use slave DMA, and it seems like devices
using FTDMAC020 for device DMA have a slightly different register
layout so some real hardware is needed to proceed with this. I
left some FIXME etc in the code for this.
I had to do some refactorings of some helper functions, but I have
not split those into separate patches because these refactorings
do not make much sense without the increased complexity of handling
the FTDMAC020.
The DMA test would hang the platform on me on the Gemini after a
few thousand iterations, however after turning of the caches the
problem immediately disappeared and I could run the DMA engine
with 10 threads pers physical channel for days in a row without
a crash. I think there is no problem with the DMA driver: instead
it is something fishy in the FA526 cache handling code that get
pretty heavily exercised by the DMA engine and we need to go and
fix that instead.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'include/drm')
0 files changed, 0 insertions, 0 deletions