dma: shdma: add checking the DMAOR_AE in sh_dmae_err

The irq numbers of tranfer end and address error are assigned same number
on some CPU. So the sh_dmae_err() should check the AE flag in DMAOR.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
Yoshihiro Shimoda 2011-02-09 07:46:47 +00:00 committed by Paul Mundt
parent 89078d572e
commit ff7690b48a

View File

@ -865,7 +865,12 @@ static unsigned int sh_dmae_reset(struct sh_dmae_device *shdev)
static irqreturn_t sh_dmae_err(int irq, void *data)
{
return IRQ_RETVAL(sh_dmae_reset(data));
struct sh_dmae_device *shdev = data;
if (dmaor_read(shdev) & DMAOR_AE)
return IRQ_RETVAL(sh_dmae_reset(data));
else
return IRQ_NONE;
}
static void dmae_do_tasklet(unsigned long data)