return;
 }
 
-static int ark3116_open(struct tty_struct *tty, struct usb_serial_port *port,
-                                       struct file *filp)
+static int ark3116_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct ktermios tmp_termios;
        struct usb_serial *serial = port->serial;
                return -ENOMEM;
        }
 
-       result = usb_serial_generic_open(tty, port, filp);
+       result = usb_serial_generic_open(tty, port);
        if (result)
                goto err_out;
 
 
 static int  belkin_sa_startup(struct usb_serial *serial);
 static void belkin_sa_release(struct usb_serial *serial);
 static int  belkin_sa_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp);
+                       struct usb_serial_port *port);
 static void belkin_sa_close(struct usb_serial_port *port);
 static void belkin_sa_read_int_callback(struct urb *urb);
 static void belkin_sa_set_termios(struct tty_struct *tty,
 
 
 static int  belkin_sa_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+                                       struct usb_serial_port *port)
 {
        int retval = 0;
 
 
 
 
 /* open this device, set default parameters */
-static int ch341_open(struct tty_struct *tty, struct usb_serial_port *port,
-                               struct file *filp)
+static int ch341_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct usb_serial *serial = port->serial;
        struct ch341_private *priv = usb_get_serial_port_data(serial->port[0]);
                return -EPROTO;
        }
 
-       r = usb_serial_generic_open(tty, port, filp);
+       r = usb_serial_generic_open(tty, port);
 
 out:   return r;
 }
 
                /* only call the device specific open if this
                 * is the first time the port is opened */
                if (serial->type->open)
-                       retval = serial->type->open(NULL, port, NULL);
+                       retval = serial->type->open(NULL, port);
                else
-                       retval = usb_serial_generic_open(NULL, port, NULL);
+                       retval = usb_serial_generic_open(NULL, port);
 
                if (retval) {
                        err("could not open USB console port");
 
 /*
  * Function Prototypes
  */
-static int cp210x_open(struct tty_struct *, struct usb_serial_port *,
-                                                       struct file *);
+static int cp210x_open(struct tty_struct *tty, struct usb_serial_port *);
 static void cp210x_cleanup(struct usb_serial_port *);
 static void cp210x_close(struct usb_serial_port *);
 static void cp210x_get_termios(struct tty_struct *,
        return baud;
 }
 
-static int cp210x_open(struct tty_struct *tty, struct usb_serial_port *port,
-                               struct file *filp)
+static int cp210x_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct usb_serial *serial = port->serial;
        int result;
 
 static void cyberjack_disconnect(struct usb_serial *serial);
 static void cyberjack_release(struct usb_serial *serial);
 static int  cyberjack_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp);
+       struct usb_serial_port *port);
 static void cyberjack_close(struct usb_serial_port *port);
 static int cyberjack_write(struct tty_struct *tty,
        struct usb_serial_port *port, const unsigned char *buf, int count);
 }
 
 static int  cyberjack_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+                                       struct usb_serial_port *port)
 {
        struct cyberjack_private *priv;
        unsigned long flags;
 
 static int  cypress_hidcom_startup(struct usb_serial *serial);
 static int  cypress_ca42v2_startup(struct usb_serial *serial);
 static void cypress_release(struct usb_serial *serial);
-static int  cypress_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp);
+static int  cypress_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void cypress_close(struct usb_serial_port *port);
 static void cypress_dtr_rts(struct usb_serial_port *port, int on);
 static int  cypress_write(struct tty_struct *tty, struct usb_serial_port *port,
 }
 
 
-static int cypress_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int cypress_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct cypress_private *priv = usb_get_serial_port_data(port);
        struct usb_serial *serial = port->serial;
 
 static void digi_write_bulk_callback(struct urb *urb);
 static int digi_write_room(struct tty_struct *tty);
 static int digi_chars_in_buffer(struct tty_struct *tty);
-static int digi_open(struct tty_struct *tty, struct usb_serial_port *port,
-       struct file *filp);
+static int digi_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void digi_close(struct usb_serial_port *port);
 static int digi_carrier_raised(struct usb_serial_port *port);
 static void digi_dtr_rts(struct usb_serial_port *port, int on);
        return 0;
 }
 
-static int digi_open(struct tty_struct *tty, struct usb_serial_port *port,
-                               struct file *filp)
+static int digi_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        int ret;
        unsigned char buf[32];
 
 #define EMPEG_PRODUCT_ID               0x0001
 
 /* function prototypes for an empeg-car player */
-static int  empeg_open(struct tty_struct *tty, struct usb_serial_port *port,
-                                               struct file *filp);
+static int  empeg_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void empeg_close(struct usb_serial_port *port);
 static int  empeg_write(struct tty_struct *tty, struct usb_serial_port *port,
                                                const unsigned char *buf,
 /******************************************************************************
  * Empeg specific driver functions
  ******************************************************************************/
-static int empeg_open(struct tty_struct *tty, struct usb_serial_port *port,
-                               struct file *filp)
+static int empeg_open(struct tty_struct *tty,struct usb_serial_port *port)
 {
        struct usb_serial *serial = port->serial;
        int result = 0;
        dbg("%s - port %d", __func__, port->number);
 
        /* Force default termio settings */
-       empeg_set_termios(tty, port, NULL) ;
+       empeg_set_termios(tty, port, NULL);
 
        bytes_in = 0;
        bytes_out = 0;
 
                                        const struct usb_device_id *id);
 static int  ftdi_sio_port_probe(struct usb_serial_port *port);
 static int  ftdi_sio_port_remove(struct usb_serial_port *port);
-static int  ftdi_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp);
+static int  ftdi_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void ftdi_close(struct usb_serial_port *port);
 static void ftdi_dtr_rts(struct usb_serial_port *port, int on);
 static int  ftdi_write(struct tty_struct *tty, struct usb_serial_port *port,
        return 0;
 }
 
-static int ftdi_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int ftdi_open(struct tty_struct *tty, struct usb_serial_port *port)
 { /* ftdi_open */
        struct usb_device *dev = port->serial->dev;
        struct ftdi_private *priv = usb_get_serial_port_data(port);
 
 
 
 
-static int garmin_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int garmin_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        unsigned long flags;
        int status = 0;
 
 #endif
 }
 
-int usb_serial_generic_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+int usb_serial_generic_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct usb_serial *serial = port->serial;
        int result = 0;
 
 static void edge_bulk_out_cmd_callback(struct urb *urb);
 
 /* function prototypes for the usbserial callbacks */
-static int edge_open(struct tty_struct *tty, struct usb_serial_port *port,
-                                       struct file *filp);
+static int edge_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void edge_close(struct usb_serial_port *port);
 static int edge_write(struct tty_struct *tty, struct usb_serial_port *port,
                                        const unsigned char *buf, int count);
  *     If successful, we return 0
  *     Otherwise we return a negative error number.
  *****************************************************************************/
-static int edge_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int edge_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct edgeport_port *edge_port = usb_get_serial_port_data(port);
        struct usb_serial *serial;
 
        tty_kref_put(tty);
 }
 
-static int edge_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int edge_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct edgeport_port *edge_port = usb_get_serial_port_data(port);
        struct edgeport_serial *edge_serial;
 
 
 /* Function prototypes for an ipaq */
 static int  ipaq_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp);
+                       struct usb_serial_port *port);
 static void ipaq_close(struct usb_serial_port *port);
 static int  ipaq_calc_num_ports(struct usb_serial *serial);
 static int  ipaq_startup(struct usb_serial *serial);
 static int             bytes_out;
 
 static int ipaq_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+                       struct usb_serial_port *port)
 {
        struct usb_serial       *serial = port->serial;
        struct ipaq_private     *priv;
                priv->free_len += PACKET_SIZE;
        }
 
-       if (tty) {
-               /* FIXME: These two are bogus */
-               tty->raw = 1;
-               tty->real_raw = 1;
-       }
        /*
         * Lose the small buffers usbserial provides. Make larger ones.
         */
 
        return;
 }
 
-static int ipw_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int ipw_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct usb_device *dev = port->serial->dev;
        u8 buf_flow_static[16] = IPW_BYTES_FLOWINIT;
 
 static int xbof = -1;
 
 static int  ir_startup (struct usb_serial *serial);
-static int  ir_open(struct tty_struct *tty, struct usb_serial_port *port,
-                                       struct file *filep);
+static int  ir_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void ir_close(struct usb_serial_port *port);
 static int  ir_write(struct tty_struct *tty, struct usb_serial_port *port,
                                        const unsigned char *buf, int count);
        return 0;
 }
 
-static int ir_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int ir_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        char *buffer;
        int result = 0;
 
        }
 }
 
-static int iuu_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int iuu_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct usb_serial *serial = port->serial;
        u8 *buf;
                tty->termios->c_iflag = 0;
                priv->termios_initialized = 1;
                priv->poll = 0;
-        }
+       }
        spin_unlock_irqrestore(&priv->lock, flags);
 
        /* initialize writebuf */
 
 }
 
 
-static int keyspan_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int keyspan_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct keyspan_port_private     *p_priv;
        struct keyspan_serial_private   *s_priv;
 
 
 /* Function prototypes for Keyspan serial converter */
 static int  keyspan_open               (struct tty_struct *tty,
-                                        struct usb_serial_port *port,
-                                        struct file *filp);
+                                        struct usb_serial_port *port);
 static void keyspan_close              (struct usb_serial_port *port);
 static void keyspan_dtr_rts            (struct usb_serial_port *port, int on);
 static int  keyspan_startup            (struct usb_serial *serial);
 
 
 
 static int keyspan_pda_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+                                       struct usb_serial_port *port)
 {
        struct usb_serial *serial = port->serial;
        unsigned char room;
 
 static int  klsi_105_startup(struct usb_serial *serial);
 static void klsi_105_disconnect(struct usb_serial *serial);
 static void klsi_105_release(struct usb_serial *serial);
-static int  klsi_105_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp);
+static int  klsi_105_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void klsi_105_close(struct usb_serial_port *port);
 static int  klsi_105_write(struct tty_struct *tty,
        struct usb_serial_port *port, const unsigned char *buf, int count);
        }
 } /* klsi_105_release */
 
-static int  klsi_105_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int  klsi_105_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct klsi_105_private *priv = usb_get_serial_port_data(port);
        int retval = 0;
 
        dbg("%s port %d", __func__, port->number);
 
-       /* force low_latency on so that our tty_push actually forces
-        * the data through
-        * tty->low_latency = 1; */
-
        /* Do a defined restart:
         * Set up sane default baud rate and send the 'READ_ON'
         * vendor command.
 
 /* Function prototypes */
 static int  kobil_startup(struct usb_serial *serial);
 static void kobil_release(struct usb_serial *serial);
-static int  kobil_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp);
+static int  kobil_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void kobil_close(struct usb_serial_port *port);
 static int  kobil_write(struct tty_struct *tty, struct usb_serial_port *port,
                         const unsigned char *buf, int count);
 }
 
 
-static int kobil_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int kobil_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        int result = 0;
        struct kobil_private *priv;
 
  */
 static int  mct_u232_startup(struct usb_serial *serial);
 static void mct_u232_release(struct usb_serial *serial);
-static int  mct_u232_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp);
+static int  mct_u232_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void mct_u232_close(struct usb_serial_port *port);
 static void mct_u232_dtr_rts(struct usb_serial_port *port, int on);
 static void mct_u232_read_int_callback(struct urb *urb);
        }
 } /* mct_u232_release */
 
-static int  mct_u232_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int  mct_u232_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct usb_serial *serial = port->serial;
        struct mct_u232_private *priv = usb_get_serial_port_data(port);
 
        return status;
 }
 
-static int mos7720_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int mos7720_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct usb_serial *serial;
        struct usb_serial_port *port0;
 
  *     Otherwise we return a negative error number.
  *****************************************************************************/
 
-static int mos7840_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int mos7840_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        int response;
        int j;
 
                        __func__, result);
 }
 
-static int navman_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int navman_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        int result = 0;
 
 
 #define BT_IGNITIONPRO_ID      0x2000
 
 /* function prototypes */
-static int  omninet_open(struct tty_struct *tty, struct usb_serial_port *port,
-                                                       struct file *filp);
+static int  omninet_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void omninet_close(struct usb_serial_port *port);
 static void omninet_read_bulk_callback(struct urb *urb);
 static void omninet_write_bulk_callback(struct urb *urb);
        return 0;
 }
 
-static int omninet_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int omninet_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct usb_serial       *serial = port->serial;
        struct usb_serial_port  *wport;
 
        spin_unlock(&priv->lock);
 }
 
-static int opticon_open(struct tty_struct *tty, struct usb_serial_port *port,
-                       struct file *filp)
+static int opticon_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct opticon_private *priv = usb_get_serial_data(port->serial);
        unsigned long flags;
 
 /* Function prototypes */
 static int  option_probe(struct usb_serial *serial,
                        const struct usb_device_id *id);
-static int  option_open(struct tty_struct *tty, struct usb_serial_port *port,
-                                                       struct file *filp);
+static int  option_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void option_close(struct usb_serial_port *port);
 static void option_dtr_rts(struct usb_serial_port *port, int on);
 
        return data_len;
 }
 
-static int option_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int option_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct option_port_private *portdata;
        int i, err;
 
          && ((a)->frame_fmt == (priv)->pending_setup.frame_fmt))
 
 /* function prototypes */
-static int oti6858_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp);
+static int oti6858_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void oti6858_close(struct usb_serial_port *port);
 static void oti6858_set_termios(struct tty_struct *tty,
                        struct usb_serial_port *port, struct ktermios *old);
        spin_unlock_irqrestore(&priv->lock, flags);
 }
 
-static int oti6858_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int oti6858_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct oti6858_private *priv = usb_get_serial_port_data(port);
        struct ktermios tmp_termios;
 
 
 }
 
-static int pl2303_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int pl2303_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct ktermios tmp_termios;
        struct usb_serial *serial = port->serial;
        if (tty)
                pl2303_set_termios(tty, port, &tmp_termios);
 
-       /* FIXME: need to assert RTS and DTR if CRTSCTS off */
-
        dbg("%s - submitting read urb", __func__);
        port->read_urb->dev = serial->dev;
        result = usb_submit_urb(port->read_urb, GFP_KERNEL);
 
        }
 }
 
-static int sierra_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int sierra_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct sierra_port_private *portdata;
        struct usb_serial *serial = port->serial;
 
 
 /* open the serial port. do some usb system call. set termios and get the line
  * status of the device. then submit the read urb */
-static int spcp8x5_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int spcp8x5_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct ktermios tmp_termios;
        struct usb_serial *serial = port->serial;
        priv->line_status = status & 0xf0 ;
        spin_unlock_irqrestore(&priv->lock, flags);
 
-       /* FIXME: need to assert RTS and DTR if CRTSCTS off */
-
        dbg("%s - submitting read urb", __func__);
        port->read_urb->dev = serial->dev;
        ret = usb_submit_urb(port->read_urb, GFP_KERNEL);
 
        spin_unlock(&priv->lock);
 }
 
-static int symbol_open(struct tty_struct *tty, struct usb_serial_port *port,
-                       struct file *filp)
+static int symbol_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct symbol_private *priv = usb_get_serial_data(port->serial);
        unsigned long flags;
 
 
 static int ti_startup(struct usb_serial *serial);
 static void ti_release(struct usb_serial *serial);
-static int ti_open(struct tty_struct *tty, struct usb_serial_port *port,
-               struct file *file);
+static int ti_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void ti_close(struct usb_serial_port *port);
 static int ti_write(struct tty_struct *tty, struct usb_serial_port *port,
                const unsigned char *data, int count);
 }
 
 
-static int ti_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *file)
+static int ti_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct ti_port *tport = usb_get_serial_port_data(port);
        struct ti_device *tdev;
 
 
                /* only call the device specific open if this
                 * is the first time the port is opened */
-               retval = serial->type->open(tty, port, filp);
+               retval = serial->type->open(tty, port);
                if (retval)
                        goto bailout_interface_put;
                mutex_unlock(&serial->disc_mutex);
 
        .no_dynamic_id =        1,
 };
 
-static int usb_debug_open(struct tty_struct *tty, struct usb_serial_port *port,
-                                                       struct file *filp)
+static int usb_debug_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        port->bulk_out_size = USB_DEBUG_MAX_PACKET_SIZE;
-       return usb_serial_generic_open(tty, port, filp);
+       return usb_serial_generic_open(tty, port);
 }
 
 /* This HW really does not support a serial break, so one will be
 
 #define DRIVER_DESC "USB HandSpring Visor / Palm OS driver"
 
 /* function prototypes for a handspring visor */
-static int  visor_open(struct tty_struct *tty, struct usb_serial_port *port,
-                                       struct file *filp);
+static int  visor_open(struct tty_struct *tty, struct usb_serial_port *port);
 static void visor_close(struct usb_serial_port *port);
 static int  visor_write(struct tty_struct *tty, struct usb_serial_port *port,
                                        const unsigned char *buf, int count);
 /******************************************************************************
  * Handspring Visor specific driver functions
  ******************************************************************************/
-static int visor_open(struct tty_struct *tty, struct usb_serial_port *port,
-                                                       struct file *filp)
+static int visor_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        struct usb_serial *serial = port->serial;
        struct visor_private *priv = usb_get_serial_port_data(port);
 
 static int  whiteheat_attach(struct usb_serial *serial);
 static void whiteheat_release(struct usb_serial *serial);
 static int  whiteheat_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp);
+                       struct usb_serial_port *port);
 static void whiteheat_close(struct usb_serial_port *port);
 static int  whiteheat_write(struct tty_struct *tty,
                        struct usb_serial_port *port,
        return;
 }
 
-static int whiteheat_open(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp)
+static int whiteheat_open(struct tty_struct *tty, struct usb_serial_port *port)
 {
        int             retval = 0;
 
 
        int (*resume)(struct usb_serial *serial);
 
        /* serial function calls */
-       /* Called by console with tty = NULL and by tty */
-       int  (*open)(struct tty_struct *tty,
-                       struct usb_serial_port *port, struct file *filp);
+       /* Called by console and by the tty layer */
+       int  (*open)(struct tty_struct *tty, struct usb_serial_port *port);
        void (*close)(struct usb_serial_port *port);
        int  (*write)(struct tty_struct *tty, struct usb_serial_port *port,
                        const unsigned char *buf, int count);
 extern struct usb_serial *usb_serial_get_by_index(unsigned int minor);
 extern void usb_serial_put(struct usb_serial *serial);
 extern int usb_serial_generic_open(struct tty_struct *tty,
-               struct usb_serial_port *port, struct file *filp);
+       struct usb_serial_port *port);
 extern int usb_serial_generic_write(struct tty_struct *tty,
        struct usb_serial_port *port, const unsigned char *buf, int count);
 extern void usb_serial_generic_close(struct usb_serial_port *port);