aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGirish K S <girish.shivananjappa@linaro.org>2011-08-26 14:58:18 +0530
committerGreg Kroah-Hartman <gregkh@suse.de>2011-10-03 11:40:11 -0700
commit1c72a517f74eec97133923b5f87a9afbc044423d (patch)
tree16c252334e55d0f0bbc7ccd4d6dfe7c037e2c8fa
parent6942511b6b2a4a6b1fb969905c6841bdb7c1083c (diff)
downloadkernel_samsung_smdk4412-1c72a517f74eec97133923b5f87a9afbc044423d.zip
kernel_samsung_smdk4412-1c72a517f74eec97133923b5f87a9afbc044423d.tar.gz
kernel_samsung_smdk4412-1c72a517f74eec97133923b5f87a9afbc044423d.tar.bz2
mmc: sdhci-s3c: Fix mmc card I/O problem
commit 49bb1e619568ec84785ceb366f07db2a6f0b64cc upstream. This patch fixes the problem in sdhci-s3c host driver for Samsung Soc's. During the card identification stage the mmc core driver enumerates for the best bus width in combination with the highest available data rate. It starts enumerating from the highest bus width (8) to lowest width (1). In case of few MMC cards the 4-bit bus enumeration fails and tries the 1-bit bus enumeration. When switched to 1-bit bus mode the host driver has to clear the previous bus width setting and apply the new setting. The current patch will clear the previous bus mode and apply the new mode setting. Signed-off-by: Girish K S <girish.shivananjappa@linaro.org> Acked-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/mmc/host/sdhci-s3c.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index 69e3ee3..8cd999f 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -301,6 +301,8 @@ static int sdhci_s3c_platform_8bit_width(struct sdhci_host *host, int width)
ctrl &= ~SDHCI_CTRL_8BITBUS;
break;
default:
+ ctrl &= ~SDHCI_CTRL_4BITBUS;
+ ctrl &= ~SDHCI_CTRL_8BITBUS;
break;
}