[ARM] pxa: allow DMA controller IRQ being specified
authorEric Miao <eric.miao@marvell.com>
Fri, 2 Jan 2009 08:26:33 +0000 (16:26 +0800)
committerEric Miao <eric.miao@marvell.com>
Mon, 9 Mar 2009 13:22:36 +0000 (21:22 +0800)
Signed-off-by: Eric Miao <eric.miao@marvell.com>
arch/arm/mach-pxa/dma.c
arch/arm/mach-pxa/include/mach/dma.h
arch/arm/mach-pxa/pxa25x.c
arch/arm/mach-pxa/pxa27x.c
arch/arm/mach-pxa/pxa3xx.c

index 7de17fc5d54b2b219975d2ed90faa4615b648eac..4613bf1fe43c4074eab2c4c1399b43ddc04ea974 100644 (file)
@@ -113,7 +113,7 @@ static irqreturn_t dma_irq_handler(int irq, void *dev_id)
        return IRQ_HANDLED;
 }
 
-int __init pxa_init_dma(int num_ch)
+int __init pxa_init_dma(int irq, int num_ch)
 {
        int i, ret;
 
@@ -131,7 +131,7 @@ int __init pxa_init_dma(int num_ch)
                dma_channels[i].prio = min((i & 0xf) >> 2, DMA_PRIO_LOW);
        }
 
-       ret = request_irq(IRQ_DMA, dma_irq_handler, IRQF_DISABLED, "DMA", NULL);
+       ret = request_irq(irq, dma_irq_handler, IRQF_DISABLED, "DMA", NULL);
        if (ret) {
                printk (KERN_CRIT "Wow!  Can't register IRQ for DMA\n");
                kfree(dma_channels);
index 7804637a6df3de4c32b435b865cec0721dc0e431..77607fe4bd65e6a14af4780eb44911bba6607d1b 100644 (file)
@@ -34,7 +34,7 @@ typedef enum {
  * DMA registration
  */
 
-int __init pxa_init_dma(int num_ch);
+int __init pxa_init_dma(int irq, int num_ch);
 
 int pxa_request_dma (char *name,
                         pxa_dma_prio prio,
index 823cd891def13a4416e2f9bdd13712a8fd925026..2332e2dc35040778a9abe36f5fce441df58c2cce 100644 (file)
@@ -353,7 +353,7 @@ static int __init pxa25x_init(void)
 
                clks_register(pxa25x_clkregs, ARRAY_SIZE(pxa25x_clkregs));
 
-               if ((ret = pxa_init_dma(16)))
+               if ((ret = pxa_init_dma(IRQ_DMA, 16)))
                        return ret;
 
                pxa25x_init_pm();
index 0807794442ee464e0f88cc17d04a45e7bbdc750a..c8b469bbcf3bc14f332c64a97f4d14e79b0bd085 100644 (file)
@@ -379,7 +379,7 @@ static int __init pxa27x_init(void)
 
                clks_register(pxa27x_clkregs, ARRAY_SIZE(pxa27x_clkregs));
 
-               if ((ret = pxa_init_dma(32)))
+               if ((ret = pxa_init_dma(IRQ_DMA, 32)))
                        return ret;
 
                pxa27x_init_pm();
index 490893824e780c028243824500d378fe02c74315..e626b79cbee48d84b9b5779446432a8841605df7 100644 (file)
@@ -594,7 +594,7 @@ static int __init pxa3xx_init(void)
 
                clks_register(pxa3xx_clkregs, ARRAY_SIZE(pxa3xx_clkregs));
 
-               if ((ret = pxa_init_dma(32)))
+               if ((ret = pxa_init_dma(IRQ_DMA, 32)))
                        return ret;
 
                pxa3xx_init_pm();