1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-12-01 06:34:04 +02:00
openwrt-xburst/target/linux/brcm63xx/patches-2.6.25/070-bcm963xx_fix_uart_isr.patch
juhosg f2a91858ac [brcm63xx] refresh kernel patches
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@11201 3c298f89-4303-0410-b956-a3cf2f4a3e73
2008-05-19 08:33:22 +00:00

34 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(-)
Index: linux-2.6.25.4/drivers/serial/bcm63xx_cons.c
===================================================================
--- linux-2.6.25.4.orig/drivers/serial/bcm63xx_cons.c
+++ linux-2.6.25.4/drivers/serial/bcm63xx_cons.c
@@ -258,8 +258,14 @@ static void bcm_interrupt(int irq, void
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;