|
@@ -571,6 +571,7 @@ gigaset_tty_close(struct tty_struct *tty)
|
|
}
|
|
}
|
|
|
|
|
|
/* prevent other callers from entering ldisc methods */
|
|
/* prevent other callers from entering ldisc methods */
|
|
|
|
+ /* FIXME: should use the tty state flags */
|
|
tty->disc_data = NULL;
|
|
tty->disc_data = NULL;
|
|
|
|
|
|
if (!cs->hw.ser)
|
|
if (!cs->hw.ser)
|
|
@@ -642,10 +643,11 @@ gigaset_tty_ioctl(struct tty_struct *tty, struct file *file,
|
|
return -ENXIO;
|
|
return -ENXIO;
|
|
|
|
|
|
switch (cmd) {
|
|
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;
|
|
break;
|
|
|
|
|
|
case TCFLSH:
|
|
case TCFLSH:
|
|
@@ -659,20 +661,13 @@ gigaset_tty_ioctl(struct tty_struct *tty, struct file *file,
|
|
flush_send_queue(cs);
|
|
flush_send_queue(cs);
|
|
break;
|
|
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:
|
|
default:
|
|
- rc = -ENOIOCTLCMD;
|
|
|
|
|
|
+ /* pass through to underlying serial device */
|
|
|
|
+ rc = n_tty_ioctl_helper(tty, file, cmd, arg);
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
-
|
|
|
|
cs_put(cs);
|
|
cs_put(cs);
|
|
return rc;
|
|
return rc;
|
|
}
|
|
}
|
|
@@ -680,6 +675,8 @@ gigaset_tty_ioctl(struct tty_struct *tty, struct file *file,
|
|
/*
|
|
/*
|
|
* Poll on the tty.
|
|
* Poll on the tty.
|
|
* Unused, always return zero.
|
|
* Unused, always return zero.
|
|
|
|
+ *
|
|
|
|
+ * FIXME: should probably return an exception - especially on hangup
|
|
*/
|
|
*/
|
|
static unsigned int
|
|
static unsigned int
|
|
gigaset_tty_poll(struct tty_struct *tty, struct file *file, poll_table *wait)
|
|
gigaset_tty_poll(struct tty_struct *tty, struct file *file, poll_table *wait)
|