diff options
author | Sebastian Andrzej Siewior <sebastian@breakpoint.cc> | 2009-06-18 09:33:32 +0200 |
---|---|---|
committer | Pierre Ossman <pierre@ossman.eu> | 2009-07-31 12:28:45 +0200 |
commit | da60a91d012bcb10bc5bcd86d585c4281742832c (patch) | |
tree | d21d2edc4d3aaa9ee289461cc4b3aff174b70c93 /drivers/mmc/host/sdhci.c | |
parent | lib/scatterlist: add a flags to signalize mapping direction (diff) | |
download | linux-da60a91d012bcb10bc5bcd86d585c4281742832c.tar.xz linux-da60a91d012bcb10bc5bcd86d585c4281742832c.zip |
sdhci: use SG_MITER_TO_SG/SG_MITER_FROM_SG
so the page will be flushed on unmap on ARCH which need it.
Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Signed-off-by: Pierre Ossman <pierre@ossman.eu>
Diffstat (limited to 'drivers/mmc/host/sdhci.c')
-rw-r--r-- | drivers/mmc/host/sdhci.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 62041c7e9246..fc96f8cb9c0b 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -773,8 +773,14 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_data *data) } if (!(host->flags & SDHCI_REQ_USE_DMA)) { - sg_miter_start(&host->sg_miter, - data->sg, data->sg_len, SG_MITER_ATOMIC); + int flags; + + flags = SG_MITER_ATOMIC; + if (host->data->flags & MMC_DATA_READ) + flags |= SG_MITER_TO_SG; + else + flags |= SG_MITER_FROM_SG; + sg_miter_start(&host->sg_miter, data->sg, data->sg_len, flags); host->blocks = data->blocks; } |