On Monday 05 February 2018 06:20 PM, Kishon Vijay Abraham I wrote: > sdhci has a 10 second timeout to catch devices that stop responding. > Instead of programming 10 second arbitrary value, calculate the total time > it would take for the entire transfer to happen and program the timeout > value accordingly. > > Signed-off-by: Kishon Vijay Abraham I <kishon@xxxxxx> > --- > drivers/mmc/host/sdhci.c | 46 +++++++++++++++++++++++++++++++++++++++------- > drivers/mmc/host/sdhci.h | 10 ++++++++++ > 2 files changed, 49 insertions(+), 7 deletions(-) > > diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c > index 0489572d1892..d52f9e7eabe2 100644 > --- a/drivers/mmc/host/sdhci.c > +++ b/drivers/mmc/host/sdhci.c > @@ -673,6 +673,37 @@ static void sdhci_adma_table_post(struct sdhci_host *host, > } > } > > +static void sdhci_calc_sw_timeout(struct sdhci_host *host, > + struct mmc_command *cmd, > + unsigned int target_timeout) > +{ > + struct mmc_data *data = cmd->data; > + struct mmc_host *mmc = host->mmc; > + unsigned long long transfer_time; > + struct mmc_ios *ios = &mmc->ios; > + unsigned char bus_width = ios->bus_width; This should have been 1 << ios->bus_width. -Kishon -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html