mmc: sdhci: Always pass clock request value zero to set_clock host op
authorTodd Poynor <toddpoynor@google.com>
Tue, 27 Dec 2011 13:48:46 +0000 (15:48 +0200)
committerChris Ball <cjb@laptop.org>
Thu, 12 Jan 2012 04:58:47 +0000 (23:58 -0500)
To allow the set_clock host op to disable the SDCLK source when not
needed, always call the host op when the requested clock speed is
zero.  Do this even if host->clock already equals zero, because
the SDHCI driver may set that value (without calling the host op)
to force an update at the next (non-zero-speed) call.

Signed-off-by: Todd Poynor <toddpoynor@google.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/host/sdhci.c

index 6f1fd02fe01b08467f9c24067d28336528c6a177..e06299734f5dc1a51b85da5f6ff384fb389af61d 100644 (file)
@@ -1068,7 +1068,7 @@ static void sdhci_set_clock(struct sdhci_host *host, unsigned int clock)
        u16 clk = 0;
        unsigned long timeout;
 
-       if (clock == host->clock)
+       if (clock && clock == host->clock)
                return;
 
        host->mmc->actual_clock = 0;