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) { |
