[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200902241410.19132.david-b@pacbell.net>
Date: Tue, 24 Feb 2009 14:10:18 -0800
From: David Brownell <david-b@...bell.net>
To: Adrian Hunter <ext-adrian.hunter@...ia.com>
Cc: Kyungmin Park <kyungmin.park@...sung.com>,
Kim Kyuwon <chammoru@...il.com>,
"linux-omap@...r.kernel.org" <linux-omap@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"drzeus-mmc@...eus.cx" <drzeus-mmc@...eus.cx>,
±è±Ô¿ø <q1.kim@...sung.com>,
"Lavinen Jarkko (Nokia-D/Helsinki)" <jarkko.lavinen@...ia.com>
Subject: Re: [PATCH] OMAP: HSMMC: Initialize hsmmc controller registers when resuming
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@...ia.com>
> 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@...ia.com>
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.
> ---
> Â 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-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists