patch-2.4.18 linux/arch/ppc/boot/common/ns16550.c
Next file: linux/arch/ppc/boot/images/Makefile
Previous file: linux/arch/ppc/boot/common/misc-simple.c
Back to the patch index
Back to the overall index
- Lines: 45
- Date:
Wed Dec 26 16:28:34 2001
- Orig file:
linux.orig/arch/ppc/boot/common/ns16550.c
- Orig date:
Mon Feb 18 20:18:39 2002
diff -Naur -X /home/marcelo/lib/dontdiff linux.orig/arch/ppc/boot/common/ns16550.c linux/arch/ppc/boot/common/ns16550.c
@@ -1,5 +1,5 @@
/*
- * BK Id: SCCS/s.ns16550.c 1.9 07/30/01 17:19:40 trini
+ * BK Id: SCCS/s.ns16550.c 1.12 10/08/01 17:16:50 paulus
*/
/*
* COM1 NS16550 support
@@ -10,6 +10,9 @@
#include <linux/serial_reg.h>
#include <asm/serial.h>
+/* Default serial baud rate */
+#define SERIAL_BAUD 9600
+
extern void outb(int port, unsigned char val);
extern unsigned char inb(int port);
extern unsigned long ISA_io;
@@ -46,13 +49,20 @@
outb(com_port + (UART_IER << shift), 0x00);
/* Access baud rate */
outb(com_port + (UART_LCR << shift), 0x80);
-#ifdef CONFIG_SERIAL_CONSOLE_NONSTD
- /* Input clock. */
- outb(com_port + (UART_DLL << shift),
- (BASE_BAUD / CONFIG_SERIAL_CONSOLE_BAUD));
- outb(com_port + (UART_DLM << shift),
- (BASE_BAUD / CONFIG_SERIAL_CONSOLE_BAUD) >> 8);
-#endif
+ /*
+ * Test if serial port is unconfigured.
+ * We assume that no-one uses less than 110 baud or
+ * less than 7 bits per character these days.
+ * -- paulus.
+ */
+ if (inb(com_port + (UART_DLM << shift)) > 4
+ || (inb(com_port + (UART_LCR << shift)) & 2) == 0) {
+ /* Input clock. */
+ outb(com_port + (UART_DLL << shift),
+ (BASE_BAUD / SERIAL_BAUD));
+ outb(com_port + (UART_DLM << shift),
+ (BASE_BAUD / SERIAL_BAUD) >> 8);
+ }
/* 8 data, 1 stop, no parity */
outb(com_port + (UART_LCR << shift), 0x03);
/* RTS/DTR */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)