mmc: sdhci: introduce sdhci_update_clock helper to re-enable clock
PATCH 1/1 mmc: sdhci: introduce sdhci_update_clock helper to re-enable clock
There are three places where same piece of code is used. Let's split it to a separate function.
Signed-off-by Andy Shevchenko <[email protected]>
--- drivers/mmc/host/sdhci.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-)
drivers/mmc/host/sdhci.c +13 -14
@@ -1189,6 +1189,15 @@ out: host->clock = clock; } +static inline void sdhci_update_clock (struct sdhci_host *host) +{ +unsigned int clock; + + clock = host->clock; + host->clock =0 ; +sdhci_set_clock (host, clock); +} +static int sdhci_set_power (struct sdhci_host *host,unsigned short power) {u8 pwr =0 ;
@@ -1415,7 +1424,6 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)if (host->version >=SDHCI_SPEC_300 ) {u16 clk, ctrl_2; -unsigned int clock;/* In case of UHS-I modes, set High Speed Enable */ if ((ios->timing == MMC_TIMING_MMC_HS200) ||
@@ -1455,9 +1463,7 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)sdhci_writeb (host, ctrl,SDHCI_HOST_CONTROL );/* Re-enable SD Clock */ - clock = host->clock; - host->clock =0 ; -sdhci_set_clock (host, clock); +sdhci_update_clock (host); }
@@ -1488,9 +1494,7 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios) }/* Re-enable SD Clock */ - clock = host->clock; - host->clock =0 ; -sdhci_set_clock (host, clock); +sdhci_update_clock (host); }else sdhci_writeb (host, ctrl,SDHCI_HOST_CONTROL );
@@ -2080,14 +2084,9 @@ static void sdhci_tasklet_finish(unsigned long param) (host->quirks & SDHCI_QUIRK_RESET_AFTER_REQUEST))) {/* Some controllers need this kick or reset won't work here */ -if (host->quirks &SDHCI_QUIRK_CLOCK_BEFORE_RESET ) { -unsigned int clock; - +if (host->quirks &SDHCI_QUIRK_CLOCK_BEFORE_RESET )/* This is to force an update */ - clock = host->clock; - host->clock =0 ; -sdhci_set_clock (host, clock); - } +sdhci_update_clock (host);/* Spec says we should do both at the same time, but Ricoh controllers do not like that. */
Signature · 1 line
1.7.10.4
Hi,
Quoted 4 lines · Andy Shevchenko
There are three places where same piece of code is used. Let's split it to a separate function.
Signed-off-by Andy Shevchenko <[email protected]>
Thanks, pushed to mmc-next for 3.9.
- Chris.
Signature · 2 lines
Chris Ball <[email protected]> <http://printf.net/> One Laptop Per Child