openwrt/target/linux/brcm2708/patches-3.10/0010-sdcard-patch-improvements-from-naren.patch
Florian Fainelli bb39b8d99a brcm2708: update against latest rpi-3.10.y branch
Update our copies of the brcm2708 patches to the latest rpi-3.10-y
rebased against linux-3.10.y stable (3.10.32). This should hopefully
make it easier for us in the future to leverage the raspberry/rpi-*
branches.

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 39770
2014-02-28 20:30:08 +00:00

57 lines
1.8 KiB
Diff

From 7063eab83522ea1f24934b971418bfdd4c5578f1 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
Date: Thu, 17 May 2012 14:44:19 +0100
Subject: [PATCH 010/174] sdcard patch improvements from naren
---
drivers/mmc/host/sdhci-bcm2708.c | 23 +++++++----------------
1 file changed, 7 insertions(+), 16 deletions(-)
--- a/drivers/mmc/host/sdhci-bcm2708.c
+++ b/drivers/mmc/host/sdhci-bcm2708.c
@@ -886,8 +886,7 @@ static void sdhci_bcm2708_dma_complete_i
We get CRC and DEND errors unless we wait for
the SD controller to finish reading/writing to the card. */
u32 state_mask;
- int timeout=1000000;
- hptime_t now = hptime();
+ int timeout=1000;
DBG("PDMA over - sync card\n");
if (data->flags & MMC_DATA_READ)
@@ -895,17 +894,12 @@ static void sdhci_bcm2708_dma_complete_i
else
state_mask = SDHCI_DOING_WRITE;
- while (0 != (sdhci_bcm2708_raw_readl(host,
- SDHCI_PRESENT_STATE) &
- state_mask) && --timeout > 0)
+ while (0 != (sdhci_bcm2708_raw_readl(host, SDHCI_PRESENT_STATE)
+ & state_mask) && --timeout > 0)
+ {
+ udelay(100);
continue;
-
- if (1000000-timeout > 4000) /*ave. is about 3250*/
- DBG("%s: note - long %s sync %luns - "
- "%d its.\n",
- mmc_hostname(host->mmc),
- data->flags & MMC_DATA_READ? "read": "write",
- since_ns(now), 1000000-timeout);
+ }
if (timeout <= 0)
printk(KERN_ERR"%s: final %s to SD card still "
"running\n",
@@ -1175,10 +1169,7 @@ static unsigned int sdhci_bcm2708_uhs_br
static unsigned int sdhci_bcm2708_missing_status(struct sdhci_host *host)
{
- if(host->last_cmdop == MMC_SEND_STATUS)
- return 1;
- else
- return 0;
+ return 1;
}
/***************************************************************************** \