From 32a83db34718f3145068d8f0af010320430d68c0 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Mon, 22 Jul 2013 18:41:23 +0000 Subject: xburst: Add 3.10 support Missing files from the previous commit. Signed-off-by: Lars-Peter Clausen SVN-Revision: 37510 --- ...0-Acquire-and-enable-DMA-controller-clock.patch | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 target/linux/xburst/patches-3.10/013-MIPS-JZ4740-Acquire-and-enable-DMA-controller-clock.patch (limited to 'target/linux/xburst/patches-3.10/013-MIPS-JZ4740-Acquire-and-enable-DMA-controller-clock.patch') diff --git a/target/linux/xburst/patches-3.10/013-MIPS-JZ4740-Acquire-and-enable-DMA-controller-clock.patch b/target/linux/xburst/patches-3.10/013-MIPS-JZ4740-Acquire-and-enable-DMA-controller-clock.patch new file mode 100644 index 0000000000..110f061568 --- /dev/null +++ b/target/linux/xburst/patches-3.10/013-MIPS-JZ4740-Acquire-and-enable-DMA-controller-clock.patch @@ -0,0 +1,80 @@ +From b1ab71156cd49b2389397d3be54b93fe394a1cb2 Mon Sep 17 00:00:00 2001 +From: Maarten ter Huurne +Date: Tue, 9 Oct 2012 13:09:57 +0200 +Subject: [PATCH 13/16] MIPS: JZ4740: Acquire and enable DMA controller clock + +Previously, it was assumed that the DMA controller clock is not gated +when the kernel starts running. While that is the power-on state, it is +safer to not rely on that. + +Signed-off-by: Lars-Peter Clausen +--- + arch/mips/jz4740/clock.c | 2 +- + arch/mips/jz4740/dma.c | 24 ++++++++++++++++++++++-- + 2 files changed, 23 insertions(+), 3 deletions(-) + +diff --git a/arch/mips/jz4740/clock.c b/arch/mips/jz4740/clock.c +index 1b5f554..b3eba60 100644 +--- a/arch/mips/jz4740/clock.c ++++ b/arch/mips/jz4740/clock.c +@@ -921,4 +921,4 @@ static int jz4740_clock_init(void) + + return 0; + } +-arch_initcall(jz4740_clock_init); ++postcore_initcall(jz4740_clock_init); +diff --git a/arch/mips/jz4740/dma.c b/arch/mips/jz4740/dma.c +index 317ec6f..fb5266c 100644 +--- a/arch/mips/jz4740/dma.c ++++ b/arch/mips/jz4740/dma.c +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -268,6 +269,7 @@ static irqreturn_t jz4740_dma_irq(int irq, void *dev_id) + + static int jz4740_dma_init(void) + { ++ struct clk *clk; + unsigned int ret; + + jz4740_dma_base = ioremap(JZ4740_DMAC_BASE_ADDR, 0x400); +@@ -277,11 +279,29 @@ static int jz4740_dma_init(void) + + spin_lock_init(&jz4740_dma_lock); + +- ret = request_irq(JZ4740_IRQ_DMAC, jz4740_dma_irq, 0, "DMA", NULL); ++ clk = clk_get(NULL, "dma"); ++ if (IS_ERR(clk)) { ++ ret = PTR_ERR(clk); ++ printk(KERN_ERR "JZ4740 DMA: Failed to request clock: %d\n", ++ ret); ++ goto err_iounmap; ++ } + +- if (ret) ++ ret = request_irq(JZ4740_IRQ_DMAC, jz4740_dma_irq, 0, "DMA", NULL); ++ if (ret) { + printk(KERN_ERR "JZ4740 DMA: Failed to request irq: %d\n", ret); ++ goto err_clkput; ++ } ++ ++ clk_enable(clk); ++ ++ return 0; ++ ++err_clkput: ++ clk_put(clk); + ++err_iounmap: ++ iounmap(jz4740_dma_base); + return ret; + } + arch_initcall(jz4740_dma_init); +-- +1.7.10.4 + -- cgit v1.2.3