diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2011-03-09 08:45:44 -0500 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2011-03-25 10:39:59 -0400 |
commit | 5fd0157901d5a8f497f3d3b95cb4beebf1641d1b (patch) | |
tree | 5604735371eb07f4a579ad66ceab3048f230c81f | |
parent | a7edbe399b40fb82ccd11216fd88d24e428025c5 (diff) |
mmc: tmio: support aggressive clock gating
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
-rw-r--r-- | drivers/mmc/host/tmio_mmc_pio.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 69772ab3ca22..e35e17992e38 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c | |||
@@ -747,19 +747,18 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
747 | tmio_mmc_set_clock(host, ios->clock); | 747 | tmio_mmc_set_clock(host, ios->clock); |
748 | 748 | ||
749 | /* Power sequence - OFF -> UP -> ON */ | 749 | /* Power sequence - OFF -> UP -> ON */ |
750 | switch (ios->power_mode) { | 750 | if (ios->power_mode == MMC_POWER_OFF || !ios->clock) { |
751 | case MMC_POWER_OFF: /* power down SD bus */ | 751 | /* power down SD bus */ |
752 | if (host->set_pwr) | 752 | if (ios->power_mode == MMC_POWER_OFF && host->set_pwr) |
753 | host->set_pwr(host->pdev, 0); | 753 | host->set_pwr(host->pdev, 0); |
754 | tmio_mmc_clk_stop(host); | 754 | tmio_mmc_clk_stop(host); |
755 | break; | 755 | } else if (ios->power_mode == MMC_POWER_UP) { |
756 | case MMC_POWER_ON: /* start bus clock */ | 756 | /* power up SD bus */ |
757 | tmio_mmc_clk_start(host); | ||
758 | break; | ||
759 | case MMC_POWER_UP: /* power up SD bus */ | ||
760 | if (host->set_pwr) | 757 | if (host->set_pwr) |
761 | host->set_pwr(host->pdev, 1); | 758 | host->set_pwr(host->pdev, 1); |
762 | break; | 759 | } else { |
760 | /* start bus clock */ | ||
761 | tmio_mmc_clk_start(host); | ||
763 | } | 762 | } |
764 | 763 | ||
765 | switch (ios->bus_width) { | 764 | switch (ios->bus_width) { |