aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2006-12-08 05:38:45 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-08 11:28:57 -0500
commit606d099cdd1080bbb50ea50dc52d98252f8f10a1 (patch)
tree80d17450a5fb78effce3f4312f672c058658e004 /drivers/serial
parentedc6afc5496875a640bef0913604be7550c1795d (diff)
[PATCH] tty: switch to ktermios
This is the grungy swap all the occurrences in the right places patch that goes with the updates. At this point we have the same functionality as before (except that sgttyb() returns speeds not zero) and are ready to begin turning new stuff on providing nobody reports lots of bugs If you are a tty driver author converting an out of tree driver the only impact should be termios->ktermios name changes for the speed/property setting functions from your upper layers. If you are implementing your own TCGETS function before then your driver was broken already and its about to get a whole lot more painful for you so please fix it 8) Also fill in c_ispeed/ospeed on init for most devices, although the current code will do this for you anyway but I'd like eventually to lose that extra paranoia [akpm@osdl.org: bluetooth fix] [mp3@de.ibm.com: sclp fix] [mp3@de.ibm.com: warning fix for tty3270] [hugh@veritas.com: fix tty_ioctl powerpc build] [jdike@addtoit.com: uml: fix ->set_termios declaration] Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Martin Peschke <mp3@de.ibm.com> Acked-by: Peter Oberparleiter <oberpar@de.ibm.com> Cc: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Hugh Dickins <hugh@veritas.com> Signed-off-by: Jeff Dike <jdike@addtoit.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/serial')
-rw-r--r--drivers/serial/21285.c4
-rw-r--r--drivers/serial/68328serial.c2
-rw-r--r--drivers/serial/68360serial.c2
-rw-r--r--drivers/serial/8250.c4
-rw-r--r--drivers/serial/amba-pl010.c4
-rw-r--r--drivers/serial/amba-pl011.c4
-rw-r--r--drivers/serial/atmel_serial.c2
-rw-r--r--drivers/serial/clps711x.c4
-rw-r--r--drivers/serial/crisv10.c8
-rw-r--r--drivers/serial/crisv10.h4
-rw-r--r--drivers/serial/dz.c4
-rw-r--r--drivers/serial/icom.c4
-rw-r--r--drivers/serial/imx.c4
-rw-r--r--drivers/serial/ioc3_serial.c4
-rw-r--r--drivers/serial/ioc4_serial.c6
-rw-r--r--drivers/serial/ip22zilog.c4
-rw-r--r--drivers/serial/jsm/jsm_tty.c10
-rw-r--r--drivers/serial/m32r_sio.c2
-rw-r--r--drivers/serial/mcfserial.c2
-rw-r--r--drivers/serial/mpc52xx_uart.c4
-rw-r--r--drivers/serial/mpsc.c4
-rw-r--r--drivers/serial/mux.c4
-rw-r--r--drivers/serial/netx-serial.c4
-rw-r--r--drivers/serial/pmac_zilog.c10
-rw-r--r--drivers/serial/pmac_zilog.h2
-rw-r--r--drivers/serial/pxa.c4
-rw-r--r--drivers/serial/s3c2410.c4
-rw-r--r--drivers/serial/sa1100.c4
-rw-r--r--drivers/serial/serial_core.c21
-rw-r--r--drivers/serial/serial_lh7a40x.c4
-rw-r--r--drivers/serial/serial_txx9.c4
-rw-r--r--drivers/serial/sh-sci.c4
-rw-r--r--drivers/serial/sn_console.c4
-rw-r--r--drivers/serial/sunhv.c4
-rw-r--r--drivers/serial/sunsab.c4
-rw-r--r--drivers/serial/sunsu.c4
-rw-r--r--drivers/serial/sunzilog.c4
-rw-r--r--drivers/serial/uartlite.c4
-rw-r--r--drivers/serial/v850e_uart.c4
-rw-r--r--drivers/serial/vr41xx_siu.c4
40 files changed, 93 insertions, 90 deletions
diff --git a/drivers/serial/21285.c b/drivers/serial/21285.c
index 6a1a568ca649..facb67855619 100644
--- a/drivers/serial/21285.c
+++ b/drivers/serial/21285.c
@@ -214,8 +214,8 @@ static void serial21285_shutdown(struct uart_port *port)
214} 214}
215 215
216static void 216static void
217serial21285_set_termios(struct uart_port *port, struct termios *termios, 217serial21285_set_termios(struct uart_port *port, struct ktermios *termios,
218 struct termios *old) 218 struct ktermios *old)
219{ 219{
220 unsigned long flags; 220 unsigned long flags;
221 unsigned int baud, quot, h_lcr; 221 unsigned int baud, quot, h_lcr;
diff --git a/drivers/serial/68328serial.c b/drivers/serial/68328serial.c
index 9b8b585513ec..cad426c9711e 100644
--- a/drivers/serial/68328serial.c
+++ b/drivers/serial/68328serial.c
@@ -1061,7 +1061,7 @@ static int rs_ioctl(struct tty_struct *tty, struct file * file,
1061 return 0; 1061 return 0;
1062} 1062}
1063 1063
1064static void rs_set_termios(struct tty_struct *tty, struct termios *old_termios) 1064static void rs_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
1065{ 1065{
1066 struct m68k_serial *info = (struct m68k_serial *)tty->driver_data; 1066 struct m68k_serial *info = (struct m68k_serial *)tty->driver_data;
1067 1067
diff --git a/drivers/serial/68360serial.c b/drivers/serial/68360serial.c
index 634ecca36a77..68817a7d8c0d 100644
--- a/drivers/serial/68360serial.c
+++ b/drivers/serial/68360serial.c
@@ -1523,7 +1523,7 @@ static int rs_360_ioctl(struct tty_struct *tty, struct file * file,
1523 1523
1524/* FIX UP modem control here someday...... 1524/* FIX UP modem control here someday......
1525*/ 1525*/
1526static void rs_360_set_termios(struct tty_struct *tty, struct termios *old_termios) 1526static void rs_360_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
1527{ 1527{
1528 ser_info_t *info = (ser_info_t *)tty->driver_data; 1528 ser_info_t *info = (ser_info_t *)tty->driver_data;
1529 1529
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index e34bd03cfce7..51f3c739f7e1 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -1763,8 +1763,8 @@ static unsigned int serial8250_get_divisor(struct uart_port *port, unsigned int
1763} 1763}
1764 1764
1765static void 1765static void
1766serial8250_set_termios(struct uart_port *port, struct termios *termios, 1766serial8250_set_termios(struct uart_port *port, struct ktermios *termios,
1767 struct termios *old) 1767 struct ktermios *old)
1768{ 1768{
1769 struct uart_8250_port *up = (struct uart_8250_port *)port; 1769 struct uart_8250_port *up = (struct uart_8250_port *)port;
1770 unsigned char cval, fcr = 0; 1770 unsigned char cval, fcr = 0;
diff --git a/drivers/serial/amba-pl010.c b/drivers/serial/amba-pl010.c
index 4d3626ef4643..61db6973755a 100644
--- a/drivers/serial/amba-pl010.c
+++ b/drivers/serial/amba-pl010.c
@@ -345,8 +345,8 @@ static void pl010_shutdown(struct uart_port *port)
345} 345}
346 346
347static void 347static void
348pl010_set_termios(struct uart_port *port, struct termios *termios, 348pl010_set_termios(struct uart_port *port, struct ktermios *termios,
349 struct termios *old) 349 struct ktermios *old)
350{ 350{
351 unsigned int lcr_h, old_cr; 351 unsigned int lcr_h, old_cr;
352 unsigned long flags; 352 unsigned long flags;
diff --git a/drivers/serial/amba-pl011.c b/drivers/serial/amba-pl011.c
index d503625730df..9a3b374b2a08 100644
--- a/drivers/serial/amba-pl011.c
+++ b/drivers/serial/amba-pl011.c
@@ -412,8 +412,8 @@ static void pl011_shutdown(struct uart_port *port)
412} 412}
413 413
414static void 414static void
415pl011_set_termios(struct uart_port *port, struct termios *termios, 415pl011_set_termios(struct uart_port *port, struct ktermios *termios,
416 struct termios *old) 416 struct ktermios *old)
417{ 417{
418 unsigned int lcr_h, old_cr; 418 unsigned int lcr_h, old_cr;
419 unsigned long flags; 419 unsigned long flags;
diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c
index 9217ee6c7865..ed7f7209ea59 100644
--- a/drivers/serial/atmel_serial.c
+++ b/drivers/serial/atmel_serial.c
@@ -478,7 +478,7 @@ static void atmel_serial_pm(struct uart_port *port, unsigned int state, unsigned
478/* 478/*
479 * Change the port parameters 479 * Change the port parameters
480 */ 480 */
481static void atmel_set_termios(struct uart_port *port, struct termios * termios, struct termios * old) 481static void atmel_set_termios(struct uart_port *port, struct ktermios * termios, struct ktermios * old)
482{ 482{
483 unsigned long flags; 483 unsigned long flags;
484 unsigned int mode, imr, quot, baud; 484 unsigned int mode, imr, quot, baud;
diff --git a/drivers/serial/clps711x.c b/drivers/serial/clps711x.c
index 598012714882..23827189ec0e 100644
--- a/drivers/serial/clps711x.c
+++ b/drivers/serial/clps711x.c
@@ -286,8 +286,8 @@ static void clps711xuart_shutdown(struct uart_port *port)
286} 286}
287 287
288static void 288static void
289clps711xuart_set_termios(struct uart_port *port, struct termios *termios, 289clps711xuart_set_termios(struct uart_port *port, struct ktermios *termios,
290 struct termios *old) 290 struct ktermios *old)
291{ 291{
292 unsigned int ubrlcr, baud, quot; 292 unsigned int ubrlcr, baud, quot;
293 unsigned long flags; 293 unsigned long flags;
diff --git a/drivers/serial/crisv10.c b/drivers/serial/crisv10.c
index 7a24e53546c7..42b050c46abe 100644
--- a/drivers/serial/crisv10.c
+++ b/drivers/serial/crisv10.c
@@ -804,8 +804,8 @@ static struct e100_serial rs_table[] = {
804 804
805#define NR_PORTS (sizeof(rs_table)/sizeof(struct e100_serial)) 805#define NR_PORTS (sizeof(rs_table)/sizeof(struct e100_serial))
806 806
807static struct termios *serial_termios[NR_PORTS]; 807static struct ktermios *serial_termios[NR_PORTS];
808static struct termios *serial_termios_locked[NR_PORTS]; 808static struct ktermios *serial_termios_locked[NR_PORTS];
809#ifdef CONFIG_ETRAX_SERIAL_FAST_TIMER 809#ifdef CONFIG_ETRAX_SERIAL_FAST_TIMER
810static struct fast_timer fast_timers[NR_PORTS]; 810static struct fast_timer fast_timers[NR_PORTS];
811#endif 811#endif
@@ -4223,7 +4223,7 @@ rs_ioctl(struct tty_struct *tty, struct file * file,
4223} 4223}
4224 4224
4225static void 4225static void
4226rs_set_termios(struct tty_struct *tty, struct termios *old_termios) 4226rs_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
4227{ 4227{
4228 struct e100_serial *info = (struct e100_serial *)tty->driver_data; 4228 struct e100_serial *info = (struct e100_serial *)tty->driver_data;
4229 4229
@@ -4877,6 +4877,8 @@ rs_init(void)
4877 driver->init_termios = tty_std_termios; 4877 driver->init_termios = tty_std_termios;
4878 driver->init_termios.c_cflag = 4878 driver->init_termios.c_cflag =
4879 B115200 | CS8 | CREAD | HUPCL | CLOCAL; /* is normally B9600 default... */ 4879 B115200 | CS8 | CREAD | HUPCL | CLOCAL; /* is normally B9600 default... */
4880 driver->init_termios.c_ispeed = 115200;
4881 driver->init_termios.c_ospeed = 115200;
4880 driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV; 4882 driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV;
4881 driver->termios = serial_termios; 4883 driver->termios = serial_termios;
4882 driver->termios_locked = serial_termios_locked; 4884 driver->termios_locked = serial_termios_locked;
diff --git a/drivers/serial/crisv10.h b/drivers/serial/crisv10.h
index f30b93d6ef79..4a23340663aa 100644
--- a/drivers/serial/crisv10.h
+++ b/drivers/serial/crisv10.h
@@ -93,8 +93,8 @@ struct e100_serial {
93 93
94 struct work_struct work; 94 struct work_struct work;
95 struct async_icount icount; /* error-statistics etc.*/ 95 struct async_icount icount; /* error-statistics etc.*/
96 struct termios normal_termios; 96 struct ktermios normal_termios;
97 struct termios callout_termios; 97 struct ktermios callout_termios;
98#ifdef DECLARE_WAITQUEUE 98#ifdef DECLARE_WAITQUEUE
99 wait_queue_head_t open_wait; 99 wait_queue_head_t open_wait;
100 wait_queue_head_t close_wait; 100 wait_queue_head_t close_wait;
diff --git a/drivers/serial/dz.c b/drivers/serial/dz.c
index af1544f3356f..587d87b9eb3c 100644
--- a/drivers/serial/dz.c
+++ b/drivers/serial/dz.c
@@ -461,8 +461,8 @@ static void dz_break_ctl(struct uart_port *uport, int break_state)
461 spin_unlock_irqrestore(&uport->lock, flags); 461 spin_unlock_irqrestore(&uport->lock, flags);
462} 462}
463 463
464static void dz_set_termios(struct uart_port *uport, struct termios *termios, 464static void dz_set_termios(struct uart_port *uport, struct ktermios *termios,
465 struct termios *old_termios) 465 struct ktermios *old_termios)
466{ 466{
467 struct dz_port *dport = (struct dz_port *)uport; 467 struct dz_port *dport = (struct dz_port *)uport;
468 unsigned long flags; 468 unsigned long flags;
diff --git a/drivers/serial/icom.c b/drivers/serial/icom.c
index 8aa0f641866b..7d623003e65e 100644
--- a/drivers/serial/icom.c
+++ b/drivers/serial/icom.c
@@ -1087,8 +1087,8 @@ static void icom_close(struct uart_port *port)
1087} 1087}
1088 1088
1089static void icom_set_termios(struct uart_port *port, 1089static void icom_set_termios(struct uart_port *port,
1090 struct termios *termios, 1090 struct ktermios *termios,
1091 struct termios *old_termios) 1091 struct ktermios *old_termios)
1092{ 1092{
1093 int baud; 1093 int baud;
1094 unsigned cflag, iflag; 1094 unsigned cflag, iflag;
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c
index ee5c782597dd..e216dcf29376 100644
--- a/drivers/serial/imx.c
+++ b/drivers/serial/imx.c
@@ -459,8 +459,8 @@ static void imx_shutdown(struct uart_port *port)
459} 459}
460 460
461static void 461static void
462imx_set_termios(struct uart_port *port, struct termios *termios, 462imx_set_termios(struct uart_port *port, struct ktermios *termios,
463 struct termios *old) 463 struct ktermios *old)
464{ 464{
465 struct imx_port *sport = (struct imx_port *)port; 465 struct imx_port *sport = (struct imx_port *)port;
466 unsigned long flags; 466 unsigned long flags;
diff --git a/drivers/serial/ioc3_serial.c b/drivers/serial/ioc3_serial.c
index 2308d26c8629..9cc0be932316 100644
--- a/drivers/serial/ioc3_serial.c
+++ b/drivers/serial/ioc3_serial.c
@@ -950,7 +950,7 @@ static void transmit_chars(struct uart_port *the_port)
950 */ 950 */
951static void 951static void
952ioc3_change_speed(struct uart_port *the_port, 952ioc3_change_speed(struct uart_port *the_port,
953 struct termios *new_termios, struct termios *old_termios) 953 struct ktermios *new_termios, struct ktermios *old_termios)
954{ 954{
955 struct ioc3_port *port = get_ioc3_port(the_port); 955 struct ioc3_port *port = get_ioc3_port(the_port);
956 unsigned int cflag; 956 unsigned int cflag;
@@ -1853,7 +1853,7 @@ static int ic3_startup(struct uart_port *the_port)
1853 */ 1853 */
1854static void 1854static void
1855ic3_set_termios(struct uart_port *the_port, 1855ic3_set_termios(struct uart_port *the_port,
1856 struct termios *termios, struct termios *old_termios) 1856 struct ktermios *termios, struct ktermios *old_termios)
1857{ 1857{
1858 unsigned long port_flags; 1858 unsigned long port_flags;
1859 1859
diff --git a/drivers/serial/ioc4_serial.c b/drivers/serial/ioc4_serial.c
index 711bd1511439..c862f67c985a 100644
--- a/drivers/serial/ioc4_serial.c
+++ b/drivers/serial/ioc4_serial.c
@@ -1681,7 +1681,7 @@ static void transmit_chars(struct uart_port *the_port)
1681 */ 1681 */
1682static void 1682static void
1683ioc4_change_speed(struct uart_port *the_port, 1683ioc4_change_speed(struct uart_port *the_port,
1684 struct termios *new_termios, struct termios *old_termios) 1684 struct ktermios *new_termios, struct ktermios *old_termios)
1685{ 1685{
1686 struct ioc4_port *port = get_ioc4_port(the_port, 0); 1686 struct ioc4_port *port = get_ioc4_port(the_port, 0);
1687 int baud, bits; 1687 int baud, bits;
@@ -1802,7 +1802,7 @@ static inline int ic4_startup_local(struct uart_port *the_port)
1802 ioc4_set_proto(port, the_port->mapbase); 1802 ioc4_set_proto(port, the_port->mapbase);
1803 1803
1804 /* set the speed of the serial port */ 1804 /* set the speed of the serial port */
1805 ioc4_change_speed(the_port, info->tty->termios, (struct termios *)0); 1805 ioc4_change_speed(the_port, info->tty->termios, (struct ktermios *)0);
1806 1806
1807 return 0; 1807 return 0;
1808} 1808}
@@ -2570,7 +2570,7 @@ static int ic4_startup(struct uart_port *the_port)
2570 */ 2570 */
2571static void 2571static void
2572ic4_set_termios(struct uart_port *the_port, 2572ic4_set_termios(struct uart_port *the_port,
2573 struct termios *termios, struct termios *old_termios) 2573 struct ktermios *termios, struct ktermios *old_termios)
2574{ 2574{
2575 unsigned long port_flags; 2575 unsigned long port_flags;
2576 2576
diff --git a/drivers/serial/ip22zilog.c b/drivers/serial/ip22zilog.c
index dca6c1bde8f9..0746c9446ae0 100644
--- a/drivers/serial/ip22zilog.c
+++ b/drivers/serial/ip22zilog.c
@@ -840,8 +840,8 @@ ip22zilog_convert_to_zs(struct uart_ip22zilog_port *up, unsigned int cflag,
840 840
841/* The port lock is not held. */ 841/* The port lock is not held. */
842static void 842static void
843ip22zilog_set_termios(struct uart_port *port, struct termios *termios, 843ip22zilog_set_termios(struct uart_port *port, struct ktermios *termios,
844 struct termios *old) 844 struct ktermios *old)
845{ 845{
846 struct uart_ip22zilog_port *up = (struct uart_ip22zilog_port *) port; 846 struct uart_ip22zilog_port *up = (struct uart_ip22zilog_port *) port;
847 unsigned long flags; 847 unsigned long flags;
diff --git a/drivers/serial/jsm/jsm_tty.c b/drivers/serial/jsm/jsm_tty.c
index f8262e6ad8d3..7cf1c60027f8 100644
--- a/drivers/serial/jsm/jsm_tty.c
+++ b/drivers/serial/jsm/jsm_tty.c
@@ -142,7 +142,7 @@ static void jsm_tty_send_xchar(struct uart_port *port, char ch)
142{ 142{
143 unsigned long lock_flags; 143 unsigned long lock_flags;
144 struct jsm_channel *channel = (struct jsm_channel *)port; 144 struct jsm_channel *channel = (struct jsm_channel *)port;
145 struct termios *termios; 145 struct ktermios *termios;
146 146
147 spin_lock_irqsave(&port->lock, lock_flags); 147 spin_lock_irqsave(&port->lock, lock_flags);
148 termios = port->info->tty->termios; 148 termios = port->info->tty->termios;
@@ -180,7 +180,7 @@ static int jsm_tty_open(struct uart_port *port)
180 struct jsm_board *brd; 180 struct jsm_board *brd;
181 int rc = 0; 181 int rc = 0;
182 struct jsm_channel *channel = (struct jsm_channel *)port; 182 struct jsm_channel *channel = (struct jsm_channel *)port;
183 struct termios *termios; 183 struct ktermios *termios;
184 184
185 /* Get board pointer from our array of majors we have allocated */ 185 /* Get board pointer from our array of majors we have allocated */
186 brd = channel->ch_bd; 186 brd = channel->ch_bd;
@@ -269,7 +269,7 @@ static int jsm_tty_open(struct uart_port *port)
269static void jsm_tty_close(struct uart_port *port) 269static void jsm_tty_close(struct uart_port *port)
270{ 270{
271 struct jsm_board *bd; 271 struct jsm_board *bd;
272 struct termios *ts; 272 struct ktermios *ts;
273 struct jsm_channel *channel = (struct jsm_channel *)port; 273 struct jsm_channel *channel = (struct jsm_channel *)port;
274 274
275 jsm_printk(CLOSE, INFO, &channel->ch_bd->pci_dev, "start\n"); 275 jsm_printk(CLOSE, INFO, &channel->ch_bd->pci_dev, "start\n");
@@ -302,8 +302,8 @@ static void jsm_tty_close(struct uart_port *port)
302} 302}
303 303
304static void jsm_tty_set_termios(struct uart_port *port, 304static void jsm_tty_set_termios(struct uart_port *port,
305 struct termios *termios, 305 struct ktermios *termios,
306 struct termios *old_termios) 306 struct ktermios *old_termios)
307{ 307{
308 unsigned long lock_flags; 308 unsigned long lock_flags;
309 struct jsm_channel *channel = (struct jsm_channel *)port; 309 struct jsm_channel *channel = (struct jsm_channel *)port;
diff --git a/drivers/serial/m32r_sio.c b/drivers/serial/m32r_sio.c
index 7656a35f5e2f..6e09c8b395e8 100644
--- a/drivers/serial/m32r_sio.c
+++ b/drivers/serial/m32r_sio.c
@@ -699,7 +699,7 @@ static unsigned int m32r_sio_get_divisor(struct uart_port *port,
699} 699}
700 700
701static void m32r_sio_set_termios(struct uart_port *port, 701static void m32r_sio_set_termios(struct uart_port *port,
702 struct termios *termios, struct termios *old) 702 struct ktermios *termios, struct ktermios *old)
703{ 703{
704 struct uart_sio_port *up = (struct uart_sio_port *)port; 704 struct uart_sio_port *up = (struct uart_sio_port *)port;
705 unsigned char cval = 0; 705 unsigned char cval = 0;
diff --git a/drivers/serial/mcfserial.c b/drivers/serial/mcfserial.c
index 3db206d29b33..08430961a895 100644
--- a/drivers/serial/mcfserial.c
+++ b/drivers/serial/mcfserial.c
@@ -1132,7 +1132,7 @@ static int mcfrs_ioctl(struct tty_struct *tty, struct file * file,
1132 return 0; 1132 return 0;
1133} 1133}
1134 1134
1135static void mcfrs_set_termios(struct tty_struct *tty, struct termios *old_termios) 1135static void mcfrs_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
1136{ 1136{
1137 struct mcf_serial *info = (struct mcf_serial *)tty->driver_data; 1137 struct mcf_serial *info = (struct mcf_serial *)tty->driver_data;
1138 1138
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c
index 6dd579ed9777..9d11a75663e6 100644
--- a/drivers/serial/mpc52xx_uart.c
+++ b/drivers/serial/mpc52xx_uart.c
@@ -270,8 +270,8 @@ mpc52xx_uart_shutdown(struct uart_port *port)
270} 270}
271 271
272static void 272static void
273mpc52xx_uart_set_termios(struct uart_port *port, struct termios *new, 273mpc52xx_uart_set_termios(struct uart_port *port, struct ktermios *new,
274 struct termios *old) 274 struct ktermios *old)
275{ 275{
276 struct mpc52xx_psc __iomem *psc = PSC(port); 276 struct mpc52xx_psc __iomem *psc = PSC(port);
277 unsigned long flags; 277 unsigned long flags;
diff --git a/drivers/serial/mpsc.c b/drivers/serial/mpsc.c
index 29823bd60fb0..3d2fcc57b1ce 100644
--- a/drivers/serial/mpsc.c
+++ b/drivers/serial/mpsc.c
@@ -1440,8 +1440,8 @@ mpsc_shutdown(struct uart_port *port)
1440} 1440}
1441 1441
1442static void 1442static void
1443mpsc_set_termios(struct uart_port *port, struct termios *termios, 1443mpsc_set_termios(struct uart_port *port, struct ktermios *termios,
1444 struct termios *old) 1444 struct ktermios *old)
1445{ 1445{
1446 struct mpsc_port_info *pi = (struct mpsc_port_info *)port; 1446 struct mpsc_port_info *pi = (struct mpsc_port_info *)port;
1447 u32 baud; 1447 u32 baud;
diff --git a/drivers/serial/mux.c b/drivers/serial/mux.c
index 8ad1b8c5ec5d..ccb8fa1800a5 100644
--- a/drivers/serial/mux.c
+++ b/drivers/serial/mux.c
@@ -273,8 +273,8 @@ static void mux_shutdown(struct uart_port *port)
273 * The Serial Mux does not support this function. 273 * The Serial Mux does not support this function.
274 */ 274 */
275static void 275static void
276mux_set_termios(struct uart_port *port, struct termios *termios, 276mux_set_termios(struct uart_port *port, struct ktermios *termios,
277 struct termios *old) 277 struct ktermios *old)
278{ 278{
279} 279}
280 280
diff --git a/drivers/serial/netx-serial.c b/drivers/serial/netx-serial.c
index 062bad457b1a..b56f7db45031 100644
--- a/drivers/serial/netx-serial.c
+++ b/drivers/serial/netx-serial.c
@@ -337,8 +337,8 @@ static void netx_shutdown(struct uart_port *port)
337} 337}
338 338
339static void 339static void
340netx_set_termios(struct uart_port *port, struct termios *termios, 340netx_set_termios(struct uart_port *port, struct ktermios *termios,
341 struct termios *old) 341 struct ktermios *old)
342{ 342{
343 unsigned int baud, quot; 343 unsigned int baud, quot;
344 unsigned char old_cr; 344 unsigned char old_cr;
diff --git a/drivers/serial/pmac_zilog.c b/drivers/serial/pmac_zilog.c
index bf9809ed9c0b..752ef07516b9 100644
--- a/drivers/serial/pmac_zilog.c
+++ b/drivers/serial/pmac_zilog.c
@@ -1262,8 +1262,8 @@ static void pmz_irda_setup(struct uart_pmac_port *uap, unsigned long *baud)
1262} 1262}
1263 1263
1264 1264
1265static void __pmz_set_termios(struct uart_port *port, struct termios *termios, 1265static void __pmz_set_termios(struct uart_port *port, struct ktermios *termios,
1266 struct termios *old) 1266 struct ktermios *old)
1267{ 1267{
1268 struct uart_pmac_port *uap = to_pmz(port); 1268 struct uart_pmac_port *uap = to_pmz(port);
1269 unsigned long baud; 1269 unsigned long baud;
@@ -1273,7 +1273,7 @@ static void __pmz_set_termios(struct uart_port *port, struct termios *termios,
1273 if (ZS_IS_ASLEEP(uap)) 1273 if (ZS_IS_ASLEEP(uap))
1274 return; 1274 return;
1275 1275
1276 memcpy(&uap->termios_cache, termios, sizeof(struct termios)); 1276 memcpy(&uap->termios_cache, termios, sizeof(struct ktermios));
1277 1277
1278 /* XXX Check which revs of machines actually allow 1 and 4Mb speeds 1278 /* XXX Check which revs of machines actually allow 1 and 4Mb speeds
1279 * on the IR dongle. Note that the IRTTY driver currently doesn't know 1279 * on the IR dongle. Note that the IRTTY driver currently doesn't know
@@ -1313,8 +1313,8 @@ static void __pmz_set_termios(struct uart_port *port, struct termios *termios,
1313} 1313}
1314 1314
1315/* The port lock is not held. */ 1315/* The port lock is not held. */
1316static void pmz_set_termios(struct uart_port *port, struct termios *termios, 1316static void pmz_set_termios(struct uart_port *port, struct ktermios *termios,
1317 struct termios *old) 1317 struct ktermios *old)
1318{ 1318{
1319 struct uart_pmac_port *uap = to_pmz(port); 1319 struct uart_pmac_port *uap = to_pmz(port);
1320 unsigned long flags; 1320 unsigned long flags;
diff --git a/drivers/serial/pmac_zilog.h b/drivers/serial/pmac_zilog.h
index c03f9bfacdd8..570b0d925e83 100644
--- a/drivers/serial/pmac_zilog.h
+++ b/drivers/serial/pmac_zilog.h
@@ -60,7 +60,7 @@ struct uart_pmac_port {
60 volatile struct dbdma_regs __iomem *tx_dma_regs; 60 volatile struct dbdma_regs __iomem *tx_dma_regs;
61 volatile struct dbdma_regs __iomem *rx_dma_regs; 61 volatile struct dbdma_regs __iomem *rx_dma_regs;
62 62
63 struct termios termios_cache; 63 struct ktermios termios_cache;
64}; 64};
65 65
66#define to_pmz(p) ((struct uart_pmac_port *)(p)) 66#define to_pmz(p) ((struct uart_pmac_port *)(p))
diff --git a/drivers/serial/pxa.c b/drivers/serial/pxa.c
index 415fe9633a9b..d403aaa55092 100644
--- a/drivers/serial/pxa.c
+++ b/drivers/serial/pxa.c
@@ -433,8 +433,8 @@ static void serial_pxa_shutdown(struct uart_port *port)
433} 433}
434 434
435static void 435static void
436serial_pxa_set_termios(struct uart_port *port, struct termios *termios, 436serial_pxa_set_termios(struct uart_port *port, struct ktermios *termios,
437 struct termios *old) 437 struct ktermios *old)
438{ 438{
439 struct uart_pxa_port *up = (struct uart_pxa_port *)port; 439 struct uart_pxa_port *up = (struct uart_pxa_port *)port;
440 unsigned char cval, fcr = 0; 440 unsigned char cval, fcr = 0;
diff --git a/drivers/serial/s3c2410.c b/drivers/serial/s3c2410.c
index 8dfc2dd058ca..3ba9208ebd0c 100644
--- a/drivers/serial/s3c2410.c
+++ b/drivers/serial/s3c2410.c
@@ -738,8 +738,8 @@ static unsigned int s3c24xx_serial_getclk(struct uart_port *port,
738} 738}
739 739
740static void s3c24xx_serial_set_termios(struct uart_port *port, 740static void s3c24xx_serial_set_termios(struct uart_port *port,
741 struct termios *termios, 741 struct ktermios *termios,
742 struct termios *old) 742 struct ktermios *old)
743{ 743{
744 struct s3c2410_uartcfg *cfg = s3c24xx_port_to_cfg(port); 744 struct s3c2410_uartcfg *cfg = s3c24xx_port_to_cfg(port);
745 struct s3c24xx_uart_port *ourport = to_ourport(port); 745 struct s3c24xx_uart_port *ourport = to_ourport(port);
diff --git a/drivers/serial/sa1100.c b/drivers/serial/sa1100.c
index d4065266b6fc..58a83c27e14b 100644
--- a/drivers/serial/sa1100.c
+++ b/drivers/serial/sa1100.c
@@ -408,8 +408,8 @@ static void sa1100_shutdown(struct uart_port *port)
408} 408}
409 409
410static void 410static void
411sa1100_set_termios(struct uart_port *port, struct termios *termios, 411sa1100_set_termios(struct uart_port *port, struct ktermios *termios,
412 struct termios *old) 412 struct ktermios *old)
413{ 413{
414 struct sa1100_port *sport = (struct sa1100_port *)port; 414 struct sa1100_port *sport = (struct sa1100_port *)port;
415 unsigned long flags; 415 unsigned long flags;
diff --git a/drivers/serial/serial_core.c b/drivers/serial/serial_core.c
index c67b05e9a451..f84982e508c7 100644
--- a/drivers/serial/serial_core.c
+++ b/drivers/serial/serial_core.c
@@ -65,7 +65,7 @@ static struct lock_class_key port_lock_key;
65#define uart_console(port) (0) 65#define uart_console(port) (0)
66#endif 66#endif
67 67
68static void uart_change_speed(struct uart_state *state, struct termios *old_termios); 68static void uart_change_speed(struct uart_state *state, struct ktermios *old_termios);
69static void uart_wait_until_sent(struct tty_struct *tty, int timeout); 69static void uart_wait_until_sent(struct tty_struct *tty, int timeout);
70static void uart_change_pm(struct uart_state *state, int pm_state); 70static void uart_change_pm(struct uart_state *state, int pm_state);
71 71
@@ -338,8 +338,8 @@ EXPORT_SYMBOL(uart_update_timeout);
338 * we're actually going to be using. 338 * we're actually going to be using.
339 */ 339 */
340unsigned int 340unsigned int
341uart_get_baud_rate(struct uart_port *port, struct termios *termios, 341uart_get_baud_rate(struct uart_port *port, struct ktermios *termios,
342 struct termios *old, unsigned int min, unsigned int max) 342 struct ktermios *old, unsigned int min, unsigned int max)
343{ 343{
344 unsigned int try, baud, altbaud = 38400; 344 unsigned int try, baud, altbaud = 38400;
345 upf_t flags = port->flags & UPF_SPD_MASK; 345 upf_t flags = port->flags & UPF_SPD_MASK;
@@ -421,11 +421,11 @@ uart_get_divisor(struct uart_port *port, unsigned int baud)
421EXPORT_SYMBOL(uart_get_divisor); 421EXPORT_SYMBOL(uart_get_divisor);
422 422
423static void 423static void
424uart_change_speed(struct uart_state *state, struct termios *old_termios) 424uart_change_speed(struct uart_state *state, struct ktermios *old_termios)
425{ 425{
426 struct tty_struct *tty = state->info->tty; 426 struct tty_struct *tty = state->info->tty;
427 struct uart_port *port = state->port; 427 struct uart_port *port = state->port;
428 struct termios *termios; 428 struct ktermios *termios;
429 429
430 /* 430 /*
431 * If we have no tty, termios, or the port does not exist, 431 * If we have no tty, termios, or the port does not exist,
@@ -1139,7 +1139,7 @@ uart_ioctl(struct tty_struct *tty, struct file *filp, unsigned int cmd,
1139 return ret; 1139 return ret;
1140} 1140}
1141 1141
1142static void uart_set_termios(struct tty_struct *tty, struct termios *old_termios) 1142static void uart_set_termios(struct tty_struct *tty, struct ktermios *old_termios)
1143{ 1143{
1144 struct uart_state *state = tty->driver_data; 1144 struct uart_state *state = tty->driver_data;
1145 unsigned long flags; 1145 unsigned long flags;
@@ -1866,7 +1866,7 @@ int __init
1866uart_set_options(struct uart_port *port, struct console *co, 1866uart_set_options(struct uart_port *port, struct console *co,
1867 int baud, int parity, int bits, int flow) 1867 int baud, int parity, int bits, int flow)
1868{ 1868{
1869 struct termios termios; 1869 struct ktermios termios;
1870 int i; 1870 int i;
1871 1871
1872 /* 1872 /*
@@ -1876,7 +1876,7 @@ uart_set_options(struct uart_port *port, struct console *co,
1876 spin_lock_init(&port->lock); 1876 spin_lock_init(&port->lock);
1877 lockdep_set_class(&port->lock, &port_lock_key); 1877 lockdep_set_class(&port->lock, &port_lock_key);
1878 1878
1879 memset(&termios, 0, sizeof(struct termios)); 1879 memset(&termios, 0, sizeof(struct ktermios));
1880 1880
1881 termios.c_cflag = CREAD | HUPCL | CLOCAL; 1881 termios.c_cflag = CREAD | HUPCL | CLOCAL;
1882 1882
@@ -1991,12 +1991,12 @@ int uart_resume_port(struct uart_driver *drv, struct uart_port *port)
1991 * Re-enable the console device after suspending. 1991 * Re-enable the console device after suspending.
1992 */ 1992 */
1993 if (uart_console(port)) { 1993 if (uart_console(port)) {
1994 struct termios termios; 1994 struct ktermios termios;
1995 1995
1996 /* 1996 /*
1997 * First try to use the console cflag setting. 1997 * First try to use the console cflag setting.
1998 */ 1998 */
1999 memset(&termios, 0, sizeof(struct termios)); 1999 memset(&termios, 0, sizeof(struct ktermios));
2000 termios.c_cflag = port->cons->cflag; 2000 termios.c_cflag = port->cons->cflag;
2001 2001
2002 /* 2002 /*
@@ -2189,6 +2189,7 @@ int uart_register_driver(struct uart_driver *drv)
2189 normal->subtype = SERIAL_TYPE_NORMAL; 2189 normal->subtype = SERIAL_TYPE_NORMAL;
2190 normal->init_termios = tty_std_termios; 2190 normal->init_termios = tty_std_termios;
2191 normal->init_termios.c_cflag = B9600 | CS8 | CREAD | HUPCL | CLOCAL; 2191 normal->init_termios.c_cflag = B9600 | CS8 | CREAD | HUPCL | CLOCAL;
2192 normal->init_termios.c_ispeed = normal->init_termios.c_ospeed = 9600;
2192 normal->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV; 2193 normal->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV;
2193 normal->driver_state = drv; 2194 normal->driver_state = drv;
2194 tty_set_operations(normal, &uart_ops); 2195 tty_set_operations(normal, &uart_ops);
diff --git a/drivers/serial/serial_lh7a40x.c b/drivers/serial/serial_lh7a40x.c
index 5e1ac356bbb0..eb18d429752d 100644
--- a/drivers/serial/serial_lh7a40x.c
+++ b/drivers/serial/serial_lh7a40x.c
@@ -348,8 +348,8 @@ static void lh7a40xuart_shutdown (struct uart_port* port)
348} 348}
349 349
350static void lh7a40xuart_set_termios (struct uart_port* port, 350static void lh7a40xuart_set_termios (struct uart_port* port,
351 struct termios* termios, 351 struct ktermios* termios,
352 struct termios* old) 352 struct ktermios* old)
353{ 353{
354 unsigned int con; 354 unsigned int con;
355 unsigned int inten; 355 unsigned int inten;
diff --git a/drivers/serial/serial_txx9.c b/drivers/serial/serial_txx9.c
index 2a48289ac722..7186a82c4759 100644
--- a/drivers/serial/serial_txx9.c
+++ b/drivers/serial/serial_txx9.c
@@ -556,8 +556,8 @@ static void serial_txx9_shutdown(struct uart_port *port)
556} 556}
557 557
558static void 558static void
559serial_txx9_set_termios(struct uart_port *port, struct termios *termios, 559serial_txx9_set_termios(struct uart_port *port, struct ktermios *termios,
560 struct termios *old) 560 struct ktermios *old)
561{ 561{
562 struct uart_txx9_port *up = (struct uart_txx9_port *)port; 562 struct uart_txx9_port *up = (struct uart_txx9_port *)port;
563 unsigned int cval, fcr = 0; 563 unsigned int cval, fcr = 0;
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c
index 3b5f19ec2126..9031b57f12dd 100644
--- a/drivers/serial/sh-sci.c
+++ b/drivers/serial/sh-sci.c
@@ -943,8 +943,8 @@ static void sci_shutdown(struct uart_port *port)
943 s->disable(port); 943 s->disable(port);
944} 944}
945 945
946static void sci_set_termios(struct uart_port *port, struct termios *termios, 946static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
947 struct termios *old) 947 struct ktermios *old)
948{ 948{
949 struct sci_port *s = &sci_ports[port->line]; 949 struct sci_port *s = &sci_ports[port->line];
950 unsigned int status, baud, smr_val; 950 unsigned int status, baud, smr_val;
diff --git a/drivers/serial/sn_console.c b/drivers/serial/sn_console.c
index 956b2cf08e1e..253ceb895ca7 100644
--- a/drivers/serial/sn_console.c
+++ b/drivers/serial/sn_console.c
@@ -361,8 +361,8 @@ static int snp_startup(struct uart_port *port)
361 * 361 *
362 */ 362 */
363static void 363static void
364snp_set_termios(struct uart_port *port, struct termios *termios, 364snp_set_termios(struct uart_port *port, struct ktermios *termios,
365 struct termios *old) 365 struct ktermios *old)
366{ 366{
367} 367}
368 368
diff --git a/drivers/serial/sunhv.c b/drivers/serial/sunhv.c
index 03941d27d15d..40d48566215c 100644
--- a/drivers/serial/sunhv.c
+++ b/drivers/serial/sunhv.c
@@ -281,8 +281,8 @@ static void sunhv_shutdown(struct uart_port *port)
281} 281}
282 282
283/* port->lock is not held. */ 283/* port->lock is not held. */
284static void sunhv_set_termios(struct uart_port *port, struct termios *termios, 284static void sunhv_set_termios(struct uart_port *port, struct ktermios *termios,
285 struct termios *old) 285 struct ktermios *old)
286{ 286{
287 unsigned int baud = uart_get_baud_rate(port, termios, old, 0, 4000000); 287 unsigned int baud = uart_get_baud_rate(port, termios, old, 0, 4000000);
288 unsigned int quot = uart_get_divisor(port, baud); 288 unsigned int quot = uart_get_divisor(port, baud);
diff --git a/drivers/serial/sunsab.c b/drivers/serial/sunsab.c
index 08a7cd6a3a0c..493d5bbb661b 100644
--- a/drivers/serial/sunsab.c
+++ b/drivers/serial/sunsab.c
@@ -786,8 +786,8 @@ static void sunsab_convert_to_sab(struct uart_sunsab_port *up, unsigned int cfla
786} 786}
787 787
788/* port->lock is not held. */ 788/* port->lock is not held. */
789static void sunsab_set_termios(struct uart_port *port, struct termios *termios, 789static void sunsab_set_termios(struct uart_port *port, struct ktermios *termios,
790 struct termios *old) 790 struct ktermios *old)
791{ 791{
792 struct uart_sunsab_port *up = (struct uart_sunsab_port *) port; 792 struct uart_sunsab_port *up = (struct uart_sunsab_port *) port;
793 unsigned long flags; 793 unsigned long flags;
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c
index c577faea60e8..564592b2b2ba 100644
--- a/drivers/serial/sunsu.c
+++ b/drivers/serial/sunsu.c
@@ -893,8 +893,8 @@ sunsu_change_speed(struct uart_port *port, unsigned int cflag,
893} 893}
894 894
895static void 895static void
896sunsu_set_termios(struct uart_port *port, struct termios *termios, 896sunsu_set_termios(struct uart_port *port, struct ktermios *termios,
897 struct termios *old) 897 struct ktermios *old)
898{ 898{
899 unsigned int baud, quot; 899 unsigned int baud, quot;
900 900
diff --git a/drivers/serial/sunzilog.c b/drivers/serial/sunzilog.c
index b2cc703b2b9e..75de919a9471 100644
--- a/drivers/serial/sunzilog.c
+++ b/drivers/serial/sunzilog.c
@@ -922,8 +922,8 @@ sunzilog_convert_to_zs(struct uart_sunzilog_port *up, unsigned int cflag,
922 922
923/* The port lock is not held. */ 923/* The port lock is not held. */
924static void 924static void
925sunzilog_set_termios(struct uart_port *port, struct termios *termios, 925sunzilog_set_termios(struct uart_port *port, struct ktermios *termios,
926 struct termios *old) 926 struct ktermios *old)
927{ 927{
928 struct uart_sunzilog_port *up = (struct uart_sunzilog_port *) port; 928 struct uart_sunzilog_port *up = (struct uart_sunzilog_port *) port;
929 unsigned long flags; 929 unsigned long flags;
diff --git a/drivers/serial/uartlite.c b/drivers/serial/uartlite.c
index 83690653b78b..92eba893559d 100644
--- a/drivers/serial/uartlite.c
+++ b/drivers/serial/uartlite.c
@@ -214,8 +214,8 @@ static void ulite_shutdown(struct uart_port *port)
214 free_irq(port->irq, port); 214 free_irq(port->irq, port);
215} 215}
216 216
217static void ulite_set_termios(struct uart_port *port, struct termios *termios, 217static void ulite_set_termios(struct uart_port *port, struct ktermios *termios,
218 struct termios *old) 218 struct ktermios *old)
219{ 219{
220 unsigned long flags; 220 unsigned long flags;
221 unsigned int baud; 221 unsigned int baud;
diff --git a/drivers/serial/v850e_uart.c b/drivers/serial/v850e_uart.c
index 28f3bbff87bf..dd98aca6ed08 100644
--- a/drivers/serial/v850e_uart.c
+++ b/drivers/serial/v850e_uart.c
@@ -404,8 +404,8 @@ static void v850e_uart_shutdown (struct uart_port *port)
404} 404}
405 405
406static void 406static void
407v850e_uart_set_termios (struct uart_port *port, struct termios *termios, 407v850e_uart_set_termios (struct uart_port *port, struct ktermios *termios,
408 struct termios *old) 408 struct ktermios *old)
409{ 409{
410 unsigned cflags = termios->c_cflag; 410 unsigned cflags = termios->c_cflag;
411 411
diff --git a/drivers/serial/vr41xx_siu.c b/drivers/serial/vr41xx_siu.c
index fd51f8182dec..cf0e663b42ed 100644
--- a/drivers/serial/vr41xx_siu.c
+++ b/drivers/serial/vr41xx_siu.c
@@ -562,8 +562,8 @@ static void siu_shutdown(struct uart_port *port)
562 free_irq(port->irq, port); 562 free_irq(port->irq, port);
563} 563}
564 564
565static void siu_set_termios(struct uart_port *port, struct termios *new, 565static void siu_set_termios(struct uart_port *port, struct ktermios *new,
566 struct termios *old) 566 struct ktermios *old)
567{ 567{
568 tcflag_t c_cflag, c_iflag; 568 tcflag_t c_cflag, c_iflag;
569 uint8_t lcr, fcr, ier; 569 uint8_t lcr, fcr, ier;