From: Jaehoon Chung <jh80.chung@samsung.com>
Date: Thu, 12 May 2011 08:18:59 +0000 (+0900)
Subject: mmc: core: duplicated trial with same freq in mmc_rescan_try_freq()
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=06b2233a20bf25c8ee57b7c6e13f528309ac6edc;p=openwrt%2Fstaging%2Fblogic.git

mmc: core: duplicated trial with same freq in mmc_rescan_try_freq()

mmc_rescan_try_freq() tries to init two times with the last frequency.
For example, if host->f_min is 400KHz, we see the message below:

mmc1: mmc_rescan_try_freq: trying to init card at 400000 Hz
mmc1: mmc_rescan_try_freq: trying to init card at 400000 Hz

Andy Ross says that he didn't try this code on a board with an f_min
that exactly matches one of the table entries, which explains why the
bug wasn't detected.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Andy Ross <andy.ross@windriver.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
---

diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 7863eedf3d9a..68091dda3f31 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -1608,7 +1608,7 @@ void mmc_rescan(struct work_struct *work)
 	for (i = 0; i < ARRAY_SIZE(freqs); i++) {
 		if (!mmc_rescan_try_freq(host, max(freqs[i], host->f_min)))
 			break;
-		if (freqs[i] < host->f_min)
+		if (freqs[i] <= host->f_min)
 			break;
 	}
 	mmc_release_host(host);