aboutsummaryrefslogtreecommitdiff
path: root/drivers/mmc/host/mmci.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2011-01-27 09:46:29 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2011-02-04 13:25:47 +0000
commit7d7aa23cf0700f4025cb61bd1ac517ccf79bd460 (patch)
treecffbfda462ba6841b3adadf5ef82c749b1f625e3 /drivers/mmc/host/mmci.c
parentc8afc9d59ce1100d3f7704e86fda5a25361c45bf (diff)
ARM: mmci: no need to call flush_dcache_page() with sg_miter API
The sg_miter API provides the required cache maintainence, so we don't need to do that ourselves. Remove the unnecessary additional cache maintainence. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/mmc/host/mmci.c')
-rw-r--r--drivers/mmc/host/mmci.c19
1 files changed, 0 insertions, 19 deletions
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index d7b83a8b353..2563792c01d 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -311,22 +311,6 @@ mmci_data_irq(struct mmci_host *host, struct mmc_data *data,
data->error = -EIO;
}
host->data_xfered = round_down(success, data->blksz);
-
- /*
- * We hit an error condition. Ensure that any data
- * partially written to a page is properly coherent.
- */
- if (data->flags & MMC_DATA_READ) {
- struct sg_mapping_iter *sg_miter = &host->sg_miter;
- unsigned long flags;
-
- local_irq_save(flags);
- if (sg_miter_next(sg_miter)) {
- flush_dcache_page(sg_miter->page);
- sg_miter_stop(sg_miter);
- }
- local_irq_restore(flags);
- }
}
if (status & MCI_DATABLOCKEND)
@@ -510,9 +494,6 @@ static irqreturn_t mmci_pio_irq(int irq, void *dev_id)
if (remain)
break;
- if (status & MCI_RXACTIVE)
- flush_dcache_page(sg_miter->page);
-
status = readl(base + MMCISTATUS);
} while (1);