usb_serial: API all change
[pandora-kernel.git] / drivers / usb / serial / empeg.c
index a5c8e1e..47ebdf5 100644 (file)
@@ -31,7 +31,7 @@
  *     Moved MOD_DEC_USE_COUNT to end of empeg_close().
  * 
  * (12/03/2000) gb
- *     Added port->tty->ldisc.set_termios(port->tty, NULL) to empeg_open()
+ *     Added port->port.tty->ldisc.set_termios(port->port.tty, NULL) to empeg_open()
  *     This notifies the tty driver that the termios have changed.
  * 
  * (11/13/2000) gb
@@ -77,22 +77,18 @@ static int debug;
 #define EMPEG_PRODUCT_ID               0x0001
 
 /* function prototypes for an empeg-car player */
-static int  empeg_open                 (struct usb_serial_port *port, struct file *filp);
-static void empeg_close                        (struct usb_serial_port *port, struct file *filp);
-static int  empeg_write                        (struct usb_serial_port *port,
+static int  empeg_open                 (struct tty_struct *tty, struct usb_serial_port *port, struct file *filp);
+static void empeg_close                        (struct tty_struct *tty, struct usb_serial_port *port, struct file *filp);
+static int  empeg_write                        (struct tty_struct *tty, struct usb_serial_port *port,
                                        const unsigned char *buf,
                                        int count);
-static int  empeg_write_room           (struct usb_serial_port *port);
-static int  empeg_chars_in_buffer      (struct usb_serial_port *port);
-static void empeg_throttle             (struct usb_serial_port *port);
-static void empeg_unthrottle           (struct usb_serial_port *port);
+static int  empeg_write_room           (struct tty_struct *tty);
+static int  empeg_chars_in_buffer      (struct tty_struct *tty);
+static void empeg_throttle             (struct tty_struct *tty);
+static void empeg_unthrottle           (struct tty_struct *tty);
 static int  empeg_startup              (struct usb_serial *serial);
 static void empeg_shutdown             (struct usb_serial *serial);
-static int  empeg_ioctl                        (struct usb_serial_port *port,
-                                       struct file * file,
-                                       unsigned int cmd,
-                                       unsigned long arg);
-static void empeg_set_termios          (struct usb_serial_port *port, struct ktermios *old_termios);
+static void empeg_set_termios          (struct tty_struct *tty, struct usb_serial_port *port, struct ktermios *old_termios);
 static void empeg_write_bulk_callback  (struct urb *urb);
 static void empeg_read_bulk_callback   (struct urb *urb);
 
@@ -118,9 +114,6 @@ static struct usb_serial_driver empeg_device = {
        },
        .id_table =             id_table,
        .usb_driver =           &empeg_driver,
-       .num_interrupt_in =     0,
-       .num_bulk_in =          1,
-       .num_bulk_out =         1,
        .num_ports =            1,
        .open =                 empeg_open,
        .close =                empeg_close,
@@ -128,7 +121,6 @@ static struct usb_serial_driver empeg_device = {
        .unthrottle =           empeg_unthrottle,
        .attach =               empeg_startup,
        .shutdown =             empeg_shutdown,
-       .ioctl =                empeg_ioctl,
        .set_termios =          empeg_set_termios,
        .write =                empeg_write,
        .write_room =           empeg_write_room,
@@ -148,15 +140,16 @@ static int                bytes_out;
 /******************************************************************************
  * Empeg specific driver functions
  ******************************************************************************/
-static int empeg_open (struct usb_serial_port *port, struct file *filp)
+static int empeg_open(struct tty_struct *tty, struct usb_serial_port *port,
+                               struct file *filp)
 {
        struct usb_serial *serial = port->serial;
        int result = 0;
 
-       dbg("%s - port %d", __FUNCTION__, port->number);
+       dbg("%s - port %d", __func__, port->number);
 
        /* Force default termio settings */
-       empeg_set_termios (port, NULL) ;
+       empeg_set_termios (tty, port, NULL) ;
 
        bytes_in = 0;
        bytes_out = 0;
@@ -175,15 +168,16 @@ static int empeg_open (struct usb_serial_port *port, struct file *filp)
        result = usb_submit_urb(port->read_urb, GFP_KERNEL);
 
        if (result)
-               dev_err(&port->dev, "%s - failed submitting read urb, error %d\n", __FUNCTION__, result);
+               dev_err(&port->dev, "%s - failed submitting read urb, error %d\n", __func__, result);
 
        return result;
 }
 
 
-static void empeg_close (struct usb_serial_port *port, struct file * filp)
+static void empeg_close(struct tty_struct *tty, struct usb_serial_port *port,
+                               struct file * filp)
 {
-       dbg("%s - port %d", __FUNCTION__, port->number);
+       dbg("%s - port %d", __func__, port->number);
 
        /* shutdown our bulk read */
        usb_kill_urb(port->read_urb);
@@ -192,7 +186,7 @@ static void empeg_close (struct usb_serial_port *port, struct file * filp)
 }
 
 
-static int empeg_write (struct usb_serial_port *port, const unsigned char *buf, int count)
+static int empeg_write(struct tty_struct *tty, struct usb_serial_port *port, const unsigned char *buf, int count)
 {
        struct usb_serial *serial = port->serial;
        struct urb *urb;
@@ -203,10 +197,9 @@ static int empeg_write (struct usb_serial_port *port, const unsigned char *buf,
        int bytes_sent = 0;
        int transfer_size;
 
-       dbg("%s - port %d", __FUNCTION__, port->number);
+       dbg("%s - port %d", __func__, port->number);
 
        while (count > 0) {
-
                /* try to find a free urb in our list of them */
                urb = NULL;
 
@@ -222,14 +215,14 @@ static int empeg_write (struct usb_serial_port *port, const unsigned char *buf,
                spin_unlock_irqrestore (&write_urb_pool_lock, flags);
 
                if (urb == NULL) {
-                       dbg("%s - no more free urbs", __FUNCTION__);
+                       dbg("%s - no more free urbs", __func__);
                        goto exit;
                }
 
                if (urb->transfer_buffer == NULL) {
                        urb->transfer_buffer = kmalloc (URB_TRANSFER_BUFFER_SIZE, GFP_ATOMIC);
                        if (urb->transfer_buffer == NULL) {
-                               dev_err(&port->dev, "%s no more kernel memory...\n", __FUNCTION__);
+                               dev_err(&port->dev, "%s no more kernel memory...\n", __func__);
                                goto exit;
                        }
                }
@@ -238,7 +231,7 @@ static int empeg_write (struct usb_serial_port *port, const unsigned char *buf,
 
                memcpy (urb->transfer_buffer, current_position, transfer_size);
 
-               usb_serial_debug_data(debug, &port->dev, __FUNCTION__, transfer_size, urb->transfer_buffer);
+               usb_serial_debug_data(debug, &port->dev, __func__, transfer_size, urb->transfer_buffer);
 
                /* build up our urb */
                usb_fill_bulk_urb (
@@ -254,7 +247,7 @@ static int empeg_write (struct usb_serial_port *port, const unsigned char *buf,
                /* send it down the pipe */
                status = usb_submit_urb(urb, GFP_ATOMIC);
                if (status) {
-                       dev_err(&port->dev, "%s - usb_submit_urb(write bulk) failed with status = %d\n", __FUNCTION__, status);
+                       dev_err(&port->dev, "%s - usb_submit_urb(write bulk) failed with status = %d\n", __func__, status);
                        bytes_sent = status;
                        break;
                }
@@ -265,46 +258,42 @@ static int empeg_write (struct usb_serial_port *port, const unsigned char *buf,
                bytes_out += transfer_size;
 
        }
-
 exit:
        return bytes_sent;
-
 } 
 
 
-static int empeg_write_room (struct usb_serial_port *port)
+static int empeg_write_room(struct tty_struct *tty)
 {
+       struct usb_serial_port *port = tty->driver_data;
        unsigned long flags;
        int i;
        int room = 0;
 
-       dbg("%s - port %d", __FUNCTION__, port->number);
+       dbg("%s - port %d", __func__, port->number);
 
        spin_lock_irqsave (&write_urb_pool_lock, flags);
-
        /* tally up the number of bytes available */
        for (i = 0; i < NUM_URBS; ++i) {
                if (write_urb_pool[i]->status != -EINPROGRESS) {
                        room += URB_TRANSFER_BUFFER_SIZE;
                }
        } 
-
        spin_unlock_irqrestore (&write_urb_pool_lock, flags);
-
-       dbg("%s - returns %d", __FUNCTION__, room);
-
-       return (room);
+       dbg("%s - returns %d", __func__, room);
+       return room;
 
 }
 
 
-static int empeg_chars_in_buffer (struct usb_serial_port *port)
+static int empeg_chars_in_buffer(struct tty_struct *tty)
 {
+       struct usb_serial_port *port = tty->driver_data;
        unsigned long flags;
        int i;
        int chars = 0;
 
-       dbg("%s - port %d", __FUNCTION__, port->number);
+       dbg("%s - port %d", __func__, port->number);
 
        spin_lock_irqsave (&write_urb_pool_lock, flags);
 
@@ -317,7 +306,7 @@ static int empeg_chars_in_buffer (struct usb_serial_port *port)
 
        spin_unlock_irqrestore (&write_urb_pool_lock, flags);
 
-       dbg("%s - returns %d", __FUNCTION__, chars);
+       dbg("%s - returns %d", __func__, chars);
 
        return (chars);
 
@@ -329,11 +318,11 @@ static void empeg_write_bulk_callback (struct urb *urb)
        struct usb_serial_port *port = urb->context;
        int status = urb->status;
 
-       dbg("%s - port %d", __FUNCTION__, port->number);
+       dbg("%s - port %d", __func__, port->number);
 
        if (status) {
                dbg("%s - nonzero write bulk status received: %d",
-                   __FUNCTION__, status);
+                   __func__, status);
                return;
        }
 
@@ -343,23 +332,23 @@ static void empeg_write_bulk_callback (struct urb *urb)
 
 static void empeg_read_bulk_callback (struct urb *urb)
 {
-       struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
+       struct usb_serial_port *port = urb->context;
        struct tty_struct *tty;
        unsigned char *data = urb->transfer_buffer;
        int result;
        int status = urb->status;
 
-       dbg("%s - port %d", __FUNCTION__, port->number);
+       dbg("%s - port %d", __func__, port->number);
 
        if (status) {
                dbg("%s - nonzero read bulk status received: %d",
-                   __FUNCTION__, status);
+                   __func__, status);
                return;
        }
 
-       usb_serial_debug_data(debug, &port->dev, __FUNCTION__, urb->actual_length, data);
+       usb_serial_debug_data(debug, &port->dev, __func__, urb->actual_length, data);
 
-       tty = port->tty;
+       tty = port->port.tty;
 
        if (urb->actual_length) {
                tty_buffer_request_room(tty, urb->actual_length);
@@ -382,34 +371,31 @@ static void empeg_read_bulk_callback (struct urb *urb)
        result = usb_submit_urb(port->read_urb, GFP_ATOMIC);
 
        if (result)
-               dev_err(&urb->dev->dev, "%s - failed resubmitting read urb, error %d\n", __FUNCTION__, result);
+               dev_err(&urb->dev->dev, "%s - failed resubmitting read urb, error %d\n", __func__, result);
 
        return;
 
 }
 
 
-static void empeg_throttle (struct usb_serial_port *port)
+static void empeg_throttle(struct tty_struct *tty)
 {
-       dbg("%s - port %d", __FUNCTION__, port->number);
+       struct usb_serial_port *port = tty->driver_data;
+       dbg("%s - port %d", __func__, port->number);
        usb_kill_urb(port->read_urb);
 }
 
 
-static void empeg_unthrottle (struct usb_serial_port *port)
+static void empeg_unthrottle(struct tty_struct *tty)
 {
+       struct usb_serial_port *port = tty->driver_data;
        int result;
-
-       dbg("%s - port %d", __FUNCTION__, port->number);
+       dbg("%s - port %d", __func__, port->number);
 
        port->read_urb->dev = port->serial->dev;
-
        result = usb_submit_urb(port->read_urb, GFP_ATOMIC);
-
        if (result)
-               dev_err(&port->dev, "%s - failed submitting read urb, error %d\n", __FUNCTION__, result);
-
-       return;
+               dev_err(&port->dev, "%s - failed submitting read urb, error %d\n", __func__, result);
 }
 
 
@@ -417,14 +403,14 @@ static int  empeg_startup (struct usb_serial *serial)
 {
        int r;
 
-       dbg("%s", __FUNCTION__);
+       dbg("%s", __func__);
 
        if (serial->dev->actconfig->desc.bConfigurationValue != 1) {
                err("active config #%d != 1 ??",
                        serial->dev->actconfig->desc.bConfigurationValue);
                return -ENODEV;
        }
-       dbg("%s - reset config", __FUNCTION__);
+       dbg("%s - reset config", __func__);
        r = usb_reset_configuration (serial->dev);
 
        /* continue on with initialization */
@@ -435,22 +421,15 @@ static int  empeg_startup (struct usb_serial *serial)
 
 static void empeg_shutdown (struct usb_serial *serial)
 {
-       dbg ("%s", __FUNCTION__);
-}
-
-
-static int empeg_ioctl (struct usb_serial_port *port, struct file * file, unsigned int cmd, unsigned long arg)
-{
-       dbg("%s - port %d, cmd 0x%.4x", __FUNCTION__, port->number, cmd);
-
-       return -ENOIOCTLCMD;
+       dbg ("%s", __func__);
 }
 
 
-static void empeg_set_termios (struct usb_serial_port *port, struct ktermios *old_termios)
+static void empeg_set_termios(struct tty_struct *tty,
+               struct usb_serial_port *port, struct ktermios *old_termios)
 {
-       struct ktermios *termios = port->tty->termios;
-       dbg("%s - port %d", __FUNCTION__, port->number);
+       struct ktermios *termios = tty->termios;
+       dbg("%s - port %d", __func__, port->number);
 
        /*
          * The empeg-car player wants these particular tty settings.
@@ -494,8 +473,8 @@ static void empeg_set_termios (struct usb_serial_port *port, struct ktermios *ol
         * this is bad as it opens up the possibility of dropping bytes
         * on the floor.  We don't want to drop bytes on the floor. :)
         */
-       port->tty->low_latency = 1;
-       tty_encode_baud_rate(port->tty, 115200, 115200);
+       tty->low_latency = 1;
+       tty_encode_baud_rate(tty, 115200, 115200);
 }
 
 
@@ -517,7 +496,7 @@ static int __init empeg_init (void)
                urb->transfer_buffer = kmalloc (URB_TRANSFER_BUFFER_SIZE, GFP_KERNEL);
                if (!urb->transfer_buffer) {
                        err("%s - out of memory for urb buffers.", 
-                           __FUNCTION__);
+                           __func__);
                        continue;
                }
        }