Commit dcc3bcfc authored by Ulf Hansson's avatar Ulf Hansson
Browse files

Revert "mmc: sdhci: Disable SD card clock before changing parameters"



It has turned out the trying to strictly conform to the SDHCI specification
is causing problems. Let's revert and start over.

This reverts commit fb3bbc46.

Cc: Erick Shepherd <erick.shepherd@ni.com>
Cc: stable@vger.kernel.org
Fixes: fb3bbc46 ("mmc: sdhci: Disable SD card clock before changing parameters")
Suggested-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Reported-by: default avatarJonathan Liu <net147@gmail.com>
Reported-by: default avatarSalvatore Bonaccorso <carnil@debian.org>
Closes: https://bugs.debian.org/1108065


Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Link: https://lore.kernel.org/r/20250624110932.176925-1-ulf.hansson@linaro.org
parent 49b14db0
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -2065,15 +2065,10 @@ void sdhci_set_clock(struct sdhci_host *host, unsigned int clock)

	host->mmc->actual_clock = 0;

	clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL);
	if (clk & SDHCI_CLOCK_CARD_EN)
		sdhci_writew(host, clk & ~SDHCI_CLOCK_CARD_EN,
			SDHCI_CLOCK_CONTROL);

	if (clock == 0) {
	sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL);

	if (clock == 0)
		return;
	}

	clk = sdhci_calc_clk(host, clock, &host->mmc->actual_clock);
	sdhci_enable_clk(host, clk);