All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] mmc: lower init clock frequency to 300kHz
@ 2010-01-01 23:11 Ben Nizette
  2010-01-06  7:01 ` Pavel Machek
  0 siblings, 1 reply; 5+ messages in thread
From: Ben Nizette @ 2010-01-01 23:11 UTC (permalink / raw)
  To: Pierre Ossman
  Cc: Adrian Hunter, linux-mmc, linux-kernel, Matt Fleming,
	Hein_Tibosch, Sascha Hauer


A good few months ago, commit

commit 8dfd0374be84793360db7fff2e635d2cd3bbcb21
Author: Sascha Hauer <s.hauer@pengutronix.de>
Date:   Thu Apr 9 08:32:02 2009 +0200

    MMC core: limit minimum initialization frequency to 400kHz

broke a few setups with cards which don't quite adhere to the MMC spec - 400kHz is just too fast for them.  In my testing, all of the cards which fail at 400kHz are OK by about 350Khz but this patch drops the floor to 300 to be on the safe side.

Dropping the floor also means that the warning will trigger on some valid setups, albeit ones which won't run particularly crappy cards.  This patch then slightly softens the language of said warning to make it clear it isn't always a problem.

V1 of this patch dropped the floor all the way to 50kHz on the basis that it was only for a few 100 bytes so that very low speed shouldn't matter.  After some discussion [1] the consensus was that 50 was too slow after all so this patch is a bit more sensible.

Signed-off-by: Ben Nizette <bn@niasdigital.com>

[1] http://lkml.org/lkml/2009/7/1/529

---
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 7dab2e5..49f0eae 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -891,12 +891,12 @@ static void mmc_power_up(struct mmc_host *host)
 	 */
 	mmc_delay(10);
 
-	if (host->f_min > 400000) {
-		pr_warning("%s: Minimum clock frequency too high for "
+	if (host->f_min > 300000) {
+		pr_warning("%s: Minimum clock frequency may be too high for "
 				"identification mode\n", mmc_hostname(host));
 		host->ios.clock = host->f_min;
 	} else
-		host->ios.clock = 400000;
+		host->ios.clock = 300000;
 
 	host->ios.power_mode = MMC_POWER_ON;
 	mmc_set_ios(host);


^ permalink raw reply related	[flat|nested] 5+ messages in thread
* [PATCH] MMC Core: Drop initialization frequency floor to 50kHz
@ 2009-07-01 23:49 Ben Nizette
  2009-07-02 11:58 ` Haavard Skinnemoen
  0 siblings, 1 reply; 5+ messages in thread
From: Ben Nizette @ 2009-07-01 23:49 UTC (permalink / raw)
  To: pierre; +Cc: s.hauer, linux-kernel, kernel, Ben Nizette

Patch

commit 8dfd0374be84793360db7fff2e635d2cd3bbcb21
Author: Sascha Hauer <s.hauer@pengutronix.de>
Date:   Thu Apr 9 08:32:02 2009 +0200

    MMC core: limit minimum initialization frequency to 400kHz

Was recently merged.  This is too fast for at least one setup
permutation - the one on my desk which through trial and error won't
initialise at anything above ~350kHz (older Sandisk 256MB SD on
atmel-mci).

To avoid a string of "just found card X which requires clock
(current_clock - epsilon)" this patch drops the floor right down to
50kHz.  This is about the slowest rate before which the discovery
process takes a noticeable slowdown.

Signed-off-by: Ben Nizette <bn@niasdigital.com>
---
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index d84c880..6ee1931 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -708,12 +708,13 @@ static void mmc_power_up(struct mmc_host *host)
 	 */
 	mmc_delay(10);
 
-	if (host->f_min > 400000) {
-		pr_warning("%s: Minimum clock frequency too high for "
-				"identification mode\n", mmc_hostname(host));
-		host->ios.clock = host->f_min;
-	} else
-		host->ios.clock = 400000;
+	/*
+	 * Card discovery is typically done at the controller's minimum
+	 * allowable frequency but for some controllers this is minimum
+	 * is unreasonably slow.  In that case we limit slow clock rate
+	 * to 50KHz.
+	 */
+	host->ios.clock = max(host->f_min, 50000);
 
 	host->ios.power_mode = MMC_POWER_ON;
 	mmc_set_ios(host);



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

end of thread, other threads:[~2010-01-06  9:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-01 23:11 [PATCH v2] mmc: lower init clock frequency to 300kHz Ben Nizette
2010-01-06  7:01 ` Pavel Machek
2010-01-06  9:01   ` Hein_Tibosch
  -- strict thread matches above, loose matches on Subject: below --
2009-07-01 23:49 [PATCH] MMC Core: Drop initialization frequency floor to 50kHz Ben Nizette
2009-07-02 11:58 ` Haavard Skinnemoen
2009-07-02 12:17   ` Ben Nizette
     [not found]     ` <4B3E570C.2060602@yahoo.es>
     [not found]       ` <63809451-ED1D-487A-AE63-F72B23D136D8@niasdigital.com>
     [not found]         ` <4B3F019F.6010306@yahoo.es>
2010-01-02  9:07           ` [PATCH v2] mmc: lower init clock frequency to 300kHz Ben Nizette
2010-01-02 12:08             ` Pierre Ossman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.