Thread (17 messages) 17 messages, 4 authors, 2016-05-23

[RFC PATCH 2/3] mmc: host: omap_hsmmc: Enable ADMA2

From: Peter Ujfalusi <hidden>
Date: 2016-05-19 08:09:38
Also in: linux-mmc, linux-omap, lkml

On 05/18/2016 10:30 PM, Tony Lindgren wrote:
* Peter Ujfalusi [off-list ref] [160518 03:26]:
quoted
On 05/18/16 11:45, Kishon Vijay Abraham I wrote:
quoted
omap hsmmc host controller has ADMA2 feature. Enable it here
for better read and write throughput. Add a new dt binding
"ti,use_adma" to enable ADMA2.

Signed-off-by: Kishon Vijay Abraham I <redacted>
---
 .../devicetree/bindings/mmc/ti-omap-hsmmc.txt      |    1 +
 drivers/mmc/host/omap_hsmmc.c                      |  320 ++++++++++++++++----
 include/linux/platform_data/hsmmc-omap.h           |    1 +
 3 files changed, 256 insertions(+), 66 deletions(-)
diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
index 74166a0..eb5ceec2 100644
--- a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
+++ b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
@@ -28,6 +28,7 @@ specifier is required.
 dma-names: List of DMA request names. These strings correspond
 1:1 with the DMA specifiers listed in dmas. The string naming is
 to be "rx" and "tx" for RX and TX DMA requests, respectively.
+ti,use_adma: enable adma2 feature
Do we have use case when you want to fall back to generic DMA instead of aDMA2?
Yes my guess is that PM runtime breaks with these currently..
quoted
IMHO if the driver supports aDMA2, it is going to use it instead of the
generic s/eDMA.
What I mean is:
the driver implements the aDMA2 support.
if the IP has support for aDMA2, then it is going to use it, otherwise it will
use the generic DMA.
Ideally the adma support would be a separate loadable module,
similar how the cppi41dma is a child of the OTG controller.
The Master DMA is part of the hsmmc IP block. If the same ADMA module is
present on other IPs it might be beneficial to have a helper library to handle
it (allocating the descriptor pool, wrinting, updating descriptors, etc).
That way the systems wanting to use adma can just specify it
in the binding, and adma PM runtime support can be added later
on.

Of course this won't work if the adma registers are sprinkled
within the MMC controller registers..

Regards,

Tony

-- 
P?ter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help