Commit 311f3ac7 authored by Guennadi Liakhovetski's avatar Guennadi Liakhovetski Committed by Paul Mundt

mmc: add DMA support to tmio_mmc driver, when used on SuperH

SDHI controllers on SuperH, served by the tmio_mmc driver, can use slave DMA
for data transfer. This patch adds support for the dmaengine API to the
tmio_mmc driver.
Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: default avatarIan Molton <ian@mnementh.co.uk>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 056676da
...@@ -49,6 +49,7 @@ config MFD_SH_MOBILE_SDHI ...@@ -49,6 +49,7 @@ config MFD_SH_MOBILE_SDHI
bool "Support for SuperH Mobile SDHI" bool "Support for SuperH Mobile SDHI"
depends on SUPERH || ARCH_SHMOBILE depends on SUPERH || ARCH_SHMOBILE
select MFD_CORE select MFD_CORE
select TMIO_MMC_DMA
---help--- ---help---
This driver supports the SDHI hardware block found in many This driver supports the SDHI hardware block found in many
SuperH Mobile SoCs. SuperH Mobile SoCs.
...@@ -162,6 +163,11 @@ config MFD_TMIO ...@@ -162,6 +163,11 @@ config MFD_TMIO
bool bool
default n default n
config TMIO_MMC_DMA
bool
select DMA_ENGINE
select DMADEVICES
config MFD_T7L66XB config MFD_T7L66XB
bool "Support Toshiba T7L66XB" bool "Support Toshiba T7L66XB"
depends on ARM && HAVE_CLK depends on ARM && HAVE_CLK
......
This diff is collapsed.
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
*/ */
#include <linux/highmem.h> #include <linux/highmem.h>
#include <linux/interrupt.h>
#include <linux/dmaengine.h>
#define CTL_SD_CMD 0x00 #define CTL_SD_CMD 0x00
#define CTL_ARG_REG 0x04 #define CTL_ARG_REG 0x04
...@@ -106,6 +108,17 @@ struct tmio_mmc_host { ...@@ -106,6 +108,17 @@ struct tmio_mmc_host {
unsigned int sg_off; unsigned int sg_off;
struct platform_device *pdev; struct platform_device *pdev;
/* DMA support */
struct dma_chan *chan_rx;
struct dma_chan *chan_tx;
struct tasklet_struct dma_complete;
struct tasklet_struct dma_issue;
#ifdef CONFIG_TMIO_MMC_DMA
struct dma_async_tx_descriptor *desc;
unsigned int dma_sglen;
dma_cookie_t cookie;
#endif
}; };
#include <linux/io.h> #include <linux/io.h>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment