linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch 3/5] MMC OMAP driver
@ 2006-01-31 13:37 Anderson Briglia
  2006-01-31 15:02 ` Pierre Ossman
  2006-02-01 10:21 ` Russell King
  0 siblings, 2 replies; 3+ messages in thread
From: Anderson Briglia @ 2006-01-31 13:37 UTC (permalink / raw)
  To: linux-kernel; +Cc: Russell King - ARM Linux, Tony Lindgren


Here are some misc fixes we've had in the OMAP tree. Might be worth
testing them on other platforms too.

Index: linux-2.6.15-mmc_omap/drivers/mmc/mmc.c
===================================================================
--- linux-2.6.15-mmc_omap.orig/drivers/mmc/mmc.c	2006-01-30 10:24:50.000000000 -0400
+++ linux-2.6.15-mmc_omap/drivers/mmc/mmc.c	2006-01-30 10:25:19.000000000 -0400
@@ -704,6 +704,7 @@ static void mmc_power_up(struct mmc_host
 	int bit = fls(host->ocr_avail) - 1;

 	host->ios.vdd = bit;
+	host->ios.clock = host->f_min;
 	host->ios.bus_mode = MMC_BUSMODE_OPENDRAIN;
 	host->ios.chip_select = MMC_CS_DONTCARE;
 	host->ios.power_mode = MMC_POWER_UP;
@@ -712,7 +713,6 @@ static void mmc_power_up(struct mmc_host

 	mmc_delay(1);

-	host->ios.clock = host->f_min;
 	host->ios.power_mode = MMC_POWER_ON;
 	host->ops->set_ios(host, &host->ios);

@@ -747,6 +747,7 @@ static int mmc_send_op_cond(struct mmc_h
 		if (cmd.resp[0] & MMC_CARD_BUSY || ocr == 0)
 			break;

+		mmc_delay(1);
 		err = MMC_ERR_TIMEOUT;

 		mmc_delay(10);

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [patch 3/5] MMC OMAP driver
  2006-01-31 13:37 [patch 3/5] MMC OMAP driver Anderson Briglia
@ 2006-01-31 15:02 ` Pierre Ossman
  2006-02-01 10:21 ` Russell King
  1 sibling, 0 replies; 3+ messages in thread
From: Pierre Ossman @ 2006-01-31 15:02 UTC (permalink / raw)
  To: Anderson Briglia; +Cc: linux-kernel, Russell King - ARM Linux, Tony Lindgren

Anderson Briglia wrote:
> Here are some misc fixes we've had in the OMAP tree. Might be worth
> testing them on other platforms too.
> 
> Index: linux-2.6.15-mmc_omap/drivers/mmc/mmc.c
> ===================================================================
> --- linux-2.6.15-mmc_omap.orig/drivers/mmc/mmc.c	2006-01-30 10:24:50.000000000 -0400
> +++ linux-2.6.15-mmc_omap/drivers/mmc/mmc.c	2006-01-30 10:25:19.000000000 -0400
> @@ -704,6 +704,7 @@ static void mmc_power_up(struct mmc_host
>  	int bit = fls(host->ocr_avail) - 1;
> 
>  	host->ios.vdd = bit;
> +	host->ios.clock = host->f_min;
>  	host->ios.bus_mode = MMC_BUSMODE_OPENDRAIN;
>  	host->ios.chip_select = MMC_CS_DONTCARE;
>  	host->ios.power_mode = MMC_POWER_UP;
> @@ -712,7 +713,6 @@ static void mmc_power_up(struct mmc_host
> 
>  	mmc_delay(1);
> 
> -	host->ios.clock = host->f_min;
>  	host->ios.power_mode = MMC_POWER_ON;
>  	host->ops->set_ios(host, &host->ios);
> 

Why? What you're doing there is enable the clock at the same time as the
 power, instead of just the power first. To me, that seems less safe.

> @@ -747,6 +747,7 @@ static int mmc_send_op_cond(struct mmc_h
>  		if (cmd.resp[0] & MMC_CARD_BUSY || ocr == 0)
>  			break;
> 
> +		mmc_delay(1);
>  		err = MMC_ERR_TIMEOUT;
> 
>  		mmc_delay(10);

This seems particularly useless. Probably just a remnant from a separate
mmc_delay() addition to the one that's in mainline now.

Rgds
Pierre


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [patch 3/5] MMC OMAP driver
  2006-01-31 13:37 [patch 3/5] MMC OMAP driver Anderson Briglia
  2006-01-31 15:02 ` Pierre Ossman
@ 2006-02-01 10:21 ` Russell King
  1 sibling, 0 replies; 3+ messages in thread
From: Russell King @ 2006-02-01 10:21 UTC (permalink / raw)
  To: Anderson Briglia; +Cc: linux-kernel, Tony Lindgren

On Tue, Jan 31, 2006 at 09:37:11AM -0400, Anderson Briglia wrote:
> Here are some misc fixes we've had in the OMAP tree. Might be worth
> testing them on other platforms too.

I've already provided feedback on this a year or so ago - and it
annoys me that absolutely _nothing_ has happened as a result.

The quoted part of this patch is WRONG and will _NEVER_ be merged.
You must NOT enable the clock until the power is stable.  Maybe
this is a cause of the problems that you're seeing with various
cards, since you're not allowing them to reset correctly?

Fix this first, then re-test to see if every other fix you have
is actually necessary.

Sorry, but not following the power up protocol invalidates all other
testing wrt card initialisation behaviour.

> Index: linux-2.6.15-mmc_omap/drivers/mmc/mmc.c
> ===================================================================
> --- linux-2.6.15-mmc_omap.orig/drivers/mmc/mmc.c	2006-01-30 10:24:50.000000000 -0400
> +++ linux-2.6.15-mmc_omap/drivers/mmc/mmc.c	2006-01-30 10:25:19.000000000 -0400
> @@ -704,6 +704,7 @@ static void mmc_power_up(struct mmc_host
>  	int bit = fls(host->ocr_avail) - 1;
> 
>  	host->ios.vdd = bit;
> +	host->ios.clock = host->f_min;
>  	host->ios.bus_mode = MMC_BUSMODE_OPENDRAIN;
>  	host->ios.chip_select = MMC_CS_DONTCARE;
>  	host->ios.power_mode = MMC_POWER_UP;
> @@ -712,7 +713,6 @@ static void mmc_power_up(struct mmc_host
> 
>  	mmc_delay(1);
> 
> -	host->ios.clock = host->f_min;
>  	host->ios.power_mode = MMC_POWER_ON;
>  	host->ops->set_ios(host, &host->ios);
> 

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 Serial core

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-02-01 10:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-31 13:37 [patch 3/5] MMC OMAP driver Anderson Briglia
2006-01-31 15:02 ` Pierre Ossman
2006-02-01 10:21 ` Russell King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).