From b03abb018a9f2c0933e93757667be04948d5fa40 Mon Sep 17 00:00:00 2001 From: Martin Michlmayr Date: Sat, 16 May 2009 08:52:35 +0000 Subject: [PATCH] mmc: mvsdio: ignore high speed timing requests from the core svn path=/dists/sid/linux-2.6/; revision=13624 --- debian/changelog | 1 + .../bugfix/all/mvsdio-ignore-high-speed.patch | 40 +++++++++++++++++++ debian/patches/series/5 | 1 + 3 files changed, 42 insertions(+) create mode 100644 debian/patches/bugfix/all/mvsdio-ignore-high-speed.patch diff --git a/debian/changelog b/debian/changelog index c4308ca9a..b1803f6ad 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,7 @@ linux-2.6 (2.6.29-5) UNRELEASED; urgency=low [ Martin Michlmayr ] * Broadcom SB: fix locking in set_irq_affinity. * mmc: load mvsdio automatically when it's a platform device. + * mmc: mvsdio: ignore high speed timing requests from the core * USB: ftdi_sio: add vendor/product id for the Marvell SheevaPlug. [ Bastian Blank ] diff --git a/debian/patches/bugfix/all/mvsdio-ignore-high-speed.patch b/debian/patches/bugfix/all/mvsdio-ignore-high-speed.patch new file mode 100644 index 000000000..838c48898 --- /dev/null +++ b/debian/patches/bugfix/all/mvsdio-ignore-high-speed.patch @@ -0,0 +1,40 @@ +From: Nicolas Pitre +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 + + +--- 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); diff --git a/debian/patches/series/5 b/debian/patches/series/5 index 116ed8829..fb87a2c78 100644 --- a/debian/patches/series/5 +++ b/debian/patches/series/5 @@ -8,3 +8,4 @@ + bugfix/all/stable/2.6.29.3-abi-1.patch + bugfix/sparc/ftbfs.patch + features/all/ftdi_sio-sheevaplug.patch ++ bugfix/all/mvsdio-ignore-high-speed.patch