|
@@ -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;
|
|
|
}
|
|
|
|