diff options
Diffstat (limited to 'arch/arm/plat-omap/dma.c')
-rw-r--r-- | arch/arm/plat-omap/dma.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index 1c98659bbf89..c2baa8ede543 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c | |||
@@ -2102,7 +2102,7 @@ static int omap_system_dma_probe(struct platform_device *pdev) | |||
2102 | omap_dma_set_global_params(DMA_DEFAULT_ARB_RATE, | 2102 | omap_dma_set_global_params(DMA_DEFAULT_ARB_RATE, |
2103 | DMA_DEFAULT_FIFO_DEPTH, 0); | 2103 | DMA_DEFAULT_FIFO_DEPTH, 0); |
2104 | 2104 | ||
2105 | if (dma_omap2plus()) { | 2105 | if (dma_omap2plus() && !(d->dev_caps & DMA_ENGINE_HANDLE_IRQ)) { |
2106 | strcpy(irq_name, "0"); | 2106 | strcpy(irq_name, "0"); |
2107 | dma_irq = platform_get_irq_byname(pdev, irq_name); | 2107 | dma_irq = platform_get_irq_byname(pdev, irq_name); |
2108 | if (dma_irq < 0) { | 2108 | if (dma_irq < 0) { |
@@ -2147,7 +2147,8 @@ static int omap_system_dma_remove(struct platform_device *pdev) | |||
2147 | char irq_name[4]; | 2147 | char irq_name[4]; |
2148 | strcpy(irq_name, "0"); | 2148 | strcpy(irq_name, "0"); |
2149 | dma_irq = platform_get_irq_byname(pdev, irq_name); | 2149 | dma_irq = platform_get_irq_byname(pdev, irq_name); |
2150 | remove_irq(dma_irq, &omap24xx_dma_irq); | 2150 | if (dma_irq >= 0) |
2151 | remove_irq(dma_irq, &omap24xx_dma_irq); | ||
2151 | } else { | 2152 | } else { |
2152 | int irq_rel = 0; | 2153 | int irq_rel = 0; |
2153 | for ( ; irq_rel < dma_chan_count; irq_rel++) { | 2154 | for ( ; irq_rel < dma_chan_count; irq_rel++) { |