Skip to content

Commit

Permalink
Staging: quatech_usb2: TIOCMGET and TIOCMSET removal
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Richard Ash authored and Greg Kroah-Hartman committed Sep 15, 2009
1 parent 89b5098 commit dbe2481
Showing 1 changed file with 14 additions and 18 deletions.
32 changes: 14 additions & 18 deletions drivers/staging/quatech_usb2/quatech_usb2.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand All @@ -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) {
Expand All @@ -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;
Expand Down Expand Up @@ -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__,
Expand Down

0 comments on commit dbe2481

Please sign in to comment.