mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
mmc: dw_mmc: correct mishandling error interrupt
Datasheet of SYNOPSYS mentions that DTO(Data Transfer Over) interrupt will be raised even if some error interrupts, however it is actually found that DTO does not occur. SYNOPSYS has confirmed this issue. Current implementation defers the call of tasklet_schedule until DTO when the error interrupts is happened. This patch fixes error handling. Signed-off-by: Seungwon Jeon <[email protected]> Acked-by: Jaehoon Chung <[email protected]> Acked-by: Will Newton <[email protected]> Signed-off-by: Chris Ball <[email protected]>
This commit is contained in:
parent
182c908159
commit
9b2026a125
1 changed files with 1 additions and 3 deletions
|
|
@ -1580,9 +1580,7 @@ static irqreturn_t dw_mci_interrupt(int irq, void *dev_id)
|
|||
host->data_status = pending;
|
||||
smp_wmb();
|
||||
set_bit(EVENT_DATA_ERROR, &host->pending_events);
|
||||
if (!(pending & (SDMMC_INT_DTO | SDMMC_INT_DCRC |
|
||||
SDMMC_INT_SBE | SDMMC_INT_EBE)))
|
||||
tasklet_schedule(&host->tasklet);
|
||||
tasklet_schedule(&host->tasklet);
|
||||
}
|
||||
|
||||
if (pending & SDMMC_INT_DATA_OVER) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue