On Thu, Jun 12, 2014 at 4:41 AM, Eli Billauer <eli.billa...@gmail.com> wrote: > The current wait loop just reads the status 10000 times, which makes the > actual timeout period platform-dependent. The udelay() call within the loop > makes the new timeout ~100 ms. > > Signed-off-by: Eli Billauer <eli.billa...@gmail.com> > --- > drivers/mmc/sdhci.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c > index 3125d13..80f3a91 100644 > --- a/drivers/mmc/sdhci.c > +++ b/drivers/mmc/sdhci.c > @@ -226,6 +226,7 @@ int sdhci_send_command(struct mmc *mmc, struct mmc_cmd > *cmd, > break; > if (--retry == 0) > break; > + udelay(10); > } while ((stat & mask) != mask);
Hmmm... Is 100ms part of the spec? I like the idea of making the timeout more time-based, but it seems to me that this changes the timeout quite significantly. If it took N ms before, it now takes N + 100 ms. I think, if we want the timeout to be ~100ms, we should use a udelay of 100 or 1000, and then reduce "retry" accordingly. Andy _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot