Madhusudhan wrote: > > A little bit of rearranging the David's changes to the irq handler gets the > MMC/SD cards to work fine again. Changes are shown in the attached patch for > now and it should not hurt the CIRQ handling as well. This breaks detecting card interrupts unless a command is in progress. >>> + status = OMAP_HSMMC_READ(host->base, STAT); >>> + OMAP_HSMMC_WRITE(host->base, STAT, status); >>> + OMAP_HSMMC_READ(host->base, STAT); /* Flush posted write. */ >>> + >>> + if (status & CIRQ) >>> + card_irq = true; >>> + >>> + if (host->mrq == NULL) >>> + goto out; >>> >>> data = host->data; >>> status = OMAP_HSMMC_READ(host->base, STAT); This line is the real problem. We re-read MMCi_STAT after acknowledging (clearing) it. Please see the version #2 of the patchset. David -- David Vrabel, Senior Software Engineer, Drivers CSR, Churchill House, Cambridge Business Park, Tel: +44 (0)1223 692562 Cowley Road, Cambridge, CB4 0WZ http://www.csr.com/ Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html