* [PATCH 01/11] atmel-mci: map DMA sglist on the DMA engine
@ 2011-02-10 15:08 Linus Walleij
2011-02-10 15:17 ` Nicolas Ferre
0 siblings, 1 reply; 2+ messages in thread
From: Linus Walleij @ 2011-02-10 15:08 UTC (permalink / raw)
To: linux-mmc, Chris Ball; +Cc: Dan Williams, Nicolas Ferre, Linus Walleij
As established for the MMCI, it is proper to map the DMA buffers
on the DMA engine which is the one actually performing the DMA.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
drivers/mmc/host/atmel-mci.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index ad2a7a0..045bdbb 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -578,7 +578,8 @@ static void atmci_dma_cleanup(struct atmel_mci *host)
struct mmc_data *data = host->data;
if (data)
- dma_unmap_sg(&host->pdev->dev, data->sg, data->sg_len,
+ dma_unmap_sg(host->dma.chan->device->dev,
+ data->sg, data->sg_len,
((data->flags & MMC_DATA_WRITE)
? DMA_TO_DEVICE : DMA_FROM_DEVICE));
}
@@ -684,7 +685,8 @@ atmci_prepare_data_dma(struct atmel_mci *host, struct mmc_data *data)
else
direction = DMA_TO_DEVICE;
- sglen = dma_map_sg(&host->pdev->dev, data->sg, data->sg_len, direction);
+ sglen = dma_map_sg(chan->device->dev, data->sg,
+ data->sg_len, direction);
if (sglen != data->sg_len)
goto unmap_exit;
desc = chan->device->device_prep_slave_sg(chan,
@@ -699,7 +701,7 @@ atmci_prepare_data_dma(struct atmel_mci *host, struct mmc_data *data)
return 0;
unmap_exit:
- dma_unmap_sg(&host->pdev->dev, data->sg, sglen, direction);
+ dma_unmap_sg(chan->device->dev, data->sg, sglen, direction);
return -ENOMEM;
}
--
1.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH 01/11] atmel-mci: map DMA sglist on the DMA engine
2011-02-10 15:08 [PATCH 01/11] atmel-mci: map DMA sglist on the DMA engine Linus Walleij
@ 2011-02-10 15:17 ` Nicolas Ferre
0 siblings, 0 replies; 2+ messages in thread
From: Nicolas Ferre @ 2011-02-10 15:17 UTC (permalink / raw)
To: Linus Walleij; +Cc: linux-mmc, Chris Ball, Dan Williams
Le 10/02/2011 16:08, Linus Walleij :
> As established for the MMCI, it is proper to map the DMA buffers
> on the DMA engine which is the one actually performing the DMA.
>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
> ---
> drivers/mmc/host/atmel-mci.c | 8 +++++---
> 1 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
> index ad2a7a0..045bdbb 100644
> --- a/drivers/mmc/host/atmel-mci.c
> +++ b/drivers/mmc/host/atmel-mci.c
> @@ -578,7 +578,8 @@ static void atmci_dma_cleanup(struct atmel_mci *host)
> struct mmc_data *data = host->data;
>
> if (data)
> - dma_unmap_sg(&host->pdev->dev, data->sg, data->sg_len,
> + dma_unmap_sg(host->dma.chan->device->dev,
> + data->sg, data->sg_len,
> ((data->flags & MMC_DATA_WRITE)
> ? DMA_TO_DEVICE : DMA_FROM_DEVICE));
> }
> @@ -684,7 +685,8 @@ atmci_prepare_data_dma(struct atmel_mci *host, struct mmc_data *data)
> else
> direction = DMA_TO_DEVICE;
>
> - sglen = dma_map_sg(&host->pdev->dev, data->sg, data->sg_len, direction);
> + sglen = dma_map_sg(chan->device->dev, data->sg,
> + data->sg_len, direction);
> if (sglen != data->sg_len)
> goto unmap_exit;
> desc = chan->device->device_prep_slave_sg(chan,
> @@ -699,7 +701,7 @@ atmci_prepare_data_dma(struct atmel_mci *host, struct mmc_data *data)
>
> return 0;
> unmap_exit:
> - dma_unmap_sg(&host->pdev->dev, data->sg, sglen, direction);
> + dma_unmap_sg(chan->device->dev, data->sg, sglen, direction);
> return -ENOMEM;
> }
>
--
Nicolas Ferre
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-02-10 15:49 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-10 15:08 [PATCH 01/11] atmel-mci: map DMA sglist on the DMA engine Linus Walleij
2011-02-10 15:17 ` Nicolas Ferre
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox