forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-16 8d2a02b24d66aa359e83eebc1ed3c0f85367a1cb
kernel/drivers/usb/serial/io_ti.c
....@@ -168,6 +168,7 @@
168168 { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_8S) },
169169 { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_416) },
170170 { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_416B) },
171
+ { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_E5805A) },
171172 { }
172173 };
173174
....@@ -206,6 +207,7 @@
206207 { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_8S) },
207208 { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_416) },
208209 { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_416B) },
210
+ { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_E5805A) },
209211 { }
210212 };
211213
....@@ -2437,45 +2439,26 @@
24372439 return result;
24382440 }
24392441
2440
-static int get_serial_info(struct edgeport_port *edge_port,
2441
- struct serial_struct __user *retinfo)
2442
+static int get_serial_info(struct tty_struct *tty,
2443
+ struct serial_struct *ss)
24422444 {
2443
- struct serial_struct tmp;
2445
+ struct usb_serial_port *port = tty->driver_data;
2446
+ struct edgeport_port *edge_port = usb_get_serial_port_data(port);
24442447 unsigned cwait;
24452448
24462449 cwait = edge_port->port->port.closing_wait;
24472450 if (cwait != ASYNC_CLOSING_WAIT_NONE)
24482451 cwait = jiffies_to_msecs(cwait) / 10;
24492452
2450
- memset(&tmp, 0, sizeof(tmp));
2451
-
2452
- tmp.type = PORT_16550A;
2453
- tmp.line = edge_port->port->minor;
2454
- tmp.port = edge_port->port->port_number;
2455
- tmp.irq = 0;
2456
- tmp.xmit_fifo_size = edge_port->port->bulk_out_size;
2457
- tmp.baud_base = 9600;
2458
- tmp.close_delay = 5*HZ;
2459
- tmp.closing_wait = cwait;
2460
-
2461
- if (copy_to_user(retinfo, &tmp, sizeof(*retinfo)))
2462
- return -EFAULT;
2453
+ ss->type = PORT_16550A;
2454
+ ss->line = edge_port->port->minor;
2455
+ ss->port = edge_port->port->port_number;
2456
+ ss->irq = 0;
2457
+ ss->xmit_fifo_size = edge_port->port->bulk_out_size;
2458
+ ss->baud_base = 9600;
2459
+ ss->close_delay = 5*HZ;
2460
+ ss->closing_wait = cwait;
24632461 return 0;
2464
-}
2465
-
2466
-static int edge_ioctl(struct tty_struct *tty,
2467
- unsigned int cmd, unsigned long arg)
2468
-{
2469
- struct usb_serial_port *port = tty->driver_data;
2470
- struct edgeport_port *edge_port = usb_get_serial_port_data(port);
2471
-
2472
- switch (cmd) {
2473
- case TIOCGSERIAL:
2474
- dev_dbg(&port->dev, "%s - TIOCGSERIAL\n", __func__);
2475
- return get_serial_info(edge_port,
2476
- (struct serial_struct __user *) arg);
2477
- }
2478
- return -ENOIOCTLCMD;
24792462 }
24802463
24812464 static void edge_break(struct tty_struct *tty, int break_state)
....@@ -2738,7 +2721,7 @@
27382721 .release = edge_release,
27392722 .port_probe = edge_port_probe,
27402723 .port_remove = edge_port_remove,
2741
- .ioctl = edge_ioctl,
2724
+ .get_serial = get_serial_info,
27422725 .set_termios = edge_set_termios,
27432726 .tiocmget = edge_tiocmget,
27442727 .tiocmset = edge_tiocmset,
....@@ -2777,7 +2760,7 @@
27772760 .release = edge_release,
27782761 .port_probe = edge_port_probe,
27792762 .port_remove = edge_port_remove,
2780
- .ioctl = edge_ioctl,
2763
+ .get_serial = get_serial_info,
27812764 .set_termios = edge_set_termios,
27822765 .tiocmget = edge_tiocmget,
27832766 .tiocmset = edge_tiocmset,