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

Commit 83cbcd93 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Chris Ball
Browse files

mmc: Revert "mmc: sdhci: Fix SDHCI_QUIRK_TIMEOUT_USES_SDCLK"



This reverts commit 4b01681c, which introduced a new potential
divide by zero in the process of fixing one.  The subsequent commits
attempt to fix the issue properly.

Signed-off-by: default avatarChris Ball <cjb@laptop.org>
parent 4906baf0
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -632,9 +632,6 @@ static u8 sdhci_calc_timeout(struct sdhci_host *host, struct mmc_command *cmd)
		target_timeout = data->timeout_ns / 1000 +
			data->timeout_clks / host->clock;

	if (host->quirks & SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK)
		host->timeout_clk = host->clock / 1000;

	/*
	 * Figure out needed cycles.
	 * We do this in steps in order to fit inside a 32 bit int.
@@ -645,7 +642,6 @@ static u8 sdhci_calc_timeout(struct sdhci_host *host, struct mmc_command *cmd)
	 *     =>
	 *     (1) / (2) > 2^6
	 */
	BUG_ON(!host->timeout_clk);
	count = 0;
	current_timeout = (1 << 13) * 1000 / host->timeout_clk;
	while (current_timeout < target_timeout) {
@@ -2474,6 +2470,9 @@ int sdhci_add_host(struct sdhci_host *host)
	if (caps[0] & SDHCI_TIMEOUT_CLK_UNIT)
		host->timeout_clk *= 1000;

	if (host->quirks & SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK)
		host->timeout_clk = host->clock / 1000;

	/*
	 * In case of Host Controller v3.00, find out whether clock
	 * multiplier is supported.