tty: fix up gigaset a bit
Stephen's fixes reminded me that gigaset is still rather broken so fix it up a bit Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
53e86317e9
commit
ea1afd2562
|
@ -571,6 +571,7 @@ gigaset_tty_close(struct tty_struct *tty)
|
|||
}
|
||||
|
||||
/* prevent other callers from entering ldisc methods */
|
||||
/* FIXME: should use the tty state flags */
|
||||
tty->disc_data = NULL;
|
||||
|
||||
if (!cs->hw.ser)
|
||||
|
@ -642,10 +643,11 @@ gigaset_tty_ioctl(struct tty_struct *tty, struct file *file,
|
|||
return -ENXIO;
|
||||
|
||||
switch (cmd) {
|
||||
case TCGETS:
|
||||
case TCGETA:
|
||||
/* pass through to underlying serial device */
|
||||
rc = n_tty_ioctl_helper(tty, file, cmd, arg);
|
||||
|
||||
case FIONREAD:
|
||||
/* unused, always return zero */
|
||||
val = 0;
|
||||
rc = put_user(val, p);
|
||||
break;
|
||||
|
||||
case TCFLSH:
|
||||
|
@ -659,20 +661,13 @@ gigaset_tty_ioctl(struct tty_struct *tty, struct file *file,
|
|||
flush_send_queue(cs);
|
||||
break;
|
||||
}
|
||||
/* flush the serial port's buffer */
|
||||
rc = n_tty_ioctl_helper(tty, file, cmd, arg);
|
||||
break;
|
||||
|
||||
case FIONREAD:
|
||||
/* unused, always return zero */
|
||||
val = 0;
|
||||
rc = put_user(val, p);
|
||||
break;
|
||||
/* Pass through */
|
||||
|
||||
default:
|
||||
rc = -ENOIOCTLCMD;
|
||||
/* pass through to underlying serial device */
|
||||
rc = n_tty_ioctl_helper(tty, file, cmd, arg);
|
||||
break;
|
||||
}
|
||||
|
||||
cs_put(cs);
|
||||
return rc;
|
||||
}
|
||||
|
@ -680,6 +675,8 @@ gigaset_tty_ioctl(struct tty_struct *tty, struct file *file,
|
|||
/*
|
||||
* Poll on the tty.
|
||||
* Unused, always return zero.
|
||||
*
|
||||
* FIXME: should probably return an exception - especially on hangup
|
||||
*/
|
||||
static unsigned int
|
||||
gigaset_tty_poll(struct tty_struct *tty, struct file *file, poll_table *wait)
|
||||
|
|
Loading…
Reference in New Issue