summaryrefslogtreecommitdiff
path: root/target/linux/mvebu/patches-3.10/0123-mtd-nand-pxa3xx-Make-dma-code-dependent-on-dma-capab.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mvebu/patches-3.10/0123-mtd-nand-pxa3xx-Make-dma-code-dependent-on-dma-capab.patch')
-rw-r--r--target/linux/mvebu/patches-3.10/0123-mtd-nand-pxa3xx-Make-dma-code-dependent-on-dma-capab.patch106
1 files changed, 0 insertions, 106 deletions
diff --git a/target/linux/mvebu/patches-3.10/0123-mtd-nand-pxa3xx-Make-dma-code-dependent-on-dma-capab.patch b/target/linux/mvebu/patches-3.10/0123-mtd-nand-pxa3xx-Make-dma-code-dependent-on-dma-capab.patch
deleted file mode 100644
index 87bec0c..0000000
--- a/target/linux/mvebu/patches-3.10/0123-mtd-nand-pxa3xx-Make-dma-code-dependent-on-dma-capab.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From 085ced2b9e159dbeae029e338958b8c8ae9073b9 Mon Sep 17 00:00:00 2001
-From: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
-Date: Mon, 12 Aug 2013 14:14:56 -0300
-Subject: [PATCH 123/203] mtd: nand: pxa3xx: Make dma code dependent on dma
- capable platforms
-
-This patch adds a macro ARCH_HAS_DMA to compile-out arch specific
-dma code, namely pxa_request_dma() and pxa_free_dma(). These symbols
-are available only in pxa, which makes impossible to build the driver in
-other platforms than ARCH_PXA.
-
-In order to handle non-dma capable platforms, we implement a fallbacks that
-allocate buffers as if 'use_dma=false', putting the dma related code
-under the ARCH_HAS_DMA conditional.
-
-Please note that the correct way to handle this is to migrate the
-dma code to use of the mmp_pdma dmaengine driver. However, currently
-this is not possible because the two dmaengine drivers can't work together.
-
-Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
-Tested-by: Daniel Mack <zonque@gmail.com>
-Signed-off-by: Brian Norris <computersforpeace@gmail.com>
-Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
----
- drivers/mtd/nand/pxa3xx_nand.c | 34 ++++++++++++++++++++++++++++++++++
- 1 file changed, 34 insertions(+)
-
---- a/drivers/mtd/nand/pxa3xx_nand.c
-+++ b/drivers/mtd/nand/pxa3xx_nand.c
-@@ -25,7 +25,14 @@
- #include <linux/of.h>
- #include <linux/of_device.h>
-
-+#if defined(CONFIG_ARCH_PXA) || defined(CONFIG_ARCH_MMP)
-+#define ARCH_HAS_DMA
-+#endif
-+
-+#ifdef ARCH_HAS_DMA
- #include <mach/dma.h>
-+#endif
-+
- #include <linux/platform_data/mtd-nand-pxa3xx.h>
-
- #define CHIP_DELAY_TIMEOUT (2 * HZ/10)
-@@ -381,6 +388,7 @@ static void handle_data_pio(struct pxa3x
- }
- }
-
-+#ifdef ARCH_HAS_DMA
- static void start_data_dma(struct pxa3xx_nand_info *info)
- {
- struct pxa_dma_desc *desc = info->data_desc;
-@@ -427,6 +435,10 @@ static void pxa3xx_nand_data_dma_irq(int
- enable_int(info, NDCR_INT_MASK);
- nand_writel(info, NDSR, NDSR_WRDREQ | NDSR_RDDREQ);
- }
-+#else
-+static void start_data_dma(struct pxa3xx_nand_info *info)
-+{}
-+#endif
-
- static irqreturn_t pxa3xx_nand_irq(int irq, void *devid)
- {
-@@ -905,6 +917,7 @@ static int pxa3xx_nand_detect_config(str
- */
- #define MAX_BUFF_SIZE PAGE_SIZE
-
-+#ifdef ARCH_HAS_DMA
- static int pxa3xx_nand_init_buff(struct pxa3xx_nand_info *info)
- {
- struct platform_device *pdev = info->pdev;
-@@ -950,6 +963,20 @@ static void pxa3xx_nand_free_buff(struct
- kfree(info->data_buff);
- }
- }
-+#else
-+static int pxa3xx_nand_init_buff(struct pxa3xx_nand_info *info)
-+{
-+ info->data_buff = kmalloc(MAX_BUFF_SIZE, GFP_KERNEL);
-+ if (info->data_buff == NULL)
-+ return -ENOMEM;
-+ return 0;
-+}
-+
-+static void pxa3xx_nand_free_buff(struct pxa3xx_nand_info *info)
-+{
-+ kfree(info->data_buff);
-+}
-+#endif
-
- static int pxa3xx_nand_sensing(struct pxa3xx_nand_info *info)
- {
-@@ -1265,6 +1292,13 @@ static int pxa3xx_nand_probe(struct plat
- struct pxa3xx_nand_info *info;
- int ret, cs, probe_success;
-
-+#ifndef ARCH_HAS_DMA
-+ if (use_dma) {
-+ use_dma = 0;
-+ dev_warn(&pdev->dev,
-+ "This platform can't do DMA on this device\n");
-+ }
-+#endif
- ret = pxa3xx_nand_probe_dt(pdev);
- if (ret)
- return ret;