mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
omap_hsmmc: Flush posted write to IRQ
Spurious IRQs seen on MMC after 2.6.29. Flush posted write in IRQ handler. The interrupt line is released by clearing the error status bits in the MMCHS_STAT register, which must occur before the interrupt handler returns to avoid unwanted irqs. Hence the need to flush the posted write. Signed-off-by: Kevin Hilman <[email protected]> Signed-off-by: Adrian Hunter <[email protected]> Acked-by: Tony Lindgen <[email protected]> Signed-off-by: Pierre Ossman <[email protected]>
This commit is contained in:
parent
32710e8fd5
commit
00adadc121
1 changed files with 4 additions and 0 deletions
|
|
@ -434,6 +434,8 @@ static irqreturn_t mmc_omap_irq(int irq, void *dev_id)
|
|||
if (host->mrq == NULL) {
|
||||
OMAP_HSMMC_WRITE(host->base, STAT,
|
||||
OMAP_HSMMC_READ(host->base, STAT));
|
||||
/* Flush posted write */
|
||||
OMAP_HSMMC_READ(host->base, STAT);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
|
|
@ -489,6 +491,8 @@ static irqreturn_t mmc_omap_irq(int irq, void *dev_id)
|
|||
}
|
||||
|
||||
OMAP_HSMMC_WRITE(host->base, STAT, status);
|
||||
/* Flush posted write */
|
||||
OMAP_HSMMC_READ(host->base, STAT);
|
||||
|
||||
if (end_cmd || (status & CC))
|
||||
mmc_omap_cmd_done(host, host->cmd);
|
||||
|
|
|
|||
Loading…
Reference in a new issue