Message ID | 1467232921-28610-1-git-send-email-steve.rae@raedomain.com |
---|---|
State | Accepted |
Commit | d90bb439335386b3ae6ada89b89720cc66ec9352 |
Delegated to: | Tom Rini |
Headers | show |
2016-06-30 5:42 GMT+09:00 Steve Rae <steve.rae@raedomain.com>: > Otherwise, ocassionally see errors like this: > Flashing sparse image at offset 2078720 > Flashing Sparse Image > sdhci_send_command: Timeout for status update! > mmc fail to send stop cmd > write_sparse_image: Write failed, block #2181088 [0] > > This does not affect the actual writing speed, which is controlled by > the default value: > CONFIG_SDHCI_CMD_DEFAULT_TIMEOUT > > It only increases the retries when reading: > SDHCI_INT_STATUS > to avoid the timeout error. > > Signed-off-by: Steve Rae <steve.rae@raedomain.com> > Reviewed-by: Stefan Roese <sr@denx.de> > Tested-by: Masahiro Yamada <yamada.masahiro@socionext.com> Looks good to me. Thanks!
On 06/30/2016 10:41 AM, Masahiro Yamada wrote: > 2016-06-30 5:42 GMT+09:00 Steve Rae <steve.rae@raedomain.com>: >> Otherwise, ocassionally see errors like this: >> Flashing sparse image at offset 2078720 >> Flashing Sparse Image >> sdhci_send_command: Timeout for status update! >> mmc fail to send stop cmd >> write_sparse_image: Write failed, block #2181088 [0] >> >> This does not affect the actual writing speed, which is controlled by >> the default value: >> CONFIG_SDHCI_CMD_DEFAULT_TIMEOUT >> >> It only increases the retries when reading: >> SDHCI_INT_STATUS >> to avoid the timeout error. >> >> Signed-off-by: Steve Rae <steve.rae@raedomain.com> >> Reviewed-by: Stefan Roese <sr@denx.de> >> Tested-by: Masahiro Yamada <yamada.masahiro@socionext.com> Tested-by: Jaehoon Chung <jh80.chung@samsung.com> Best Regards, Jaehoon Chung > > > Looks good to me. Thanks! > > > >
On Wed, Jun 29, 2016 at 01:42:01PM -0700, Steve Rae wrote: > Otherwise, ocassionally see errors like this: > Flashing sparse image at offset 2078720 > Flashing Sparse Image > sdhci_send_command: Timeout for status update! > mmc fail to send stop cmd > write_sparse_image: Write failed, block #2181088 [0] > > This does not affect the actual writing speed, which is controlled by > the default value: > CONFIG_SDHCI_CMD_DEFAULT_TIMEOUT > > It only increases the retries when reading: > SDHCI_INT_STATUS > to avoid the timeout error. > > Signed-off-by: Steve Rae <steve.rae@raedomain.com> > Reviewed-by: Stefan Roese <sr@denx.de> > Tested-by: Masahiro Yamada <yamada.masahiro@socionext.com> > Tested-by: Jaehoon Chung <jh80.chung@samsung.com> Applied to u-boot/master, thanks!
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c index 5c71ab8..604f18d 100644 --- a/drivers/mmc/sdhci.c +++ b/drivers/mmc/sdhci.c @@ -127,6 +127,7 @@ static int sdhci_transfer_data(struct sdhci_host *host, struct mmc_data *data, #define CONFIG_SDHCI_CMD_MAX_TIMEOUT 3200 #endif #define CONFIG_SDHCI_CMD_DEFAULT_TIMEOUT 100 +#define SDHCI_READ_STATUS_TIMEOUT 1000 static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data) @@ -243,9 +244,9 @@ static int sdhci_send_command(struct mmc *mmc, struct mmc_cmd *cmd, if (stat & SDHCI_INT_ERROR) break; } while (((stat & mask) != mask) && - (get_timer(start) < CONFIG_SDHCI_CMD_DEFAULT_TIMEOUT)); + (get_timer(start) < SDHCI_READ_STATUS_TIMEOUT)); - if (get_timer(start) >= CONFIG_SDHCI_CMD_DEFAULT_TIMEOUT) { + if (get_timer(start) >= SDHCI_READ_STATUS_TIMEOUT) { if (host->quirks & SDHCI_QUIRK_BROKEN_R1B) return 0; else {