.. | .. |
---|
168 | 168 | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_8S) }, |
---|
169 | 169 | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_416) }, |
---|
170 | 170 | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_416B) }, |
---|
| 171 | + { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_E5805A) }, |
---|
171 | 172 | { } |
---|
172 | 173 | }; |
---|
173 | 174 | |
---|
.. | .. |
---|
206 | 207 | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_8S) }, |
---|
207 | 208 | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_416) }, |
---|
208 | 209 | { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_TI_EDGEPORT_416B) }, |
---|
| 210 | + { USB_DEVICE(USB_VENDOR_ID_ION, ION_DEVICE_ID_E5805A) }, |
---|
209 | 211 | { } |
---|
210 | 212 | }; |
---|
211 | 213 | |
---|
.. | .. |
---|
2437 | 2439 | return result; |
---|
2438 | 2440 | } |
---|
2439 | 2441 | |
---|
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) |
---|
2442 | 2444 | { |
---|
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); |
---|
2444 | 2447 | unsigned cwait; |
---|
2445 | 2448 | |
---|
2446 | 2449 | cwait = edge_port->port->port.closing_wait; |
---|
2447 | 2450 | if (cwait != ASYNC_CLOSING_WAIT_NONE) |
---|
2448 | 2451 | cwait = jiffies_to_msecs(cwait) / 10; |
---|
2449 | 2452 | |
---|
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; |
---|
2463 | 2461 | 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; |
---|
2479 | 2462 | } |
---|
2480 | 2463 | |
---|
2481 | 2464 | static void edge_break(struct tty_struct *tty, int break_state) |
---|
.. | .. |
---|
2738 | 2721 | .release = edge_release, |
---|
2739 | 2722 | .port_probe = edge_port_probe, |
---|
2740 | 2723 | .port_remove = edge_port_remove, |
---|
2741 | | - .ioctl = edge_ioctl, |
---|
| 2724 | + .get_serial = get_serial_info, |
---|
2742 | 2725 | .set_termios = edge_set_termios, |
---|
2743 | 2726 | .tiocmget = edge_tiocmget, |
---|
2744 | 2727 | .tiocmset = edge_tiocmset, |
---|
.. | .. |
---|
2777 | 2760 | .release = edge_release, |
---|
2778 | 2761 | .port_probe = edge_port_probe, |
---|
2779 | 2762 | .port_remove = edge_port_remove, |
---|
2780 | | - .ioctl = edge_ioctl, |
---|
| 2763 | + .get_serial = get_serial_info, |
---|
2781 | 2764 | .set_termios = edge_set_termios, |
---|
2782 | 2765 | .tiocmget = edge_tiocmget, |
---|
2783 | 2766 | .tiocmset = edge_tiocmset, |
---|