Staging: aten2011: remove function prototypes.
authorGreg Kroah-Hartman <gregkh@suse.de>
Fri, 30 Jan 2009 01:10:43 +0000 (17:10 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 3 Apr 2009 21:53:37 +0000 (14:53 -0700)
Reorginize functions to get rid of forward prototypes so they are no
longer needed.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/uc2322/aten2011.c

index 9d264bb2d6dc2077a758d716ca28a78fc3e9ac9a..b7c31b08e2411ea8809b9bca9bb750ce60ecf960 100644 (file)
 #define ATENINTL_DEVICE_ID_2011                0x2011
 #define ATENINTL_DEVICE_ID_7820                0x7820
 
-/* different USB-serial Adapter's ID's table */
-static struct usb_device_id ATENINTL_port_id_table [] = {
+static struct usb_device_id id_table [] = {
        { USB_DEVICE(USB_VENDOR_ID_ATENINTL,ATENINTL_DEVICE_ID_2011) },
        { USB_DEVICE(USB_VENDOR_ID_ATENINTL,ATENINTL_DEVICE_ID_7820) },
        { } /* terminating entry */
 };
-
-static __devinitdata struct usb_device_id id_table_combined [] = {
-       { USB_DEVICE(USB_VENDOR_ID_ATENINTL,ATENINTL_DEVICE_ID_2011) },
-       { USB_DEVICE(USB_VENDOR_ID_ATENINTL,ATENINTL_DEVICE_ID_7820) },
-       { } /* terminating entry */
-};
-
-MODULE_DEVICE_TABLE (usb, id_table_combined);
+MODULE_DEVICE_TABLE (usb, id_table);
 
 /* This structure holds all of the local port information */
 struct ATENINTL_port
@@ -177,39 +169,12 @@ struct ATENINTL_serial
        unsigned char   status_polling_started;
 };
 
-static void ATEN2011_interrupt_callback(struct urb *urb);
-static void ATEN2011_bulk_in_callback(struct urb *urb);
-static void ATEN2011_bulk_out_data_callback(struct urb *urb);
-static void ATEN2011_control_callback(struct urb *urb);
-static int ATEN2011_get_reg(struct ATENINTL_port *ATEN,__u16 Wval, __u16 reg, __u16 * val);
-int handle_newMsr(struct ATENINTL_port *port,__u8 newMsr);
-int handle_newLsr(struct ATENINTL_port *port,__u8 newLsr);
-static int  ATEN2011_open(struct tty_struct *tty, struct usb_serial_port *port, struct file *filp);
-static void ATEN2011_close(struct tty_struct *tty, struct usb_serial_port *port, struct file *filp);
-static int ATEN2011_write(struct tty_struct *tty, struct usb_serial_port *port, const unsigned char *data, int count);
-static int  ATEN2011_write_room(struct tty_struct *tty);
-static int  ATEN2011_chars_in_buffer(struct tty_struct *tty);
-static void ATEN2011_throttle(struct tty_struct *tty);
-static void ATEN2011_unthrottle(struct tty_struct *tty);
-static void ATEN2011_set_termios(struct tty_struct *tty, struct usb_serial_port *port, struct ktermios *old_termios);
-static int ATEN2011_tiocmset(struct tty_struct *tty, struct file *file,
-                               unsigned int set, unsigned int clear);
-static int ATEN2011_tiocmget(struct tty_struct *tty, struct file *file);
-static int  ATEN2011_ioctl(struct tty_struct *tty, struct file *file, unsigned int cmd, unsigned long arg);
-static void ATEN2011_break(struct tty_struct *tty, int break_state);
-static int  ATEN2011_startup(struct usb_serial *serial);
-static void ATEN2011_shutdown(struct usb_serial *serial);
-static int ATEN2011_calc_num_ports(struct usb_serial *serial);
-
-static int  ATEN2011_calc_baud_rate_divisor(int baudRate, int *divisor,__u16 *clk_sel_val);
-static int  ATEN2011_send_cmd_write_baud_rate(struct ATENINTL_port *ATEN2011_port, int baudRate);
-static void ATEN2011_change_port_settings(struct tty_struct *tty, struct ATENINTL_port *ATEN2011_port, struct ktermios *old_termios);
-static void ATEN2011_block_until_chase_response(struct tty_struct *tty, struct ATENINTL_port *ATEN2011_port);
-static void ATEN2011_block_until_tx_empty(struct tty_struct *tty, struct ATENINTL_port *ATEN2011_port);
-
-int __init ATENINTL2011_init(void);
-void __exit ATENINTL2011_exit(void);
-
+static void ATEN2011_set_termios(struct tty_struct *tty,
+                                struct usb_serial_port *port,
+                                struct ktermios *old_termios);
+static void ATEN2011_change_port_settings(struct tty_struct *tty,
+                                         struct ATENINTL_port *ATEN2011_port,
+                                         struct ktermios *old_termios);
 
 /*************************************
  * Bit definitions for each register *
@@ -300,7 +265,7 @@ static int ATEN2011_set_Uart_Reg(struct usb_serial_port *port, __u16 reg,
 static int ATEN2011_get_Uart_Reg(struct usb_serial_port *port, __u16 reg,
                                 __u16 * val);
 
-void ATEN2011_Dump_serial_port(struct ATENINTL_port *ATEN2011_port);
+static void ATEN2011_Dump_serial_port(struct ATENINTL_port *ATEN2011_port);
 
 
 static inline void ATEN2011_set_serial_private(struct usb_serial *serial,
@@ -439,7 +404,7 @@ static int ATEN2011_get_Uart_Reg(struct usb_serial_port *port, __u16 reg,
        return ret;
 }
 
-void ATEN2011_Dump_serial_port(struct ATENINTL_port *ATEN2011_port)
+static void ATEN2011_Dump_serial_port(struct ATENINTL_port *ATEN2011_port)
 {
 
        DPRINTK("***************************************\n");
@@ -451,45 +416,138 @@ void ATEN2011_Dump_serial_port(struct ATENINTL_port *ATEN2011_port)
 
 }
 
-static struct usb_serial_driver ATENINTL2011_4port_device = {
-       .driver = {
-                  .owner = THIS_MODULE,
-                  .name = "ATEN2011",
-                  },
-       .description = DRIVER_DESC,
-       .id_table = ATENINTL_port_id_table,
-       .open = ATEN2011_open,
-       .close = ATEN2011_close,
-       .write = ATEN2011_write,
-       .write_room = ATEN2011_write_room,
-       .chars_in_buffer = ATEN2011_chars_in_buffer,
-       .throttle = ATEN2011_throttle,
-       .unthrottle = ATEN2011_unthrottle,
-       .calc_num_ports = ATEN2011_calc_num_ports,
+static int handle_newMsr(struct ATENINTL_port *port, __u8 newMsr)
+{
+       struct ATENINTL_port *ATEN2011_port;
+       struct async_icount *icount;
+       ATEN2011_port = port;
+       icount = &ATEN2011_port->icount;
+       if (newMsr &
+           (ATEN_MSR_DELTA_CTS | ATEN_MSR_DELTA_DSR | ATEN_MSR_DELTA_RI |
+            ATEN_MSR_DELTA_CD)) {
+               icount = &ATEN2011_port->icount;
 
-#ifdef ATENSerialProbe
-       .probe = ATEN2011_serial_probe,
-#endif
-       .ioctl = ATEN2011_ioctl,
-       .set_termios = ATEN2011_set_termios,
-       .break_ctl = ATEN2011_break,
-//      .break_ctl              = ATEN2011_break_ctl,
-       .tiocmget = ATEN2011_tiocmget,
-       .tiocmset = ATEN2011_tiocmset,
-       .attach = ATEN2011_startup,
-       .shutdown = ATEN2011_shutdown,
-       .read_bulk_callback = ATEN2011_bulk_in_callback,
-       .read_int_callback = ATEN2011_interrupt_callback,
-};
+               /* update input line counters */
+               if (newMsr & ATEN_MSR_DELTA_CTS) {
+                       icount->cts++;
+               }
+               if (newMsr & ATEN_MSR_DELTA_DSR) {
+                       icount->dsr++;
+               }
+               if (newMsr & ATEN_MSR_DELTA_CD) {
+                       icount->dcd++;
+               }
+               if (newMsr & ATEN_MSR_DELTA_RI) {
+                       icount->rng++;
+               }
+       }
 
