[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 featureDo 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