From 377d43e7d07fc9a64eb162c6f70e6d1961604629 Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Sat, 26 Jul 2008 18:28:03 +0800 Subject: [PATCH] Blackfin arch: fix bug - IMDMA is not type struct dma_register TEMP Workaround - avoid access to PERIPHERAL_MAP Signed-off-by: Michael Hennerich Signed-off-by: Bryan Wu --- arch/blackfin/kernel/bfin_dma_5xx.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c index ad0e75845ac..93229b3d6e3 100644 --- a/arch/blackfin/kernel/bfin_dma_5xx.c +++ b/arch/blackfin/kernel/bfin_dma_5xx.c @@ -477,7 +477,11 @@ int blackfin_dma_suspend(void) { int i; +#ifdef CONFIG_BF561 /* IMDMA channels doesn't have a PERIPHERAL_MAP */ + for (i = 0; i <= CH_MEM_STREAM3_SRC; i++) { +#else for (i = 0; i < MAX_BLACKFIN_DMA_CHANNEL; i++) { +#endif if (dma_ch[i].chan_status == DMA_CHANNEL_ENABLED) { printk(KERN_ERR "DMA Channel %d failed to suspend\n", i); return -EBUSY; @@ -493,7 +497,11 @@ void blackfin_dma_resume(void) { int i; +#ifdef CONFIG_BF561 /* IMDMA channels doesn't have a PERIPHERAL_MAP */ + for (i = 0; i <= CH_MEM_STREAM3_SRC; i++) +#else for (i = 0; i < MAX_BLACKFIN_DMA_CHANNEL; i++) +#endif dma_ch[i].regs->peripheral_map = dma_ch[i].saved_peripheral_map; } #endif -- 2.11.4.GIT