]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/mmc/host/atmel-mci.c
atmel-mci: Don't overwrite error bits when NOTBUSY is set
[linux-2.6-omap-h63xx.git] / drivers / mmc / host / atmel-mci.c
index d45dfa259386fc934d1bdcc5294a875c69f76465..02529af7c7476f80f2df55721c4102cb2637a42f 100644 (file)
@@ -694,6 +694,7 @@ static void atmci_start_request(struct atmel_mci *host,
 
        host->pending_events = 0;
        host->completed_events = 0;
+       host->data_status = 0;
 
        if (host->need_reset) {
                mci_writel(host, CR, MCI_CR_SWRST);
@@ -1408,7 +1409,8 @@ static irqreturn_t atmci_interrupt(int irq, void *dev_id)
                if (pending & MCI_NOTBUSY) {
                        mci_writel(host, IDR,
                                        ATMCI_DATA_ERROR_FLAGS | MCI_NOTBUSY);
-                       host->data_status = status;
+                       if (!host->data_status)
+                               host->data_status = status;
                        smp_wmb();
                        atmci_set_pending(host, EVENT_DATA_COMPLETE);
                        tasklet_schedule(&host->tasklet);