//calculate the timeout value for SDMMC; added by xbw at 2011-09-27
if(mrq->data)
{
- unit = 3*(1<<20);// unit=3MB
+ unit = 2*(1<<20);// unit=2MB
datasize = mrq->data->blksz*mrq->data->blocks;
multi = datasize/unit;
multi += (datasize%unit)?1:0;
{
host->doneflag = 0;
mrq->cmd->error = -EIO;
- printk(KERN_WARNING "%s..%d.. !!!!! wait for CMD%d timeout [%s]\n",\
- __FUNCTION__, __LINE__, mrq->cmd->opcode, mmc_hostname(host));
+
+ if(0 == mrq->cmd->retries)
+ {
+ printk(KERN_WARNING "%s..%d.. !!!!! wait for CMD%d timeout [%s]\n",\
+ __FUNCTION__, __LINE__, mrq->cmd->opcode, mmc_hostname(host));
+ }
}
#else
wait_for_completion(&complete);
if (host->bus_ops && !host->bus_dead) {
if (host->bus_ops->suspend)
err = host->bus_ops->suspend(host);
+
+#if defined(CONFIG_SDMMC_RK29) && defined(CONFIG_SDMMC_RK29_OLD)
+ //deleted all detail code. //fix the crash bug when error occur during suspend. Modiefyed by xbw at 2012-08-09
+#else
if (err == -ENOSYS || !host->bus_ops->resume) {
/*
* We simply "remove" the card in this case.
host->pm_flags = 0;
err = 0;
}
+#endif
}
mmc_bus_put(host);