diff options
Diffstat (limited to 'drivers/mmc/host/jz4740_mmc.c')
| -rw-r--r-- | drivers/mmc/host/jz4740_mmc.c | 15 | 
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/mmc/host/jz4740_mmc.c b/drivers/mmc/host/jz4740_mmc.c index 66516339e3a..537d6c7a5ae 100644 --- a/drivers/mmc/host/jz4740_mmc.c +++ b/drivers/mmc/host/jz4740_mmc.c @@ -515,10 +515,13 @@ static irqreturn_t jz_mmc_irq_worker(int irq, void *devid)  		jz4740_mmc_send_command(host, req->stop); -		timeout = jz4740_mmc_poll_irq(host, JZ_MMC_IRQ_PRG_DONE); -		if (timeout) { -			host->state = JZ4740_MMC_STATE_DONE; -			break; +		if (mmc_resp_type(req->stop) & MMC_RSP_BUSY) { +			timeout = jz4740_mmc_poll_irq(host, +						      JZ_MMC_IRQ_PRG_DONE); +			if (timeout) { +				host->state = JZ4740_MMC_STATE_DONE; +				break; +			}  		}  	case JZ4740_MMC_STATE_DONE:  		break; @@ -880,8 +883,6 @@ static int jz4740_mmc_suspend(struct device *dev)  {  	struct jz4740_mmc_host *host = dev_get_drvdata(dev); -	mmc_suspend_host(host->mmc); -  	jz_gpio_bulk_suspend(jz4740_mmc_pins, jz4740_mmc_num_pins(host));  	return 0; @@ -893,8 +894,6 @@ static int jz4740_mmc_resume(struct device *dev)  	jz_gpio_bulk_resume(jz4740_mmc_pins, jz4740_mmc_num_pins(host)); -	mmc_resume_host(host->mmc); -  	return 0;  }  | 