-static struct usb_driver io_driver = {
-       .name = "ATEN2011",
-       .probe = usb_serial_probe,
-       .disconnect = usb_serial_disconnect,
-       .id_table = id_table_combined,
-};
+       return 0;
+}
+
+static int handle_newLsr(struct ATENINTL_port *port, __u8 newLsr)
+{
+       struct async_icount *icount;
+
+       dbg("%s - %02x", __FUNCTION__, newLsr);
+
+       if (newLsr & SERIAL_LSR_BI) {
+               //
+               // Parity and Framing errors only count if they
+               // occur exclusive of a break being
+               // received.
+               //
+               newLsr &= (__u8) (SERIAL_LSR_OE | SERIAL_LSR_BI);
+       }
+
+       /* update input line counters */
+       icount = &port->icount;
+       if (newLsr & SERIAL_LSR_BI) {
+               icount->brk++;
+       }
+       if (newLsr & SERIAL_LSR_OE) {
+               icount->overrun++;
+       }
+       if (newLsr & SERIAL_LSR_PE) {
+               icount->parity++;
+       }
+       if (newLsr & SERIAL_LSR_FE) {
+               icount->frame++;
+       }
+
+       return 0;
+}
+
+static void ATEN2011_control_callback(struct urb *urb)
+{
+       unsigned char *data;
+       struct ATENINTL_port *ATEN2011_port;
+       __u8 regval = 0x0;
+
+       if (!urb) {
+               DPRINTK("%s", "Invalid Pointer !!!!:\n");
+               return;
+       }
+
+       switch (urb->status) {
+       case 0:
+               /* success */
+               break;
+       case -ECONNRESET:
+       case -ENOENT:
+       case -ESHUTDOWN:
+               /* this urb is terminated, clean up */
+               dbg("%s - urb shutting down with status: %d", __FUNCTION__,
+                   urb->status);
+               return;
+       default:
+               dbg("%s - nonzero urb status received: %d", __FUNCTION__,
+                   urb->status);
+               goto exit;
+       }
+
+       ATEN2011_port = (struct ATENINTL_port *)urb->context;
+
+       DPRINTK("%s urb buffer size is %d\n", __FUNCTION__, urb->actual_length);
+       DPRINTK("%s ATEN2011_port->MsrLsr is %d port %d\n", __FUNCTION__,
+               ATEN2011_port->MsrLsr, ATEN2011_port->port_num);
+       data = urb->transfer_buffer;
+       regval = (__u8) data[0];
+       DPRINTK("%s data is %x\n", __FUNCTION__, regval);
+       if (ATEN2011_port->MsrLsr == 0)
+               handle_newMsr(ATEN2011_port, regval);
+       else if (ATEN2011_port->MsrLsr == 1)
+               handle_newLsr(ATEN2011_port, regval);
+
+      exit:
+       return;
+}
+
+static int ATEN2011_get_reg(struct ATENINTL_port *ATEN, __u16 Wval, __u16 reg,
+                           __u16 * val)
+{
+       struct usb_device *dev = ATEN->port->serial->dev;
+       struct usb_ctrlrequest *dr = NULL;
+       unsigned char *buffer = NULL;
+       int ret = 0;
+       buffer = (__u8 *) ATEN->ctrl_buf;
+
+//      dr=(struct usb_ctrlrequest *)(buffer);
+       dr = (void *)(buffer + 2);
+       dr->bRequestType = ATEN_RD_RTYPE;
+       dr->bRequest = ATEN_RDREQ;
+       dr->wValue = cpu_to_le16(Wval); //0;
+       dr->wIndex = cpu_to_le16(reg);
+       dr->wLength = cpu_to_le16(2);
+
+       usb_fill_control_urb(ATEN->control_urb, dev, usb_rcvctrlpipe(dev, 0),
+                            (unsigned char *)dr, buffer, 2,
+                            ATEN2011_control_callback, ATEN);
+       ATEN->control_urb->transfer_buffer_length = 2;
+       ret = usb_submit_urb(ATEN->control_urb, GFP_ATOMIC);
+       return ret;
+}
 
