Hello all:
The code is copy from arm 2.5.30 tree.
----------------------------------------------------
diff -ur ./8250.c /tmp/serial/8250.c
--- ./8250.c Sun Sep 1 11:09:03 2002
+++ /tmp/serial/8250.c Fri Sep 13 11:23:29 2002
@@ -31,7 +31,8 @@
#include <linux/console.h>
#include <linux/sysrq.h>
#include <linux/serial_reg.h>
-#include <linux/serialP.h>
+#include <linux/circ_buf.h>
+#include <linux/serial.h>
#include <linux/delay.h>
#include <asm/io.h>
diff -ur ./8250.h /tmp/serial/8250.h
--- ./8250.h Sun Sep 1 11:08:52 2002
+++ /tmp/serial/8250.h Fri Sep 13 11:25:56 2002
@@ -58,4 +58,16 @@
#define SERIAL8250_SHARE_IRQS 1
#else
#define SERIAL8250_SHARE_IRQS 0
+
+#if defined(__alpha__) && !defined(CONFIG_PCI)
+/*
+ * Digital did something really horribly wrong with the OUT1 and OUT2
+ * lines on at least some ALPHA's. The failure mode is that if either
+ * is cleared, the machine locks up with endless interrupts.
+ */
+#define ALPHA_KLUDGE_MCR (UART_MCR_OUT2 | UART_MCR_OUT1)
+#else
+#define ALPHA_KLUDGE_MCR 0
+#endif
+
#endif
--
- Hu Gang
[email protected] said:
> +#define ALPHA_KLUDGE_MCR (UART_MCR_OUT2 | UART_MCR_OUT1)
Operative word being 'kludge'. Fix it properly, let the board-specific code
specify default values for and masks on whether the user can change each
I/O bit when it calls register_serial() to register the chip.
--
dwmw2