41 lines
1.4 KiB
Diff
41 lines
1.4 KiB
Diff
From: Nicolas Pitre <nico@cam.org>
|
|
Date: Fri, 15 May 2009 00:59:47 +0000 (-0400)
|
|
Subject: [MMC] mvsdio: ignore high speed timing requests from the core
|
|
X-Git-Url: http://git.marvell.com/?p=orion.git;a=commitdiff_plain;h=9154da39b1da931b60ff380d3172d797ccaed71e
|
|
|
|
[MMC] mvsdio: ignore high speed timing requests from the core
|
|
|
|
Empirical evidences show that this is causing far more problems than it
|
|
solves when this mode is enabled in the host hardware. Amongst those
|
|
cards that are known to be non functional when this bit is set are:
|
|
|
|
A-Data "Speedy" 2GB SD card
|
|
Kodak 512MB SD card
|
|
Ativa 1GB MicroSD card
|
|
Marvell 8688 (WIFI/Bluetooth) SDIO card
|
|
|
|
Signed-off-by: Nicolas Pitre <nico@marvell.com>
|
|
|
|
|
|
--- a/drivers/mmc/host/mvsdio.c~ 2009-05-16 08:48:15.000000000 +0000
|
|
+++ b/drivers/mmc/host/mvsdio.c 2009-05-16 08:48:17.000000000 +0000
|
|
@@ -617,9 +617,18 @@
|
|
if (ios->bus_width == MMC_BUS_WIDTH_4)
|
|
ctrl_reg |= MVSD_HOST_CTRL_DATA_WIDTH_4_BITS;
|
|
|
|
+ /*
|
|
+ * The HI_SPEED_EN bit is causing trouble with many (but not all)
|
|
+ * high speed SD, SDHC and SDIO cards. Not enabling that bit
|
|
+ * makes all cards work. So let's just ignore that bit for now
|
|
+ * and revisit this issue if problems for not enabling this bit
|
|
+ * are ever reported.
|
|
+ */
|
|
+#if 0
|
|
if (ios->timing == MMC_TIMING_MMC_HS ||
|
|
ios->timing == MMC_TIMING_SD_HS)
|
|
ctrl_reg |= MVSD_HOST_CTRL_HI_SPEED_EN;
|
|
+#endif
|
|
|
|
host->ctrl = ctrl_reg;
|
|
mvsd_write(MVSD_HOST_CTRL, ctrl_reg);
|