mirror of https://github.com/hak5/openwrt.git
37 lines
1.2 KiB
Diff
37 lines
1.2 KiB
Diff
|
From 7bc3950017d2c54883591367723b7fd84cc65d6f Mon Sep 17 00:00:00 2001
|
||
|
From: Axel Gembe <ago@bastart.eu.org>
|
||
|
Date: Sun, 18 May 2008 12:09:14 +0200
|
||
|
Subject: [PATCH] bcm963xx: fix uart isr
|
||
|
|
||
|
The ISR ended up in an endless loop because the TX ISR never got used or masked.
|
||
|
This patch basically makes the TX ISR mask the the TX interrupt when it
|
||
|
encounters it, because it doesn't even use the TX interrupt.
|
||
|
|
||
|
Signed-off-by: Axel Gembe <ago@bastart.eu.org>
|
||
|
---
|
||
|
drivers/serial/bcm63xx_cons.c | 6 ++++++
|
||
|
1 files changed, 6 insertions(+), 0 deletions(-)
|
||
|
|
||
|
diff --git a/drivers/serial/bcm63xx_cons.c b/drivers/serial/bcm63xx_cons.c
|
||
|
index 2302ea6..c60b8f0 100644
|
||
|
--- a/drivers/serial/bcm63xx_cons.c
|
||
|
+++ b/drivers/serial/bcm63xx_cons.c
|
||
|
@@ -258,8 +258,14 @@ static void bcm_interrupt(int irq, void *dev, struct pt_regs *regs)
|
||
|
while (intStat) {
|
||
|
if (intStat & RXINT)
|
||
|
receive_chars(info);
|
||
|
+
|
||
|
+#if 0 /* This code is total bullshit, TXINT doesn't get masked anywhere, so this will give an endless loop */
|
||
|
+
|
||
|
else if (intStat & TXINT)
|
||
|
info->port->intStatus = TXINT;
|
||
|
+
|
||
|
+#endif /* 0 */
|
||
|
+
|
||
|
else /* don't know what it was, so let's mask it */
|
||
|
info->port->intMask &= ~intStat;
|
||
|
|
||
|
--
|
||
|
1.5.5.1
|
||
|
|