mmc: meson-gx: add support for descriptor chain mode
authorHeiner Kallweit <hkallweit1@gmail.com>
Fri, 7 Apr 2017 19:22:44 +0000 (21:22 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 24 Apr 2017 19:42:21 +0000 (21:42 +0200)
commit79ed05e329c34c68ab2a87f729e666fcf208fdad
treec3fdf8c4648f371abf3eb7edb4eab654bf64f685
parent0b6ed71c3e95abf6cd1dbfc53919defdce3449f5
mmc: meson-gx: add support for descriptor chain mode

So far a bounce buffer is used to serialize the scatterlist(s).
This overhead can be avoided by switching to descriptor chain mode.
As result the performance is drastically improved. On a Odroid-C2 with
a 128 GB eMMC module raw reads reach 140 MB/s.

Prerequisite for descriptor chain mode is that all scatterlist buffers
are 8 byte aligned for 64-bit DMA. That's not always the case, at least
the brcmfmac SDIO WiFi driver is known to cause problems.

Therefore, for each request, check upfront whether all scatterlist
buffers are 8 byte aligned and fall back to bounce buffer mode if
that's not the case.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/meson-gx-mmc.c