summaryrefslogtreecommitdiff
path: root/drivers/serial/atmel_serial.c
diff options
context:
space:
mode:
authorHaavard Skinnemoen <hskinnemoen@atmel.com>2008-02-24 02:23:36 +0300
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-24 04:12:14 +0300
commit0400b697ef20247d26427e4beb6a84ca5aa51f45 (patch)
tree1d7461bea423da98bb8d4ac409a69126b7f8c9cb /drivers/serial/atmel_serial.c
parent98bcef56cadb4da138e2c1a2a0790f372382b236 (diff)
downloadlinux-0400b697ef20247d26427e4beb6a84ca5aa51f45.tar.xz
atmel_serial: fix interrupt handler return value
We should only return IRQ_HANDLED when we actually found something to handle. This is important since the USART interrupt handler may be shared with the timer interrupt on some chips. Pointed-out-by: michael <trimarchi@gandalf.sssup.it> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/serial/atmel_serial.c')
-rw-r--r--drivers/serial/atmel_serial.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c
index fad245b064d6..d57bf3e708d8 100644
--- a/drivers/serial/atmel_serial.c
+++ b/drivers/serial/atmel_serial.c
@@ -549,7 +549,7 @@ static irqreturn_t atmel_interrupt(int irq, void *dev_id)
atmel_handle_transmit(port, pending);
} while (pass_counter++ < ATMEL_ISR_PASS_LIMIT);
- return IRQ_HANDLED;
+ return pass_counter ? IRQ_HANDLED : IRQ_NONE;
}
/*