| .. | .. |
|---|
| 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, |
|---|