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@xxxxxxxxxx> Signed-off-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxx> > --- > 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 -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html