From ea9eba3fa041c8e0e01330b374e466acab455da4 Mon Sep 17 00:00:00 2001 From: Seungwon Jeon Date: Mon, 20 Jun 2011 17:24:16 +0900 Subject: [PATCH] --- yaml --- r: 255182 b: refs/heads/master c: 6e83e10d92e12fa0181766a1fbb00d857bfab779 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/mmc/host/dw_mmc.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index f65f656ac569..c7e13efc0430 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1d56c453b14854637567c838109127b8decbf328 +refs/heads/master: 6e83e10d92e12fa0181766a1fbb00d857bfab779 diff --git a/trunk/drivers/mmc/host/dw_mmc.c b/trunk/drivers/mmc/host/dw_mmc.c index 1ca830c171fd..22be372cae7d 100644 --- a/trunk/drivers/mmc/host/dw_mmc.c +++ b/trunk/drivers/mmc/host/dw_mmc.c @@ -1202,7 +1202,6 @@ static irqreturn_t dw_mci_interrupt(int irq, void *dev_id) host->cmd_status = status; smp_wmb(); set_bit(EVENT_CMD_COMPLETE, &host->pending_events); - tasklet_schedule(&host->tasklet); } if (pending & DW_MCI_DATA_ERROR_FLAGS) { @@ -1211,7 +1210,9 @@ static irqreturn_t dw_mci_interrupt(int irq, void *dev_id) host->data_status = status; smp_wmb(); set_bit(EVENT_DATA_ERROR, &host->pending_events); - tasklet_schedule(&host->tasklet); + if (!(pending & (SDMMC_INT_DTO | SDMMC_INT_DCRC | + SDMMC_INT_SBE | SDMMC_INT_EBE))) + tasklet_schedule(&host->tasklet); } if (pending & SDMMC_INT_DATA_OVER) {