diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-12-13 11:55:11 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-12-13 11:55:11 +0000 |
commit | 45380ebd1ab3d604ece3dd14a84f89fbc69ea7b1 (patch) | |
tree | 816e479975bb22e39e9cbdde8fdfb400f38f72a9 /target/linux/brcm2708/patches-3.10/0020-Add-sync_after_dma-module-parameter.patch | |
parent | 170ce2961703fe3c2c74e9aa3088df2905b3697e (diff) | |
download | mtk-20170518-45380ebd1ab3d604ece3dd14a84f89fbc69ea7b1.zip mtk-20170518-45380ebd1ab3d604ece3dd14a84f89fbc69ea7b1.tar.gz mtk-20170518-45380ebd1ab3d604ece3dd14a84f89fbc69ea7b1.tar.bz2 |
brcm2708: remove linux 3.10 support
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 43687
Diffstat (limited to 'target/linux/brcm2708/patches-3.10/0020-Add-sync_after_dma-module-parameter.patch')
-rw-r--r-- | target/linux/brcm2708/patches-3.10/0020-Add-sync_after_dma-module-parameter.patch | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/target/linux/brcm2708/patches-3.10/0020-Add-sync_after_dma-module-parameter.patch b/target/linux/brcm2708/patches-3.10/0020-Add-sync_after_dma-module-parameter.patch deleted file mode 100644 index 1e82fab..0000000 --- a/target/linux/brcm2708/patches-3.10/0020-Add-sync_after_dma-module-parameter.patch +++ /dev/null @@ -1,119 +0,0 @@ -From a30b981976f90774867ec2a60bac86ebe7244d9a Mon Sep 17 00:00:00 2001 -From: popcornmix <popcornmix@gmail.com> -Date: Tue, 17 Jul 2012 00:48:27 +0100 -Subject: [PATCH 020/196] Add sync_after_dma module parameter - ---- - drivers/mmc/host/sdhci-bcm2708.c | 60 +++++++++++++++++++++------------------- - 1 file changed, 32 insertions(+), 28 deletions(-) - -diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c -index 7bba950..3792b9f 100644 ---- a/drivers/mmc/host/sdhci-bcm2708.c -+++ b/drivers/mmc/host/sdhci-bcm2708.c -@@ -51,7 +51,6 @@ - #undef CONFIG_MMC_SDHCI_BCM2708_DMA - #define CONFIG_MMC_SDHCI_BCM2708_DMA y - --#define USE_SYNC_AFTER_DMA - #ifdef CONFIG_MMC_SDHCI_BCM2708_DMA - /* #define CHECK_DMA_USE */ - #endif -@@ -131,6 +130,7 @@ static inline unsigned long int since_ns(hptime_t t) - - static bool allow_highspeed = 1; - static int emmc_clock_freq = BCM2708_EMMC_CLOCK_FREQ; -+static bool sync_after_dma = 1; - - #if 0 - static void hptime_test(void) -@@ -822,34 +822,34 @@ static void sdhci_bcm2708_dma_complete_irq(struct sdhci_host *host, - SDHCI_INT_SPACE_AVAIL); - } - } else { --#ifdef USE_SYNC_AFTER_DMA -- /* On the Arasan controller the stop command (which will be -- scheduled after this completes) does not seem to work -- properly if we allow it to be issued when we are -- transferring data to/from the SD card. -- 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=5000; -- -- DBG("PDMA over - sync card\n"); -- if (data->flags & MMC_DATA_READ) -- state_mask = SDHCI_DOING_READ; -- else -- state_mask = SDHCI_DOING_WRITE; -+ if (sync_after_dma) { -+ /* On the Arasan controller the stop command (which will be -+ scheduled after this completes) does not seem to work -+ properly if we allow it to be issued when we are -+ transferring data to/from the SD card. -+ 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=30*5000; -+ -+ DBG("PDMA over - sync card\n"); -+ if (data->flags & MMC_DATA_READ) -+ state_mask = SDHCI_DOING_READ; -+ else -+ state_mask = SDHCI_DOING_WRITE; - -- while (0 != (sdhci_bcm2708_raw_readl(host, SDHCI_PRESENT_STATE) -- & state_mask) && --timeout > 0) -- { -- udelay(30); -- continue; -+ while (0 != (sdhci_bcm2708_raw_readl(host, SDHCI_PRESENT_STATE) -+ & state_mask) && --timeout > 0) -+ { -+ udelay(1); -+ continue; -+ } -+ if (timeout <= 0) -+ printk(KERN_ERR"%s: final %s to SD card still " -+ "running\n", -+ mmc_hostname(host->mmc), -+ data->flags & MMC_DATA_READ? "read": "write"); - } -- if (timeout <= 0) -- printk(KERN_ERR"%s: final %s to SD card still " -- "running\n", -- mmc_hostname(host->mmc), -- data->flags & MMC_DATA_READ? "read": "write"); --#endif - if (host_priv->complete) { - (*host_priv->complete)(host); - DBG("PDMA %s complete\n", -@@ -1193,7 +1193,9 @@ static int sdhci_bcm2708_probe(struct platform_device *pdev) - SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | - SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | - SDHCI_QUIRK_MISSING_CAPS | -- SDHCI_QUIRK_NO_HISPD_BIT; -+ SDHCI_QUIRK_NO_HISPD_BIT | -+ (sync_after_dma ? 0:SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12); -+ - - #ifdef CONFIG_MMC_SDHCI_BCM2708_DMA - host->flags = SDHCI_USE_PLATDMA; -@@ -1363,6 +1365,7 @@ module_exit(sdhci_drv_exit); - - module_param(allow_highspeed, bool, 0444); - module_param(emmc_clock_freq, int, 0444); -+module_param(sync_after_dma, bool, 0444); - - MODULE_DESCRIPTION("Secure Digital Host Controller Interface platform driver"); - MODULE_AUTHOR("Broadcom <info@broadcom.com>"); -@@ -1371,5 +1374,6 @@ MODULE_ALIAS("platform:"DRIVER_NAME); - - MODULE_PARM_DESC(allow_highspeed, "Allow high speed transfers modes"); - MODULE_PARM_DESC(emmc_clock_freq, "Specify the speed of emmc clock"); -+MODULE_PARM_DESC(sync_after_dma, "Block in driver until dma complete"); - - --- -1.9.1 - |