diff options
Diffstat (limited to 'drivers/tty/serial/68328serial.c')
| -rw-r--r-- | drivers/tty/serial/68328serial.c | 23 | 
1 files changed, 13 insertions, 10 deletions
diff --git a/drivers/tty/serial/68328serial.c b/drivers/tty/serial/68328serial.c index 3ed20e435e5..66c38a3f74c 100644 --- a/drivers/tty/serial/68328serial.c +++ b/drivers/tty/serial/68328serial.c @@ -515,7 +515,7 @@ static void change_speed(struct m68k_serial *info, struct tty_struct *tty)  	unsigned cflag;  	int	i; -	cflag = tty->termios->c_cflag; +	cflag = tty->termios.c_cflag;  	if (!(port = info->port))  		return; @@ -617,7 +617,7 @@ static void rs_set_ldisc(struct tty_struct *tty)  	if (serial_paranoia_check(info, tty->name, "rs_set_ldisc"))  		return; -	info->is_cons = (tty->termios->c_line == N_TTY); +	info->is_cons = (tty->termios.c_line == N_TTY);  	printk("ttyS%d console mode %s\n", info->line, info->is_cons ? "on" : "off");  } @@ -985,7 +985,7 @@ static void rs_set_termios(struct tty_struct *tty, struct ktermios *old_termios)  	change_speed(info, tty);  	if ((old_termios->c_cflag & CRTSCTS) && -	    !(tty->termios->c_cflag & CRTSCTS)) { +	    !(tty->termios.c_cflag & CRTSCTS)) {  		tty->hw_stopped = 0;  		rs_start(tty);  	} @@ -1070,7 +1070,7 @@ static void rs_close(struct tty_struct *tty, struct file * filp)  		if (tty->ldisc.close)  			(tty->ldisc.close)(tty);  		tty->ldisc = ldiscs[N_TTY]; -		tty->termios->c_line = N_TTY; +		tty->termios.c_line = N_TTY;  		if (tty->ldisc.open)  			(tty->ldisc.open)(tty);  	} @@ -1189,12 +1189,6 @@ rs68328_init(void)  	serial_driver->flags = TTY_DRIVER_REAL_RAW;  	tty_set_operations(serial_driver, &rs_ops); -	if (tty_register_driver(serial_driver)) { -		put_tty_driver(serial_driver); -		printk(KERN_ERR "Couldn't register serial driver\n"); -		return -ENOMEM; -	} -  	local_irq_save(flags);  	for(i=0;i<NR_PORTS;i++) { @@ -1224,8 +1218,17 @@ rs68328_init(void)  			    0,  			    "M68328_UART", info))                  panic("Unable to attach 68328 serial interrupt\n"); + +	    tty_port_link_device(&info->tport, serial_driver, i);  	}  	local_irq_restore(flags); + +	if (tty_register_driver(serial_driver)) { +		put_tty_driver(serial_driver); +		printk(KERN_ERR "Couldn't register serial driver\n"); +		return -ENOMEM; +	} +  	return 0;  }  |