diff options
| author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2011-04-21 03:09:59 -0400 |
|---|---|---|
| committer | Chris Ball <cjb@laptop.org> | 2011-04-27 19:16:29 -0400 |
| commit | c919c2a073c5d2e076e52a56b44281d922721b61 (patch) | |
| tree | 1e179f87a4c7830c9abaf0c7b0a9452e1d72e69d | |
| parent | 26fc8775b51484d8c0a671198639c6d5ae60533e (diff) | |
mmc: tmio: fix .set_ios(MMC_POWER_UP) handling
The aggressive clock gating for TMIO MMC patch has broken switching
interface power on, using MFD or platform callbacks. Restore the
ios->power_mode == MMC_POWER_UP && ios->clock == 0 case handling.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
| -rw-r--r-- | drivers/mmc/host/tmio_mmc_pio.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 62d37de6de76..710339a85c84 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c | |||
| @@ -728,15 +728,15 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
| 728 | tmio_mmc_set_clock(host, ios->clock); | 728 | tmio_mmc_set_clock(host, ios->clock); |
| 729 | 729 | ||
| 730 | /* Power sequence - OFF -> UP -> ON */ | 730 | /* Power sequence - OFF -> UP -> ON */ |
| 731 | if (ios->power_mode == MMC_POWER_OFF || !ios->clock) { | 731 | if (ios->power_mode == MMC_POWER_UP) { |
| 732 | /* power up SD bus */ | ||
| 733 | if (host->set_pwr) | ||
| 734 | host->set_pwr(host->pdev, 1); | ||
| 735 | } else if (ios->power_mode == MMC_POWER_OFF || !ios->clock) { | ||
| 732 | /* power down SD bus */ | 736 | /* power down SD bus */ |
| 733 | if (ios->power_mode == MMC_POWER_OFF && host->set_pwr) | 737 | if (ios->power_mode == MMC_POWER_OFF && host->set_pwr) |
| 734 | host->set_pwr(host->pdev, 0); | 738 | host->set_pwr(host->pdev, 0); |
| 735 | tmio_mmc_clk_stop(host); | 739 | tmio_mmc_clk_stop(host); |
| 736 | } else if (ios->power_mode == MMC_POWER_UP) { | ||
| 737 | /* power up SD bus */ | ||
| 738 | if (host->set_pwr) | ||
| 739 | host->set_pwr(host->pdev, 1); | ||
| 740 | } else { | 740 | } else { |
| 741 | /* start bus clock */ | 741 | /* start bus clock */ |
| 742 | tmio_mmc_clk_start(host); | 742 | tmio_mmc_clk_start(host); |
