Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fafcfda9 authored by Russell King's avatar Russell King Committed by Ulf Hansson
Browse files

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: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Cc: stable@vger.kernel.org # v3.15+
Tested-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 771a3dc2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
	}