linux/debian/patches/bugfix/all/mvsdio-ignore-high-speed.patch

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);