-//#ifdef ATEN2011
 static void ATEN2011_interrupt_callback(struct urb *urb)
 {
        int result;
@@ -625,139 +683,6 @@ static void ATEN2011_interrupt_callback(struct urb *urb)
 
 }
 
-//#endif
-static void ATEN2011_control_callback(struct urb *urb)
-{
-       unsigned char *data;
-       struct ATENINTL_port *ATEN2011_port;
-       __u8 regval = 0x0;
-
-       if (!urb) {
-               DPRINTK("%s", "Invalid Pointer !!!!:\n");
-               return;
-       }
-
-       switch (urb->status) {
-       case 0:
-               /* success */
-               break;
-       case -ECONNRESET:
-       case -ENOENT:
-       case -ESHUTDOWN:
-               /* this urb is terminated, clean up */
-               dbg("%s - urb shutting down with status: %d", __FUNCTION__,
-                   urb->status);
-               return;
-       default:
-               dbg("%s - nonzero urb status received: %d", __FUNCTION__,
-                   urb->status);
-               goto exit;
-       }
-
-       ATEN2011_port = (struct ATENINTL_port *)urb->context;
-
-       DPRINTK("%s urb buffer size is %d\n", __FUNCTION__, urb->actual_length);
-       DPRINTK("%s ATEN2011_port->MsrLsr is %d port %d\n", __FUNCTION__,
-               ATEN2011_port->MsrLsr, ATEN2011_port->port_num);
-       data = urb->transfer_buffer;
-       regval = (__u8) data[0];
-       DPRINTK("%s data is %x\n", __FUNCTION__, regval);
-       if (ATEN2011_port->MsrLsr == 0)
-               handle_newMsr(ATEN2011_port, regval);
-       else if (ATEN2011_port->MsrLsr == 1)
-               handle_newLsr(ATEN2011_port, regval);
-
-      exit:
-       return;
-}
-
-int handle_newMsr(struct ATENINTL_port *port, __u8 newMsr)
-{
-       struct ATENINTL_port *ATEN2011_port;
-       struct async_icount *icount;
-       ATEN2011_port = port;
-       icount = &ATEN2011_port->icount;
-       if (newMsr &
-           (ATEN_MSR_DELTA_CTS | ATEN_MSR_DELTA_DSR | ATEN_MSR_DELTA_RI |
-            ATEN_MSR_DELTA_CD)) {
-               icount = &ATEN2011_port->icount;
-
-               /* update input line counters */
-               if (newMsr & ATEN_MSR_DELTA_CTS) {
-                       icount->cts++;
-               }
-               if (newMsr & ATEN_MSR_DELTA_DSR) {
-                       icount->dsr++;
-               }
-               if (newMsr & ATEN_MSR_DELTA_CD) {
-                       icount->dcd++;
-               }
-               if (newMsr & ATEN_MSR_DELTA_RI) {
-                       icount->rng++;
-               }
-       }
-
-       return 0;
-}
-
-int handle_newLsr(struct ATENINTL_port *port, __u8 newLsr)
-{
-       struct async_icount *icount;
-
-       dbg("%s - %02x", __FUNCTION__, newLsr);
-
-       if (newLsr & SERIAL_LSR_BI) {
-               //
-               // Parity and Framing errors only count if they
-               // occur exclusive of a break being
-               // received.
-               //
-               newLsr &= (__u8) (SERIAL_LSR_OE | SERIAL_LSR_BI);
-       }
-
-       /* update input line counters */
-       icount = &port->icount;
-       if (newLsr & SERIAL_LSR_BI) {
-               icount->brk++;
-       }
-       if (newLsr & SERIAL_LSR_OE) {
-               icount->overrun++;
-       }
-       if (newLsr & SERIAL_LSR_PE) {
-               icount->parity++;
-       }
-       if (newLsr & SERIAL_LSR_FE) {
-               icount->frame++;
-       }
-
-       return 0;
-}
-
-static int ATEN2011_get_reg(struct ATENINTL_port *ATEN, __u16 Wval, __u16 reg,
-                           __u16 * val)
-{
-       struct usb_device *dev = ATEN->port->serial->dev;
-       struct usb_ctrlrequest *dr = NULL;
-       unsigned char *buffer = NULL;
-       int ret = 0;
-       buffer = (__u8 *) ATEN->ctrl_buf;
-
-//      dr=(struct usb_ctrlrequest *)(buffer);
-       dr = (void *)(buffer + 2);
-       dr->bRequestType = ATEN_RD_RTYPE;
-       dr->bRequest = ATEN_RDREQ;
-       dr->wValue = cpu_to_le16(Wval); //0;
-       dr->wIndex = cpu_to_le16(reg);
-       dr->wLength = cpu_to_le16(2);
-
-       usb_fill_control_urb(ATEN->control_urb, dev, usb_rcvctrlpipe(dev, 0),
-                            (unsigned char *)dr, buffer, 2,
-                            ATEN2011_control_callback, ATEN);
-       ATEN->control_urb->transfer_buffer_length = 2;
-       ret = usb_submit_urb(ATEN->control_urb, GFP_ATOMIC);
-       return ret;
-}
-
 static void ATEN2011_bulk_in_callback(struct urb *urb)
 {
        int status;
@@ -1278,29 +1203,91 @@ static int ATEN2011_open(struct tty_struct *tty, struct usb_serial_port *port,
        init_waitqueue_head(&ATEN2011_port->delta_msr_wait);
        init_waitqueue_head(&ATEN2011_port->wait_command);
 
-       /* initialize our icount structure */
-       memset(&(ATEN2011_port->icount), 0x00, sizeof(ATEN2011_port->icount));
+       /* initialize our icount structure */
+       memset(&(ATEN2011_port->icount), 0x00, sizeof(ATEN2011_port->icount));
+
+       /* initialize our port settings */
+       ATEN2011_port->shadowMCR = MCR_MASTER_IE;       /* Must set to enable ints! */
+       ATEN2011_port->chaseResponsePending = 0;
+       /* send a open port command */
+       ATEN2011_port->openPending = 0;
+       ATEN2011_port->open = 1;
+       //ATEN2011_change_port_settings(ATEN2011_port,old_termios);
+       /* Setup termios */
+       ATEN2011_set_termios(tty, port, &tmp_termios);
+       ATEN2011_port->rxBytesAvail = 0x0;
+       ATEN2011_port->icount.tx = 0;
+       ATEN2011_port->icount.rx = 0;
+
+       DPRINTK
+           ("\n\nusb_serial serial:%x       ATEN2011_port:%x\nATEN2011_serial:%x      usb_serial_port port:%x\n\n",
+            (unsigned int)serial, (unsigned int)ATEN2011_port,
+            (unsigned int)ATEN2011_serial, (unsigned int)port);
+
+       return 0;
+
+}
+
+static int ATEN2011_chars_in_buffer(struct tty_struct *tty)
+{
+       struct usb_serial_port *port = tty->driver_data;
+       int i;
+       int chars = 0;
+       struct ATENINTL_port *ATEN2011_port;
+
+       //DPRINTK("%s \n"," ATEN2011_chars_in_buffer:entering ...........");
+
+       if (ATEN2011_port_paranoia_check(port, __FUNCTION__)) {
+               DPRINTK("%s", "Invalid port \n");
+               return -1;
+       }
+
+       ATEN2011_port = ATEN2011_get_port_private(port);
+       if (ATEN2011_port == NULL) {
+               DPRINTK("%s \n", "ATEN2011_break:leaving ...........");
+               return -1;
+       }
+
+       for (i = 0; i < NUM_URBS; ++i) {
+               if (ATEN2011_port->write_urb_pool[i]->status == -EINPROGRESS) {
+                       chars += URB_TRANSFER_BUFFER_SIZE;
+               }
+       }
+       dbg("%s - returns %d", __FUNCTION__, chars);
+       return (chars);
+
+}
 
-       /* initialize our port settings */
-       ATEN2011_port->shadowMCR = MCR_MASTER_IE;       /* Must set to enable ints! */
-       ATEN2011_port->chaseResponsePending = 0;
-       /* send a open port command */
-       ATEN2011_port->openPending = 0;
-       ATEN2011_port->open = 1;
-       //ATEN2011_change_port_settings(ATEN2011_port,old_termios);
-       /* Setup termios */
-       ATEN2011_set_termios(tty, port, &tmp_termios);
-       ATEN2011_port->rxBytesAvail = 0x0;
-       ATEN2011_port->icount.tx = 0;
-       ATEN2011_port->icount.rx = 0;
+static void ATEN2011_block_until_tx_empty(struct tty_struct *tty,
+                                         struct ATENINTL_port *ATEN2011_port)
+{
+       int timeout = HZ / 10;
+       int wait = 30;
+       int count;
 
-       DPRINTK
-           ("\n\nusb_serial serial:%x       ATEN2011_port:%x\nATEN2011_serial:%x      usb_serial_port port:%x\n\n",
-            (unsigned int)serial, (unsigned int)ATEN2011_port,
-            (unsigned int)ATEN2011_serial, (unsigned int)port);
+       while (1) {
 
-       return 0;
+               count = ATEN2011_chars_in_buffer(tty);
+
+               /* Check for Buffer status */
+               if (count <= 0) {
+                       return;
+               }
+
+               /* Block the thread for a while */
+               interruptible_sleep_on_timeout(&ATEN2011_port->wait_chase,
+                                              timeout);
 
+               /* No activity.. count down section */
+               wait--;
+               if (wait == 0) {
+                       dbg("%s - TIMEOUT", __FUNCTION__);
+                       return;
+               } else {
+                       /* Reset timout value back to seconds */
+                       wait = 30;
+               }
+       }
 }
 
 static void ATEN2011_close(struct tty_struct *tty, struct usb_serial_port *port,
@@ -1407,6 +1394,39 @@ static void ATEN2011_close(struct tty_struct *tty, struct usb_serial_port *port,
 
 }
 
+static void ATEN2011_block_until_chase_response(struct tty_struct *tty,
+                                               struct ATENINTL_port
+                                               *ATEN2011_port)
+{
+       int timeout = 1 * HZ;
+       int wait = 10;
+       int count;
+
+       while (1) {
+               count = ATEN2011_chars_in_buffer(tty);
+
+               /* Check for Buffer status */
+               if (count <= 0) {
+                       ATEN2011_port->chaseResponsePending = 0;
+                       return;
+               }
+
+               /* Block the thread for a while */
+               interruptible_sleep_on_timeout(&ATEN2011_port->wait_chase,
+                                              timeout);
+               /* No activity.. count down section */
+               wait--;
+               if (wait == 0) {
+                       dbg("%s - TIMEOUT", __FUNCTION__);
+                       return;
+               } else {
+                       /* Reset timout value back to seconds */
+                       wait = 10;
+               }
+       }
+
+}
+
 static void ATEN2011_break(struct tty_struct *tty, int break_state)
 {
        struct usb_serial_port *port = tty->driver_data;
@@ -1460,71 +1480,6 @@ static void ATEN2011_break(struct tty_struct *tty, int break_state)
        return;
 }
 
-static void ATEN2011_block_until_chase_response(struct tty_struct *tty,
-                                               struct ATENINTL_port
-                                               *ATEN2011_port)
-{
-       int timeout = 1 * HZ;
-       int wait = 10;
-       int count;
-
-       while (1) {
-               count = ATEN2011_chars_in_buffer(tty);
-
-               /* Check for Buffer status */
-               if (count <= 0) {
-                       ATEN2011_port->chaseResponsePending = 0;
-                       return;
-               }
-
-               /* Block the thread for a while */
-               interruptible_sleep_on_timeout(&ATEN2011_port->wait_chase,
-                                              timeout);
-               /* No activity.. count down section */
-               wait--;
-               if (wait == 0) {
-                       dbg("%s - TIMEOUT", __FUNCTION__);
-                       return;
-               } else {
-                       /* Reset timout value back to seconds */
-                       wait = 10;
-               }
-       }
-
-}
-
-static void ATEN2011_block_until_tx_empty(struct tty_struct *tty,
-                                         struct ATENINTL_port *ATEN2011_port)
-{
-       int timeout = HZ / 10;
-       int wait = 30;
-       int count;
-
-       while (1) {
-
-               count = ATEN2011_chars_in_buffer(tty);
-
-               /* Check for Buffer status */
-               if (count <= 0) {
-                       return;
-               }
-
-               /* Block the thread for a while */
-               interruptible_sleep_on_timeout(&ATEN2011_port->wait_chase,
-                                              timeout);
-
-               /* No activity.. count down section */
-               wait--;
-               if (wait == 0) {
-                       dbg("%s - TIMEOUT", __FUNCTION__);
-                       return;
-               } else {
-                       /* Reset timout value back to seconds */
-                       wait = 30;
-               }
-       }
-}
-
 static int ATEN2011_write_room(struct tty_struct *tty)
 {
        struct usb_serial_port *port = tty->driver_data;
@@ -1557,36 +1512,6 @@ static int ATEN2011_write_room(struct tty_struct *tty)
 
 }
 
-static int ATEN2011_chars_in_buffer(struct tty_struct *tty)
-{
-       struct usb_serial_port *port = tty->driver_data;
-       int i;
-       int chars = 0;
-       struct ATENINTL_port *ATEN2011_port;
-
-       //DPRINTK("%s \n"," ATEN2011_chars_in_buffer:entering ...........");
-
-       if (ATEN2011_port_paranoia_check(port, __FUNCTION__)) {
-               DPRINTK("%s", "Invalid port \n");
-               return -1;
-       }
-
-       ATEN2011_port = ATEN2011_get_port_private(port);
-       if (ATEN2011_port == NULL) {
-               DPRINTK("%s \n", "ATEN2011_break:leaving ...........");
-               return -1;
-       }
-
-       for (i = 0; i < NUM_URBS; ++i) {
-               if (ATEN2011_port->write_urb_pool[i]->status == -EINPROGRESS) {
-                       chars += URB_TRANSFER_BUFFER_SIZE;
-               }
-       }
-       dbg("%s - returns %d", __FUNCTION__, chars);
-       return (chars);
-
-}
-
 static int ATEN2011_write(struct tty_struct *tty, struct usb_serial_port *port,
                          const unsigned char *data, int count)
 {
@@ -2256,6 +2181,43 @@ static int ATEN2011_ioctl(struct tty_struct *tty, struct file *file,
        return -ENOIOCTLCMD;
 }
 
+static int ATEN2011_calc_baud_rate_divisor(int baudRate, int *divisor,
+                                          __u16 * clk_sel_val)
+{
+       //int i;
+       //__u16 custom,round1, round;
+
+       dbg("%s - %d", __FUNCTION__, baudRate);
+
+       if (baudRate <= 115200) {
+               *divisor = 115200 / baudRate;
+               *clk_sel_val = 0x0;
+       }
+       if ((baudRate > 115200) && (baudRate <= 230400)) {
+               *divisor = 230400 / baudRate;
+               *clk_sel_val = 0x10;
+       } else if ((baudRate > 230400) && (baudRate <= 403200)) {
+               *divisor = 403200 / baudRate;
+               *clk_sel_val = 0x20;
+       } else if ((baudRate > 403200) && (baudRate <= 460800)) {
+               *divisor = 460800 / baudRate;
+               *clk_sel_val = 0x30;
+       } else if ((baudRate > 460800) && (baudRate <= 806400)) {
+               *divisor = 806400 / baudRate;
+               *clk_sel_val = 0x40;
+       } else if ((baudRate > 806400) && (baudRate <= 921600)) {
+               *divisor = 921600 / baudRate;
+               *clk_sel_val = 0x50;
+       } else if ((baudRate > 921600) && (baudRate <= 1572864)) {
+               *divisor = 1572864 / baudRate;
+               *clk_sel_val = 0x60;
+       } else if ((baudRate > 1572864) && (baudRate <= 3145728)) {
+               *divisor = 3145728 / baudRate;
+               *clk_sel_val = 0x70;
+       }
+       return 0;
+}
+
 static int ATEN2011_send_cmd_write_baud_rate(struct ATENINTL_port
                                             *ATEN2011_port, int baudRate)
 {
@@ -2379,43 +2341,6 @@ static int ATEN2011_send_cmd_write_baud_rate(struct ATENINTL_port
        return status;
 }
 
-static int ATEN2011_calc_baud_rate_divisor(int baudRate, int *divisor,
-                                          __u16 * clk_sel_val)
-{
-       //int i;
-       //__u16 custom,round1, round;
-
-       dbg("%s - %d", __FUNCTION__, baudRate);
-
-       if (baudRate <= 115200) {
-               *divisor = 115200 / baudRate;
-               *clk_sel_val = 0x0;
-       }
-       if ((baudRate > 115200) && (baudRate <= 230400)) {
-               *divisor = 230400 / baudRate;
-               *clk_sel_val = 0x10;
-       } else if ((baudRate > 230400) && (baudRate <= 403200)) {
-               *divisor = 403200 / baudRate;
-               *clk_sel_val = 0x20;
-       } else if ((baudRate > 403200) && (baudRate <= 460800)) {
-               *divisor = 460800 / baudRate;
-               *clk_sel_val = 0x30;
-       } else if ((baudRate > 460800) && (baudRate <= 806400)) {
-               *divisor = 806400 / baudRate;
-               *clk_sel_val = 0x40;
-       } else if ((baudRate > 806400) && (baudRate <= 921600)) {
-               *divisor = 921600 / baudRate;
-               *clk_sel_val = 0x50;
-       } else if ((baudRate > 921600) && (baudRate <= 1572864)) {
-               *divisor = 1572864 / baudRate;
-               *clk_sel_val = 0x60;
-       } else if ((baudRate > 1572864) && (baudRate <= 3145728)) {
-               *divisor = 3145728 / baudRate;
-               *clk_sel_val = 0x70;
-       }
-       return 0;
-}
-
 static void ATEN2011_change_port_settings(struct tty_struct *tty,
                                          struct ATENINTL_port *ATEN2011_port,
                                          struct ktermios *old_termios)
@@ -2988,7 +2913,41 @@ static struct usb_serial *ATEN2011_get_usb_serial(struct usb_serial_port *port,
        return port->serial;
 }
 
-int __init ATENINTL2011_init(void)
+static struct usb_serial_driver ATENINTL2011_4port_device = {
+       .driver = {
+               .owner =        THIS_MODULE,
+               .name =         "aten2011",
+               },
+       .description =          DRIVER_DESC,
+       .id_table =             id_table,
+       .open =                 ATEN2011_open,
+       .close =                ATEN2011_close,
+       .write =                ATEN2011_write,
+       .write_room =           ATEN2011_write_room,
+       .chars_in_buffer =      ATEN2011_chars_in_buffer,
+       .throttle =             ATEN2011_throttle,
+       .unthrottle =           ATEN2011_unthrottle,
+       .calc_num_ports =       ATEN2011_calc_num_ports,
+
+       .ioctl =                ATEN2011_ioctl,
+       .set_termios =          ATEN2011_set_termios,
+       .break_ctl =            ATEN2011_break,
+       .tiocmget =             ATEN2011_tiocmget,
+       .tiocmset =             ATEN2011_tiocmset,
+       .attach =               ATEN2011_startup,
+       .shutdown =             ATEN2011_shutdown,
+       .read_bulk_callback =   ATEN2011_bulk_in_callback,
+       .read_int_callback =    ATEN2011_interrupt_callback,
+};
+
+static struct usb_driver aten_driver = {
+       .name =         "aten2011",
+       .probe =        usb_serial_probe,
+       .disconnect =   usb_serial_disconnect,
+       .id_table =     id_table,
+};
+
+static int __init ATENINTL2011_init(void)
 {
        int retval;
 
@@ -3005,7 +2964,7 @@ int __init ATENINTL2011_init(void)
               DRIVER_DESC " " DRIVER_VERSION "\n");
 
        /* Register with the usb */
-       retval = usb_register(&io_driver);
+       retval = usb_register(&aten_driver);
 
        if (retval)
                goto failed_usb_register;
@@ -3023,12 +2982,12 @@ int __init ATENINTL2011_init(void)
        return retval;
 }
 
-void __exit ATENINTL2011_exit(void)
+static void __exit ATENINTL2011_exit(void)
 {
 
        DPRINTK("%s \n", " ATEN2011_exit :entering..........");
 
-       usb_deregister(&io_driver);
+       usb_deregister(&aten_driver);
 
        usb_serial_deregister(&ATENINTL2011_4port_device);