From: John Tsiombikas Date: Thu, 25 Feb 2010 15:09:08 +0000 (+0200) Subject: USB: pl2303: initial TIOCGSERIAL support X-Git-Tag: v2.6.34-rc1~215^2~5 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=67b9946dd07eeef8188e4cab816d2c370bcaa7b2;p=~shefty%2Frdma-dev.git USB: pl2303: initial TIOCGSERIAL support I've got a trivial patch for the pl2303 driver, that's what I needed to make the wacom serial tablet driver work properly. It uses the TIOCGSERIAL ioctl to determine if it's talking to a serial device or not, which I gather is rather common, but the pl2303 driver didn't implement that ioctl. Here's a patch, I'm not sure it's absolutely correct, I mostly looked at other similar usbserial drivers to see what I must do, but it works for me. Signed-off-by: John Tsiombikas Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c index 571dcf18286..895d0722183 100644 --- a/drivers/usb/serial/pl2303.c +++ b/drivers/usb/serial/pl2303.c @@ -895,10 +895,23 @@ static int wait_modem_info(struct usb_serial_port *port, unsigned int arg) static int pl2303_ioctl(struct tty_struct *tty, struct file *file, unsigned int cmd, unsigned long arg) { + struct serial_struct ser; struct usb_serial_port *port = tty->driver_data; dbg("%s (%d) cmd = 0x%04x", __func__, port->number, cmd); switch (cmd) { + case TIOCGSERIAL: + memset(&ser, 0, sizeof ser); + ser.type = PORT_16654; + ser.line = port->serial->minor; + ser.port = port->number; + ser.baud_base = 460800; + + if (copy_to_user((void __user *)arg, &ser, sizeof ser)) + return -EFAULT; + + return 0; + case TIOCMIWAIT: dbg("%s (%d) TIOCMIWAIT", __func__, port->number); return wait_modem_info(port, arg);