aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-mxc
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2010-02-17 16:17:43 -0500
committerUwe Kleine-König <u.kleine-koenig@pengutronix.de>2010-02-24 04:07:07 -0500
commit8735fde2d0c42ae914d3e68d967612ff417f463c (patch)
treec012be0f6f095b4e33b608d197d60b8392deaa99 /arch/arm/plat-mxc
parente9f49d4183759e4d8469ac86189ef8bc4374cccc (diff)
arm/imx/dma-v1: protect #ifdef'd blocks additionally by cpu_is_...
This is necessary for a multi-SoC kernel. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Diffstat (limited to 'arch/arm/plat-mxc')
-rw-r--r--arch/arm/plat-mxc/dma-mx1-mx2.c53
1 files changed, 30 insertions, 23 deletions
diff --git a/arch/arm/plat-mxc/dma-mx1-mx2.c b/arch/arm/plat-mxc/dma-mx1-mx2.c
index eddc96594ec6..e16014b0d13c 100644
--- a/arch/arm/plat-mxc/dma-mx1-mx2.c
+++ b/arch/arm/plat-mxc/dma-mx1-mx2.c
@@ -476,7 +476,8 @@ void imx_dma_enable(int channel)
476 CCR_ACRPT, DMA_CCR(channel)); 476 CCR_ACRPT, DMA_CCR(channel));
477 477
478#ifdef CONFIG_ARCH_MX2 478#ifdef CONFIG_ARCH_MX2
479 if (imxdma->sg && imx_dma_hw_chain(imxdma)) { 479 if ((cpu_is_mx21() || cpu_is_mx27()) &&
480 imxdma->sg && imx_dma_hw_chain(imxdma)) {
480 imxdma->sg = sg_next(imxdma->sg); 481 imxdma->sg = sg_next(imxdma->sg);
481 if (imxdma->sg) { 482 if (imxdma->sg) {
482 u32 tmp; 483 u32 tmp;
@@ -654,7 +655,8 @@ static irqreturn_t dma_irq_handler(int irq, void *dev_id)
654 int i, disr; 655 int i, disr;
655 656
656#ifdef CONFIG_ARCH_MX2 657#ifdef CONFIG_ARCH_MX2
657 dma_err_handler(irq, dev_id); 658 if (cpu_is_mx21() || cpu_is_mx27())
659 dma_err_handler(irq, dev_id);
658#endif 660#endif
659 661
660 disr = imx_dmav1_readl(DMA_DISR); 662 disr = imx_dmav1_readl(DMA_DISR);
@@ -702,17 +704,19 @@ int imx_dma_request(int channel, const char *name)
702 local_irq_restore(flags); /* request_irq() can block */ 704 local_irq_restore(flags); /* request_irq() can block */
703 705
704#ifdef CONFIG_ARCH_MX2 706#ifdef CONFIG_ARCH_MX2
705 ret = request_irq(MX2x_INT_DMACH0 + channel, dma_irq_handler, 0, "DMA", 707 if (cpu_is_mx21() || cpu_is_mx27()) {
706 NULL); 708 ret = request_irq(MX2x_INT_DMACH0 + channel,
707 if (ret) { 709 dma_irq_handler, 0, "DMA", NULL);
708 imxdma->name = NULL; 710 if (ret) {
709 printk(KERN_CRIT "Can't register IRQ %d for DMA channel %d\n", 711 imxdma->name = NULL;
710 MX2x_INT_DMACH0 + channel, channel); 712 pr_crit("Can't register IRQ %d for DMA channel %d\n",
711 return ret; 713 MX2x_INT_DMACH0 + channel, channel);
714 return ret;
715 }
716 init_timer(&imxdma->watchdog);
717 imxdma->watchdog.function = &imx_dma_watchdog;
718 imxdma->watchdog.data = channel;
712 } 719 }
713 init_timer(&imxdma->watchdog);
714 imxdma->watchdog.function = &imx_dma_watchdog;
715 imxdma->watchdog.data = channel;
716#endif 720#endif
717 721
718 return ret; 722 return ret;
@@ -741,7 +745,8 @@ void imx_dma_free(int channel)
741 imxdma->name = NULL; 745 imxdma->name = NULL;
742 746
743#ifdef CONFIG_ARCH_MX2 747#ifdef CONFIG_ARCH_MX2
744 free_irq(MX2x_INT_DMACH0 + channel, NULL); 748 if (cpu_is_mx21() || cpu_is_mx27())
749 free_irq(MX2x_INT_DMACH0 + channel, NULL);
745#endif 750#endif
746 751
747 local_irq_restore(flags); 752 local_irq_restore(flags);
@@ -823,17 +828,19 @@ static int __init imx_dma_init(void)
823 imx_dmav1_writel(DCR_DRST, DMA_DCR); 828 imx_dmav1_writel(DCR_DRST, DMA_DCR);
824 829
825#ifdef CONFIG_ARCH_MX1 830#ifdef CONFIG_ARCH_MX1
826 ret = request_irq(DMA_INT, dma_irq_handler, 0, "DMA", NULL); 831 if (cpu_is_mx1()) {
827 if (ret) { 832 ret = request_irq(MX1_DMA_INT, dma_irq_handler, 0, "DMA", NULL);
828 printk(KERN_CRIT "Wow! Can't register IRQ for DMA\n"); 833 if (ret) {
829 return ret; 834 pr_crit("Wow! Can't register IRQ for DMA\n");
830 } 835 return ret;
836 }
831 837
832 ret = request_irq(DMA_ERR, dma_err_handler, 0, "DMA", NULL); 838 ret = request_irq(MX1_DMA_ERR, dma_err_handler, 0, "DMA", NULL);
833 if (ret) { 839 if (ret) {
834 printk(KERN_CRIT "Wow! Can't register ERRIRQ for DMA\n"); 840 pr_crit("Wow! Can't register ERRIRQ for DMA\n");
835 free_irq(DMA_INT, NULL); 841 free_irq(MX1_DMA_INT, NULL);
836 return ret; 842 return ret;
843 }
837 } 844 }
838#endif 845#endif
839 /* enable DMA module */ 846 /* enable DMA module */