debian/patches: Remove merged patches.

svn path=/dists/trunk/linux-2.6/; revision=13752
This commit is contained in:
Bastian Blank 2009-06-10 10:21:26 +00:00
parent 2285b9eaa5
commit b22c88ae24
4 changed files with 0 additions and 112 deletions

View File

@ -1,60 +0,0 @@
From: Nicolas Pitre <nico@cam.org>
Date: Tue, 26 May 2009 23:09:39 +0000 (-0400)
Subject: [MMC] mvsdio: fix config failure with some high speed SDHC cards
X-Git-Url: http://git.marvell.com/?p=orion.git;a=commitdiff_plain;h=cbd9524f28b10662bd5d81e734e35737aeabb7a9
[MMC] mvsdio: fix config failure with some high speed SDHC cards
Especially with Sandisk SDHC cards, the second SWITCH command was failing
with a timeout and the card was not recognized at all. However if the
system was busy, or debugging was enabled, or a udelay(100) was inserted
before the second SWITCH command in the core code, then the timing was
so that the card started to work.
With some unusual block sizes, the data FIFO status doesn't indicate a
"empty" state right away when the data transfer is done. Queuing another
data transfer in that condition results in a transfer timeout.
The empty FIFO bit eventually get set by itself in less than 50 usecs
when it is not set right away. So let's just poll for that bit before
configuring the controller with a new data transfer.
Signed-off-by: Nicolas Pitre <nico@marvell.com>
---
diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
index 9d3cfa9..b56d72f 100644
--- a/drivers/mmc/host/mvsdio.c
+++ b/drivers/mmc/host/mvsdio.c
@@ -64,6 +64,31 @@ static int mvsd_setup_data(struct mvsd_host *host, struct mmc_data *data)
unsigned int tmout;
int tmout_index;
+ /*
+ * Hardware weirdness. The FIFO_EMPTY bit of the HW_STATE
+ * register is sometimes not set before a while when some
+ * "unusual" data block sizes are used (such as with the SWITCH
+ * command), even despite the fact that the XFER_DONE interrupt
+ * was raised. And if another data transfer starts before
+ * this bit comes to good sense (which eventually happens by
+ * itself) then the new transfer simply fails with a timeout.
+ */
+ if (!(mvsd_read(MVSD_HW_STATE) & (1 << 13))) {
+ unsigned long t = jiffies + HZ;
+ unsigned int hw_state, count = 0;
+ do {
+ if (time_after(jiffies, t)) {
+ dev_warn(host->dev, "FIFO_EMPTY bit missing\n");
+ break;
+ }
+ hw_state = mvsd_read(MVSD_HW_STATE);
+ count++;
+ } while (!(hw_state & (1 << 13)));
+ dev_dbg(host->dev, "*** wait for FIFO_EMPTY bit "
+ "(hw=0x%04x, count=%d, jiffies=%ld)\n",
+ hw_state, count, jiffies - (t - HZ));
+ }
+
/* If timeout=0 then maximum timeout index is used. */
tmout = DIV_ROUND_UP(data->timeout_ns, host->ns_per_clk);
tmout += data->timeout_clks;

View File

@ -1,40 +0,0 @@
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);

View File

@ -1,9 +0,0 @@
diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
index c643d0f..1783043 100644
--- a/drivers/mmc/host/mvsdio.c
+++ b/drivers/mmc/host/mvsdio.c
@@ -882,3 +882,4 @@ module_param(nodma, int, 0);
MODULE_AUTHOR("Maen Suleiman, Nicolas Pitre");
MODULE_DESCRIPTION("Marvell MMC,SD,SDIO Host Controller driver");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:mvsdio");

View File

@ -31,9 +31,6 @@
+ features/arm/copy_to_user-better_threshold.patch
+ features/arm/nand-setup.patch
+ features/arm/clock_gating.patch
+ bugfix/all/mvsdio-platform.patch
+ bugfix/all/mvsdio-ignore-high-speed.patch
+ bugfix/all/mvsdio-config-failure.patch
+ features/arm/kirkwood-cpu-idle.patch
+ bugfix/sparc/arch-zimage-target.patch
+ features/all/bnx2x-Separated-FW-from-the-source.patch