Commit 67b9946d authored by John Tsiombikas's avatar John Tsiombikas Committed by Greg Kroah-Hartman

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: default avatarJohn Tsiombikas <nuclear@member.fsf.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent ac7d4ca9
...@@ -895,10 +895,23 @@ static int wait_modem_info(struct usb_serial_port *port, unsigned int arg) ...@@ -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, static int pl2303_ioctl(struct tty_struct *tty, struct file *file,
unsigned int cmd, unsigned long arg) unsigned int cmd, unsigned long arg)
{ {
struct serial_struct ser;
struct usb_serial_port *port = tty->driver_data; struct usb_serial_port *port = tty->driver_data;
dbg("%s (%d) cmd = 0x%04x", __func__, port->number, cmd); dbg("%s (%d) cmd = 0x%04x", __func__, port->number, cmd);
switch (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: case TIOCMIWAIT:
dbg("%s (%d) TIOCMIWAIT", __func__, port->number); dbg("%s (%d) TIOCMIWAIT", __func__, port->number);
return wait_modem_info(port, arg); return wait_modem_info(port, arg);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment