Date: | 2012-05-06 03:19:38 (11 years 10 months ago) |
---|---|
Author: | Maarten ter Huurne |
Commit: | 759e3e2f8303922ee87833077d2b6c433ece194f |
Message: | 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. |
Files: |
arch/mips/jz4740/clock.c (1 diff) arch/mips/jz4740/dma.c (3 diffs) |
Change Details
arch/mips/jz4740/clock.c | ||
---|---|---|
1131 | 1131 | |
1132 | 1132 | return 0; |
1133 | 1133 | } |
1134 | arch_initcall(jz4740_clock_init); | |
1134 | postcore_initcall(jz4740_clock_init); |
arch/mips/jz4740/dma.c | ||
---|---|---|
16 | 16 | #include <linux/kernel.h> |
17 | 17 | #include <linux/module.h> |
18 | 18 | #include <linux/spinlock.h> |
19 | #include <linux/clk.h> | |
19 | 20 | #include <linux/interrupt.h> |
20 | 21 | |
21 | 22 | #include <linux/dma-mapping.h> |
... | ... | |
276 | 277 | |
277 | 278 | static int jz4740_dma_init(void) |
278 | 279 | { |
280 | struct clk *clk; | |
279 | 281 | unsigned int ret; |
280 | 282 | |
281 | 283 | jz4740_dma_base = ioremap(JZ4740_DMAC_BASE_ADDR, 0x400); |
... | ... | |
284 | 286 | |
285 | 287 | spin_lock_init(&jz4740_dma_lock); |
286 | 288 | |
289 | clk = clk_get(NULL, "dma"); | |
290 | if (IS_ERR(clk)) { | |
291 | ret = PTR_ERR(clk); | |
292 | printk(KERN_ERR "JZ4740 DMA: Failed to request clock: %d\n", | |
293 | ret); | |
294 | goto err_iounmap; | |
295 | } | |
296 | ||
287 | 297 | ret = request_irq(JZ4740_IRQ_DMAC, jz4740_dma_irq, 0, "DMA", NULL); |
288 | 298 | if (ret) { |
289 | 299 | printk(KERN_ERR "JZ4740 DMA: Failed to request irq: %d\n", ret); |
290 | goto err_iounmap; | |
300 | goto err_clkput; | |
291 | 301 | } |
292 | 302 | |
303 | clk_enable(clk); | |
293 | 304 | jz4740_dma_write_mask(JZ_REG_DMA_CTRL, |
294 | 305 | JZ_DMA_CTRL_PRIORITY_ROUND_ROBIN, |
295 | 306 | JZ_DMA_CTRL_PRIORITY_MASK); |
296 | 307 | |
297 | 308 | return 0; |
298 | 309 | |
310 | err_clkput: | |
311 | clk_put(clk); | |
312 | ||
299 | 313 | err_iounmap: |
300 | 314 | iounmap(jz4740_dma_base); |
301 | 315 | return ret; |
Branches:
ben-wpan
ben-wpan-stefan
5396a9238205f20f811ea57898980d3ca82df0b6
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9