Hi there, On Sep 3, 2013, at 3:50 PM, Przemyslaw Marczak wrote:
> According to JEDEC eMMC specification, after data transfer > (multiple or single block) host must wait for card ready > status. This is done by waiting for command and data lines > to be at idle state after transfer. JEDEC does not specify > maximum timeout. > > Before this change max timeout was 10 ms but in case of UMS > - when system does multiple read/write operations on random > card blocks - timeout causes I/O errors. > The timeout has been increased to 200ms after data transfer. > For other transfers it stays unchanged. > > Tested on Goni and Trats. > > Signed-off-by: Przemyslaw Marczak <p.marc...@samsung.com> > Cc: Pantelis Antoniou <pa...@antoniou-consulting.com> > --- > drivers/mmc/sdhci.c | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c > index 4261991..c495482 100644 > --- a/drivers/mmc/sdhci.c > +++ b/drivers/mmc/sdhci.c > @@ -121,8 +121,18 @@ int sdhci_send_command(struct mmc *mmc, struct mmc_cmd > *cmd, > unsigned int timeout, start_addr = 0; > unsigned int retry = 10000; > > - /* Wait max 10 ms */ > - timeout = 10; > + /* > + * For some commands this function is called with NULL mmc_data > + * pointer. One of those is CMD13 - send card status. > + * After read/write data transfer or block erase commands - host sends > + * CMD13 and is waiting for card ready status with some timeout. > + * According to some internal cards operations after those commands > + * this time must be increased. > + */ > + if (data) > + timeout = 10; /* ms */ > + else > + timeout = 200; > > sdhci_writel(host, SDHCI_INT_ALL_MASK, SDHCI_INT_STATUS); > mask = SDHCI_CMD_INHIBIT | SDHCI_DATA_INHIBIT; > -- > 1.7.9.5 > Can we have a config option for these two values instead of magic numbers? With the defaults being set at 10 & 200 ms. Regards -- Pantelis > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot