diff options
author | Paul Mundt <lethal@linux-sh.org> | 2006-09-27 09:55:24 +0200 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2006-09-27 09:55:24 +0200 |
commit | 9e3043c091819729ecf4fc5063d0a2d0954dfd7f (patch) | |
tree | ee20330eef54d709d276cc56336b8f71eeaa403a /arch/sh/drivers | |
parent | sh: G2 DMA IRQ and residue sampling. (diff) | |
download | linux-9e3043c091819729ecf4fc5063d0a2d0954dfd7f.tar.xz linux-9e3043c091819729ecf4fc5063d0a2d0954dfd7f.zip |
sh: Fixup TEI IRQ requests in request_dma().
If a channel is not TEI capable, don't try to request_irq()..
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/drivers')
-rw-r--r-- | arch/sh/drivers/dma/dma-sh.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/sh/drivers/dma/dma-sh.c b/arch/sh/drivers/dma/dma-sh.c index 4428ee809651..40a480d20aaf 100644 --- a/arch/sh/drivers/dma/dma-sh.c +++ b/arch/sh/drivers/dma/dma-sh.c @@ -82,6 +82,9 @@ static int sh_dmac_request_dma(struct dma_channel *chan) { char name[32]; + if (unlikely(!chan->flags & DMA_TEI_CAPABLE)) + return 0; + snprintf(name, sizeof(name), "DMAC Transfer End (Channel %d)", chan->chan); @@ -255,7 +258,7 @@ static int __init sh_dmac_init(void) #ifdef CONFIG_CPU_SH4 make_ipr_irq(DMAE_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY); i = request_irq(DMAE_IRQ, dma_err, IRQF_DISABLED, "DMAC Address Error", 0); - if (i < 0) + if (unlikely(i < 0)) return i; #endif @@ -270,7 +273,7 @@ static int __init sh_dmac_init(void) * been set. */ i = dmaor_reset(); - if (i < 0) + if (unlikely(i != 0)) return i; return register_dmac(info); |