Re: [PATCH] MMC: tmio: fix a recent regression: restore .set_ios(MMC_POWER_UP) handling

Chris Ball
2011-04-21T15:31:49Z

Hi,

On Thu, Apr 21 2011, Guennadi Liakhovetski wrote:
> 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>
> ---
>
> This one should go in 2.6.39
>
> 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 6e3271d..f4fac9f 100644
> --- a/drivers/mmc/host/tmio_mmc_pio.c
> +++ b/drivers/mmc/host/tmio_mmc_pio.c
> @@ -772,15 +772,15 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
> tmio_mmc_set_clock(host, ios->clock);
>
> /* Power sequence - OFF -> UP -> ON */
> - if (ios->power_mode == MMC_POWER_OFF || !ios->clock) {
> + if (ios->power_mode == MMC_POWER_UP) {
> + /* power up SD bus */
> + if (host->set_pwr)
> + host->set_pwr(host->pdev, 1);
> + } else if (ios->power_mode == MMC_POWER_OFF || !ios->clock) {
> /* power down SD bus */
> if (ios->power_mode == MMC_POWER_OFF && host->set_pwr)
> host->set_pwr(host->pdev, 0);
> tmio_mmc_clk_stop(host);
> - } else if (ios->power_mode == MMC_POWER_UP) {
> - /* power up SD bus */
> - if (host->set_pwr)
> - host->set_pwr(host->pdev, 1);
> } else {
> /* start bus clock */
> tmio_mmc_clk_start(host);

Thanks, pushed to mmc-next for .39.

Paul Parsons (CC'd) submitted a similar patch to fix the same regression.
Paul, please could you check that Guennadi's patch fixes your problem?

- Chris.
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child