mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
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 <nuclear@member.fsf.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
ac7d4ca9e0
commit
67b9946dd0
1 changed files with 13 additions and 0 deletions
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue