static int cp210x_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
-       struct usb_serial *serial = port->serial;
        int result;
 
        dbg("%s - port %d", __func__, port->number);
                return -EPROTO;
        }
 
-       /* Start reading from the device */
-       usb_fill_bulk_urb(port->read_urb, serial->dev,
-                       usb_rcvbulkpipe(serial->dev,
-                       port->bulk_in_endpointAddress),
-                       port->read_urb->transfer_buffer,
-                       port->read_urb->transfer_buffer_length,
-                       serial->type->read_bulk_callback,
-                       port);
-       result = usb_submit_urb(port->read_urb, GFP_KERNEL);
-       if (result) {
-               dev_err(&port->dev, "%s - failed resubmitting read urb, "
-                               "error %d\n", __func__, result);
+       result = usb_serial_generic_submit_read_urb(port, GFP_KERNEL);
+       if (result)
                return result;
-       }
 
        /* Configure the termios structure */
        cp210x_get_termios(tty, port);