On 29 April 2014 13:07, Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: > On 29 April 2014 10:32, Alex Smith <alex.smith@xxxxxxxxxx> wrote: >> As of commit bcc3e1726d ("mmc: block: Use R1 responses for stop cmds for >> read requests"), stop commands for reads do not have MMC_RSP_BUSY set. >> In this case we should not wait for a PRG_DONE IRQ after sending the >> stop command: it will not get raised when the busy flag is not set, >> causing the request to fail with a timeout. >> >> Signed-off-by: Alex Smith <alex.smith@xxxxxxxxxx> >> Cc: Lars-Peter Clausen <lars@xxxxxxxxxx> >> Cc: Ulf Hansson <ulf.hansson@xxxxxxxxxx> >> Cc: Chris Ball <chris@xxxxxxxxxx> >> Cc: James Hogan <james.hogan@xxxxxxxxxx> > > Acked-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> Alex, could you please resend a new version which has been verified using checkpatch. Kind regards Ulf Hansson > >> --- >> drivers/mmc/host/jz4740_mmc.c | 10 ++++++---- >> 1 file changed, 6 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/mmc/host/jz4740_mmc.c b/drivers/mmc/host/jz4740_mmc.c >> index de2139c..1c3368b 100644 >> --- a/drivers/mmc/host/jz4740_mmc.c >> +++ b/drivers/mmc/host/jz4740_mmc.c >> @@ -515,10 +515,12 @@ 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; >> -- >> 1.9.2 >> -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html