aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/quatech_usb2
diff options
context:
space:
mode:
authorRichard Ash <richard@audacityteam.org>2009-08-17 10:39:58 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2009-09-15 12:01:36 -0700
commitdbe2481580a6933c07627d4da0d20db5fd05a044 (patch)
tree35af6988fcecf05c57398e678571870dc5e0f526 /drivers/staging/quatech_usb2
parent89b5098d8ea97eb29c064a0e093f48b7618fc88e (diff)
Staging: quatech_usb2: TIOCMGET and TIOCMSET removal
Patch to remove TIOCMGET and TIOCMSET from the driver ioctl method, as they never get used (error in vendor driver). Signed-off-by: Richard Ash <richard@audacityteam.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/quatech_usb2')
-rw-r--r--drivers/staging/quatech_usb2/quatech_usb2.c32
1 files changed, 14 insertions, 18 deletions
diff --git a/drivers/staging/quatech_usb2/quatech_usb2.c b/drivers/staging/quatech_usb2/quatech_usb2.c
index 55a25e54aee..a877e48b9e5 100644
--- a/drivers/staging/quatech_usb2/quatech_usb2.c
+++ b/drivers/staging/quatech_usb2/quatech_usb2.c
@@ -860,7 +860,10 @@ static int qt2_chars_in_buffer(struct tty_struct *tty)
return chars;
}
-
+/* called when userspace does an ioctl() on the device. Note that
+ * TIOCMGET and TIOCMSET are filtered off to their own methods before they get
+ * here, so we don't have to handle them.
+ */
static int qt2_ioctl(struct tty_struct *tty, struct file *file,
unsigned int cmd, unsigned long arg)
{
@@ -887,22 +890,12 @@ static int qt2_ioctl(struct tty_struct *tty, struct file *file,
dbg("%s(): port %d, UartNumber %d, tty =0x%p", __func__,
port->number, UartNumber, tty);
- if (cmd == TIOCMGET) {
- return qt2_tiocmget(tty, file);
- /* same as tiocmget function */
- } else if (cmd == TIOCMSET) {
- if (copy_from_user(&value, (unsigned int *)arg,
- sizeof(unsigned int)))
- return -EFAULT;
- return qt2_tiocmset(tty, file, value, 0);
- /* same as tiocmset function */
- } else if (cmd == TIOCMBIS || cmd == TIOCMBIC) {
- status = qt2_box_get_register(port->serial, UartNumber,
- QT2_MODEM_CONTROL_REGISTER, &mcr_value);
- if (status < 0)
+ if (cmd == TIOCMBIS || cmd == TIOCMBIC) {
+ if (qt2_box_get_register(port->serial, UartNumber,
+ QT2_MODEM_CONTROL_REGISTER, &mcr_value) < 0)
return -ESPIPE;
if (copy_from_user(&value, (unsigned int *)arg,
- sizeof(unsigned int)))
+ sizeof(value)))
return -EFAULT;
switch (cmd) {
@@ -925,9 +918,8 @@ static int qt2_ioctl(struct tty_struct *tty, struct file *file,
default:
break;
} /* end of local switch on cmd */
- status = qt2_box_set_register(port->serial, UartNumber,
- QT2_MODEM_CONTROL_REGISTER, mcr_value);
- if (status < 0) {
+ if (qt2_box_set_register(port->serial, UartNumber,
+ QT2_MODEM_CONTROL_REGISTER, mcr_value) < 0) {
return -ESPIPE;
} else {
port_extra->shadowMCR = mcr_value;
@@ -965,6 +957,10 @@ static int qt2_ioctl(struct tty_struct *tty, struct file *file,
return 0;
}
} /* end inifinite while */
+ /* FIXME: This while loop needs a way to break out if the device
+ * is disconnected while a process is waiting for the MSR to
+ * change, because once it's disconnected, it isn't going to
+ * change state ... */
} else {
/* any other ioctls we don't know about come here */
dbg("%s(): No ioctl for that one. port = %d", __func__,