mmc: sdhci: fix data timeout (part 1)
The data timeout gives the minimum amount of time that should be waited before timing out if no data is received from the card. Simply dividing the nanosecond part by 1000 does not give this required guarantee, since such a division rounds down. Use DIV_ROUND_UP() to give the desired timeout. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: stable@vger.kernel.org # v3.15+ Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
771a3dc225
commit
fafcfda9e7
@ -635,7 +635,7 @@ static u8 sdhci_calc_timeout(struct sdhci_host *host, struct mmc_command *cmd)
|
||||
if (!data)
|
||||
target_timeout = cmd->busy_timeout * 1000;
|
||||
else {
|
||||
target_timeout = data->timeout_ns / 1000;
|
||||
target_timeout = DIV_ROUND_UP(data->timeout_ns, 1000);
|
||||
if (host->clock)
|
||||
target_timeout += data->timeout_clks / host->clock;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user