Re: [PATCH] OMAP: HSMMC: Initialize hsmmc controller registerswhen resuming
From: Tony Lindgren
Date: Fri Feb 27 2009 - 17:08:33 EST
* David Brownell <david-b@xxxxxxxxxxx> [090224 14:14]:
> On Tuesday 24 February 2009, Adrian Hunter wrote:
> > > I agree that code removed by this patch is ugly and worth
> > > removing if it's not actually needed for MMC1.
> >
> > Here is a patch against current OMAP tree.
> >
> > From: Adrian Hunter <ext-adrian.hunter@xxxxxxxxx>
> > Date: Tue, 24 Feb 2009 14:48:16 +0200
> > Subject: [PATCH] OMAP: HSMMC: do not re-power when powering off MMC
> >
> > Remove code that turns MMC1 power back on after it
> > has been powered off (when the voltage is 1.8V).
> >
> > The offending code is not necessary because the
> > host controller bus voltage is initialized to
> > 3V when probing or resuming. Note that MMC powers up
> > with the highest voltage available (see mmc_power_up())
> > which will be 3V also.
> >
> > Signed-off-by: Adrian Hunter <ext-adrian.hunter@xxxxxxxxx>
>
> Looks OK to me -- ack. Safe to merge through the MMC
> tree right away, but it'll be a NOP until the glue
> actually supports 1.8V correctly for MMC1 ... so IMO
> no rush to merge for 2.6.29-final.
Good to hear we get rid of that REVISIT part.. My ack here too.
Acked-by: Tony Lindgren <tony@xxxxxxxxxxx>
> > ---
> > drivers/mmc/host/omap_hsmmc.c | 17 -----------------
> > 1 files changed, 0 insertions(+), 17 deletions(-)
> >
> > diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> > index c0d5420..43cec98 100644
> > --- a/drivers/mmc/host/omap_hsmmc.c
> > +++ b/drivers/mmc/host/omap_hsmmc.c
> > @@ -486,9 +486,6 @@ static int omap_mmc_switch_opcond(struct mmc_omap_host *host, int vdd)
> > u32 reg_val = 0;
> > int ret;
> >
> > - if (host->id != OMAP_MMC1_DEVID)
> > - return 0;
> > -
> > /* Disable the clocks */
> > clk_disable(host->fclk);
> > clk_disable(host->iclk);
> > @@ -787,20 +784,6 @@ static void omap_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
> > switch (ios->power_mode) {
> > case MMC_POWER_OFF:
> > mmc_slot(host).set_power(host->dev, host->slot_id, 0, 0);
> > - /*
> > - * Reset interface voltage to 3V if it's 1.8V now;
> > - * only relevant on MMC-1, the others always use 1.8V.
> > - *
> > - * REVISIT: If we are able to detect cards after unplugging
> > - * a 1.8V card, this code should not be needed.
> > - */
> > - if (host->id != OMAP_MMC1_DEVID)
> > - break;
> > - if (!(OMAP_HSMMC_READ(host->base, HCTL) & SDVSDET)) {
> > - int vdd = fls(host->mmc->ocr_avail) - 1;
> > - if (omap_mmc_switch_opcond(host, vdd) != 0)
> > - host->mmc->ios.vdd = vdd;
> > - }
> > break;
> > case MMC_POWER_UP:
> > mmc_slot(host).set_power(host->dev, host->slot_id, 1, ios->vdd);
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/