aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/mxs-mmc.c
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@linux.intel.com>2011-10-14 01:15:11 -0400
committerVinod Koul <vinod.koul@linux.intel.com>2011-10-31 00:10:25 -0400
commit05f5799cbe5c9e2c03f604b3de5783cf4d726227 (patch)
treec70394eb8154fb5e717168af98889631078789e7 /drivers/mmc/host/mxs-mmc.c
parent1d0c81e876fe04295ef5df387ba057bf9cfae3d8 (diff)
mmc-host: move to dma_transfer_direction
fixup usage of dma direction by introducing dma_transfer_direction, this patch moves mmc drivers to use new enum Cc: Nicolas Ferre <nicolas.ferre@atmel.com> Cc: Chris Ball <cjb@laptop.org> Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Diffstat (limited to 'drivers/mmc/host/mxs-mmc.c')
-rw-r--r--drivers/mmc/host/mxs-mmc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c
index d513d47364d0..996b9a91d6f4 100644
--- a/drivers/mmc/host/mxs-mmc.c
+++ b/drivers/mmc/host/mxs-mmc.c
@@ -153,6 +153,7 @@ struct mxs_mmc_host {
153 struct dma_chan *dmach; 153 struct dma_chan *dmach;
154 struct mxs_dma_data dma_data; 154 struct mxs_dma_data dma_data;
155 unsigned int dma_dir; 155 unsigned int dma_dir;
156 enum dma_transfer_direction slave_dirn;
156 u32 ssp_pio_words[SSP_PIO_NUM]; 157 u32 ssp_pio_words[SSP_PIO_NUM];
157 158
158 unsigned int version; 159 unsigned int version;
@@ -323,7 +324,7 @@ static struct dma_async_tx_descriptor *mxs_mmc_prep_dma(
323 } 324 }
324 325
325 desc = host->dmach->device->device_prep_slave_sg(host->dmach, 326 desc = host->dmach->device->device_prep_slave_sg(host->dmach,
326 sgl, sg_len, host->dma_dir, append); 327 sgl, sg_len, host->slave_dirn, append);
327 if (desc) { 328 if (desc) {
328 desc->callback = mxs_mmc_dma_irq_callback; 329 desc->callback = mxs_mmc_dma_irq_callback;
329 desc->callback_param = host; 330 desc->callback_param = host;
@@ -432,6 +433,7 @@ static void mxs_mmc_adtc(struct mxs_mmc_host *host)
432 int i; 433 int i;
433 434
434 unsigned short dma_data_dir, timeout; 435 unsigned short dma_data_dir, timeout;
436 enum dma_transfer_direction slave_dirn;
435 unsigned int data_size = 0, log2_blksz; 437 unsigned int data_size = 0, log2_blksz;
436 unsigned int blocks = data->blocks; 438 unsigned int blocks = data->blocks;
437 439
@@ -447,9 +449,11 @@ static void mxs_mmc_adtc(struct mxs_mmc_host *host)
447 449
448 if (data->flags & MMC_DATA_WRITE) { 450 if (data->flags & MMC_DATA_WRITE) {
449 dma_data_dir = DMA_TO_DEVICE; 451 dma_data_dir = DMA_TO_DEVICE;
452 slave_dirn = DMA_MEM_TO_DEV;
450 read = 0; 453 read = 0;
451 } else { 454 } else {
452 dma_data_dir = DMA_FROM_DEVICE; 455 dma_data_dir = DMA_FROM_DEVICE;
456 slave_dirn = DMA_DEV_TO_MEM;
453 read = BM_SSP_CTRL0_READ; 457 read = BM_SSP_CTRL0_READ;
454 } 458 }
455 459
@@ -517,6 +521,7 @@ static void mxs_mmc_adtc(struct mxs_mmc_host *host)
517 WARN_ON(host->data != NULL); 521 WARN_ON(host->data != NULL);
518 host->data = data; 522 host->data = data;
519 host->dma_dir = dma_data_dir; 523 host->dma_dir = dma_data_dir;
524 host->slave_dirn = slave_dirn;
520 desc = mxs_mmc_prep_dma(host, 1); 525 desc = mxs_mmc_prep_dma(host, 1);
521 if (!desc) 526 if (!desc)
522 goto out; 527 goto out;