ARM: mmci: no need to call flush_dcache_page() with sg_miter API
authorRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 27 Jan 2011 09:46:29 +0000 (09:46 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 4 Feb 2011 13:25:47 +0000 (13:25 +0000)
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>
drivers/mmc/host/mmci.c

index d7b83a8b35341039158b9be695a33be5ea93a2c8..2563792c01d076d84f1d4d051383cf06835862bf 100644 (file)
@@ -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);
 
This page took 0.025546 seconds and 5 git commands to generate.