|
From: James S. <jsi...@us...> - 2001-10-08 04:33:48
|
Update of /cvsroot/linuxconsole/ruby/linux/drivers/serial
In directory usw-pr-cvs1:/tmp/cvs-serv25653
Modified Files:
serial_21285.c serial_8250.c serial_8250.h serial_8250_pci.c
serial_8250_pnp.c serial_amba.c serial_clps711x.c
serial_core.c serial_sa1100.c
Log Message:
More syncing to Russel King's serial work. I really need to get to reworking it so the serial layer behaves more like the parallel port layer.
Index: serial_21285.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_21285.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- serial_21285.c 2001/07/29 18:24:12 1.3
+++ serial_21285.c 2001/10/08 04:33:45 1.4
@@ -563,3 +563,8 @@
}
#endif /* CONFIG_SERIAL_21285_CONSOLE */
+
+EXPORT_NO_SYMBOLS;
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Intel Footbridge (21285) serial driver");
Index: serial_8250.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_8250.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- serial_8250.c 2001/08/23 02:46:17 1.7
+++ serial_8250.c 2001/10/08 04:33:45 1.8
@@ -76,8 +76,9 @@
static struct tty_driver normal, callout;
static struct tty_struct *serial8250_table[UART_NR];
static struct termios *serial8250_termios[UART_NR], *serial8250_termios_locked[UART_NR];
-#ifdef SUPPORT_SYSRQ
+#ifdef CONFIG_SERIAL_8250_CONSOLE
static struct console serial8250_console;
+static unsigned int lsr_break_flag;
#endif
static struct uart_info *IRQ_ports[NR_IRQS];
@@ -692,7 +693,7 @@
* may get masked by ignore_status_mask
* or read_status_mask.
*/
- uart_handle_break(info, &sercons);
+ uart_handle_break(info, &serial8250_console);
} else if (*status & UART_LSR_PE)
port->icount.parity++;
else if (*status & UART_LSR_FE)
@@ -706,7 +707,7 @@
*status &= port->read_status_mask;
#ifdef CONFIG_SERIAL_8250_CONSOLE
- if (port->line == sercons.index) {
+ if (port->line == serial8250_console.index) {
/* Recover the break flag from console xmit */
*status |= lsr_break_flag;
lsr_break_flag = 0;
@@ -1651,6 +1652,8 @@
}
#endif
+#define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
+
/*
* Wait for transmitter & holding register to empty
*/
@@ -1880,3 +1883,7 @@
EXPORT_SYMBOL(register_serial);
EXPORT_SYMBOL(unregister_serial);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Generic 8250/16x50 serial driver");
+
Index: serial_8250.h
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_8250.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
Index: serial_8250_pci.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_8250_pci.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- serial_8250_pci.c 2001/09/02 23:41:27 1.7
+++ serial_8250_pci.c 2001/10/08 04:33:45 1.8
@@ -1071,3 +1071,9 @@
module_init(serial8250_pci_init);
module_exit(serial8250_pci_exit);
+
+EXPORT_NO_SYMBOLS;
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Generic 8250/16x50 PCI serial probe module");
+MODULE_GENERIC_TABLE(pci, serial_pci_tbl);
Index: serial_8250_pnp.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_8250_pnp.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- serial_8250_pnp.c 2001/07/29 18:24:12 1.3
+++ serial_8250_pnp.c 2001/10/08 04:33:45 1.4
@@ -544,3 +544,10 @@
module_init(serial8250_pnp_init);
module_exit(serial8250_pnp_exit);
+
+EXPORT_NO_SYMBOLS;
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Generic 8250/16x50 PNPBIOS serial probe module");
+MODULE_GENERIC_TABLE(pnp, pnp_dev_table);
+
Index: serial_amba.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_amba.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- serial_amba.c 2001/08/23 02:46:18 1.6
+++ serial_amba.c 2001/10/08 04:33:45 1.7
@@ -487,7 +487,7 @@
/* first, disable everything */
save_flags(flags); cli();
- old_cr = UART_GET_CR(port) &= ~AMBA_UARTCR_MSIE;
+ old_cr = UART_GET_CR(port) & ~AMBA_UARTCR_MSIE;
if ((port->flags & ASYNC_HARDPPS_CD) ||
(cflag & CRTSCTS) || !(cflag & CLOCAL))
@@ -496,6 +496,7 @@
UART_PUT_CR(port, 0);
/* Set baud rate */
+ quot -= 1;
UART_PUT_LCRM(port, ((quot & 0xf00) >> 8));
UART_PUT_LCRL(port, (quot & 0xff));
@@ -725,6 +726,7 @@
}
static struct console amba_console = {
+ name: "ttyAM",
write: ambauart_console_write,
#ifdef used_and_not_const_char_pointer
read: ambauart_console_read,
@@ -780,3 +782,9 @@
module_init(ambauart_init);
module_exit(ambauart_exit);
+
+EXPORT_NO_SYMBOLS;
+
+MODULE_AUTHOR("ARM Ltd/Deep Blue Solutions Ltd");
+MODULE_DESCRIPTION("ARM AMBA serial port driver");
+MODULE_LICENSE("GPL");
Index: serial_clps711x.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_clps711x.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- serial_clps711x.c 2001/08/18 22:23:04 1.6
+++ serial_clps711x.c 2001/10/08 04:33:45 1.7
@@ -676,3 +676,9 @@
module_init(clps711xuart_init);
module_exit(clps711xuart_exit);
+
+EXPORT_NO_SYMBOLS;
+
+MODULE_AUTHOR("Deep Blue Solutions Ltd");
+MODULE_DESCRIPTION("CLPS-711x generic serial driver");
+MODULE_LICENSE("GPL");
Index: serial_core.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_core.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- serial_core.c 2001/08/18 22:23:04 1.12
+++ serial_core.c 2001/10/08 04:33:45 1.13
@@ -273,7 +273,7 @@
((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_CUST))
quot = info->state->custom_divisor;
else
- quot = (info->port->uartclk / (16 * baud)) - 1;
+ quot = info->port->uartclk / (16 * baud);
return quot;
}
@@ -1689,11 +1689,43 @@
}
co->cflag = cflag;
- quot = (port->uartclk / (16 * baud)) - 1;
+ quot = (port->uartclk / (16 * baud));
port->ops->change_speed(port, cflag, 0, quot);
return 0;
}
+
+extern void ambauart_console_init(void);
+extern void anakin_console_init(void);
+extern void clps711xuart_console_init(void);
+extern void rs285_console_init(void);
+extern void sa1100_rs_console_init(void);
+extern void serial8250_console_init(void);
+
+/*
+ * Central "initialise all serial consoles" container. Needs to be killed.
+ */
+void __init uart_console_init(void)
+{
+#ifdef CONFIG_SERIAL_AMBA_CONSOLE
+ ambauart_console_init();
+#endif
+#ifdef CONFIG_SERIAL_ANAKIN_CONSOLE
+ anakin_console_init();
+#endif
+#ifdef CONFIG_SERIAL_CLPS711X_CONSOLE
+ clps711xuart_console_init();
+#endif
+#ifdef CONFIG_SERIAL_21285_CONSOLE
+ rs285_console_init();
+#endif
+#ifdef CONFIG_SERIAL_SA1100_CONSOLE
+ sa1100_rs_console_init();
+#endif
+#ifdef CONFIG_SERIAL_8250_CONSOLE
+ serial8250_console_init();
+#endif
+}
#endif /* CONFIG_SERIAL_CORE_CONSOLE */
#ifdef CONFIG_PM
@@ -2147,3 +2179,6 @@
module_init(uart_init);
module_exit(uart_exit);
+
+MODULE_DESCRIPTION("Serial driver core");
+MODULE_LICENSE("GPL");
Index: serial_sa1100.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/serial/serial_sa1100.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- serial_sa1100.c 2001/08/23 02:46:18 1.11
+++ serial_sa1100.c 2001/10/08 04:33:45 1.12
@@ -434,6 +434,7 @@
UART_PUT_UTCR0(port, utcr0);
/* set the baud rate */
+ quot -= 1;
UART_PUT_UTCR1(port, ((quot & 0xf00) >> 8));
UART_PUT_UTCR2(port, (quot & 0xff));
@@ -792,4 +793,10 @@
module_init(sa1100_serial_init);
module_exit(sa1100_serial_exit);
+
+EXPORT_NO_SYMBOLS;
+
+MODULE_AUTHOR("Deep Blue Solutions Ltd");
+MODULE_DESCRIPTION("SA1100 generic serial port driver");
+MODULE_LICENSE("GPL");
|