patch-2.4.20 linux-2.4.20/drivers/usb/serial/empeg.c
Next file: linux-2.4.20/drivers/usb/serial/ftdi_sio.c
Previous file: linux-2.4.20/drivers/usb/serial/digi_acceleport.c
Back to the patch index
Back to the overall index
- Lines: 392
- Date:
Thu Nov 28 15:53:14 2002
- Orig file:
linux-2.4.19/drivers/usb/serial/empeg.c
- Orig date:
Fri Dec 21 09:41:55 2001
diff -urN linux-2.4.19/drivers/usb/serial/empeg.c linux-2.4.20/drivers/usb/serial/empeg.c
@@ -53,18 +53,15 @@
#include <linux/config.h>
#include <linux/kernel.h>
-#include <linux/sched.h>
-#include <linux/signal.h>
#include <linux/errno.h>
-#include <linux/poll.h>
#include <linux/init.h>
#include <linux/slab.h>
-#include <linux/fcntl.h>
#include <linux/tty.h>
#include <linux/tty_driver.h>
#include <linux/tty_flip.h>
#include <linux/module.h>
#include <linux/spinlock.h>
+#include <asm/uaccess.h>
#include <linux/usb.h>
#ifdef CONFIG_USB_SERIAL_DEBUG
@@ -106,7 +103,7 @@
static void empeg_write_bulk_callback (struct urb *urb);
static void empeg_read_bulk_callback (struct urb *urb);
-static __devinitdata struct usb_device_id id_table [] = {
+static struct usb_device_id id_table [] = {
{ USB_DEVICE(EMPEG_VENDOR_ID, EMPEG_PRODUCT_ID) },
{ } /* Terminating entry */
};
@@ -114,28 +111,26 @@
MODULE_DEVICE_TABLE (usb, id_table);
static struct usb_serial_device_type empeg_device = {
- name: "Empeg",
- id_table: id_table,
- needs_interrupt_in: MUST_HAVE_NOT, /* must not have an interrupt in endpoint */
- needs_bulk_in: MUST_HAVE, /* must have a bulk in endpoint */
- needs_bulk_out: MUST_HAVE, /* must have a bulk out endpoint */
- num_interrupt_in: 0,
- num_bulk_in: 1,
- num_bulk_out: 1,
- num_ports: 1,
- open: empeg_open,
- close: empeg_close,
- throttle: empeg_throttle,
- unthrottle: empeg_unthrottle,
- startup: empeg_startup,
- shutdown: empeg_shutdown,
- ioctl: empeg_ioctl,
- set_termios: empeg_set_termios,
- write: empeg_write,
- write_room: empeg_write_room,
- chars_in_buffer: empeg_chars_in_buffer,
- write_bulk_callback: empeg_write_bulk_callback,
- read_bulk_callback: empeg_read_bulk_callback,
+ .owner = THIS_MODULE,
+ .name = "Empeg",
+ .id_table = id_table,
+ .num_interrupt_in = 0,
+ .num_bulk_in = 1,
+ .num_bulk_out = 1,
+ .num_ports = 1,
+ .open = empeg_open,
+ .close = empeg_close,
+ .throttle = empeg_throttle,
+ .unthrottle = empeg_unthrottle,
+ .startup = empeg_startup,
+ .shutdown = empeg_shutdown,
+ .ioctl = empeg_ioctl,
+ .set_termios = empeg_set_termios,
+ .write = empeg_write,
+ .write_room = empeg_write_room,
+ .chars_in_buffer = empeg_chars_in_buffer,
+ .write_bulk_callback = empeg_write_bulk_callback,
+ .read_bulk_callback = empeg_read_bulk_callback,
};
#define NUM_URBS 16
@@ -157,43 +152,31 @@
if (port_paranoia_check (port, __FUNCTION__))
return -ENODEV;
- dbg(__FUNCTION__ " - port %d", port->number);
+ dbg("%s - port %d", __FUNCTION__, port->number);
- down (&port->sem);
+ /* Force default termio settings */
+ empeg_set_termios (port, NULL) ;
- ++port->open_count;
- MOD_INC_USE_COUNT;
+ bytes_in = 0;
+ bytes_out = 0;
- if (!port->active) {
-
- /* Force default termio settings */
- empeg_set_termios (port, NULL) ;
-
- port->active = 1;
- bytes_in = 0;
- bytes_out = 0;
-
- /* Start reading from the device */
- 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,
- empeg_read_bulk_callback,
- port);
-
- port->read_urb->transfer_flags |= USB_QUEUE_BULK;
-
- result = usb_submit_urb(port->read_urb);
+ /* Start reading from the device */
+ 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,
+ empeg_read_bulk_callback,
+ port);
- if (result)
- err(__FUNCTION__ " - failed submitting read urb, error %d", result);
+ port->read_urb->transfer_flags |= USB_QUEUE_BULK;
- }
+ result = usb_submit_urb(port->read_urb);
- up (&port->sem);
+ if (result)
+ err("%s - failed submitting read urb, error %d", __FUNCTION__, result);
return result;
}
@@ -206,31 +189,18 @@
if (port_paranoia_check (port, __FUNCTION__))
return;
- dbg(__FUNCTION__ " - port %d", port->number);
+ dbg("%s - port %d", __FUNCTION__, port->number);
serial = get_usb_serial (port, __FUNCTION__);
if (!serial)
return;
- down (&port->sem);
-
- --port->open_count;
-
- if (port->open_count <= 0) {
- if (serial->dev) {
- /* shutdown our bulk read */
- usb_unlink_urb (port->read_urb);
- }
- port->active = 0;
- port->open_count = 0;
+ if (serial->dev) {
+ /* shutdown our bulk read */
+ usb_unlink_urb (port->read_urb);
}
-
- up (&port->sem);
-
/* Uncomment the following line if you want to see some statistics in your syslog */
/* info ("Bytes In = %d Bytes Out = %d", bytes_in, bytes_out); */
-
- MOD_DEC_USE_COUNT;
}
@@ -245,7 +215,7 @@
int bytes_sent = 0;
int transfer_size;
- dbg(__FUNCTION__ " - port %d", port->number);
+ dbg("%s - port %d", __FUNCTION__, port->number);
usb_serial_debug_data (__FILE__, __FUNCTION__, count, buf);
@@ -266,14 +236,14 @@
spin_unlock_irqrestore (&write_urb_pool_lock, flags);
if (urb == NULL) {
- dbg (__FUNCTION__ " - no more free urbs");
+ dbg("%s - no more free urbs", __FUNCTION__);
goto exit;
}
if (urb->transfer_buffer == NULL) {
- urb->transfer_buffer = kmalloc (URB_TRANSFER_BUFFER_SIZE, GFP_KERNEL);
+ urb->transfer_buffer = kmalloc (URB_TRANSFER_BUFFER_SIZE, GFP_ATOMIC);
if (urb->transfer_buffer == NULL) {
- err(__FUNCTION__" no more kernel memory...");
+ err("%s no more kernel memory...", __FUNCTION__);
goto exit;
}
}
@@ -305,7 +275,7 @@
/* send it down the pipe */
status = usb_submit_urb(urb);
if (status) {
- err(__FUNCTION__ " - usb_submit_urb(write bulk) failed with status = %d", status);
+ err("%s - usb_submit_urb(write bulk) failed with status = %d", __FUNCTION__, status);
bytes_sent = status;
break;
}
@@ -329,7 +299,7 @@
int i;
int room = 0;
- dbg(__FUNCTION__ " - port %d", port->number);
+ dbg("%s - port %d", __FUNCTION__, port->number);
spin_lock_irqsave (&write_urb_pool_lock, flags);
@@ -342,7 +312,7 @@
spin_unlock_irqrestore (&write_urb_pool_lock, flags);
- dbg(__FUNCTION__ " - returns %d", room);
+ dbg("%s - returns %d", __FUNCTION__, room);
return (room);
@@ -355,7 +325,7 @@
int i;
int chars = 0;
- dbg(__FUNCTION__ " - port %d", port->number);
+ dbg("%s - port %d", __FUNCTION__, port->number);
spin_lock_irqsave (&write_urb_pool_lock, flags);
@@ -368,7 +338,7 @@
spin_unlock_irqrestore (&write_urb_pool_lock, flags);
- dbg (__FUNCTION__ " - returns %d", chars);
+ dbg("%s - returns %d", __FUNCTION__, chars);
return (chars);
@@ -382,10 +352,10 @@
if (port_paranoia_check (port, __FUNCTION__))
return;
- dbg(__FUNCTION__ " - port %d", port->number);
+ dbg("%s - port %d", __FUNCTION__, port->number);
if (urb->status) {
- dbg(__FUNCTION__ " - nonzero write bulk status received: %d", urb->status);
+ dbg("%s - nonzero write bulk status received: %d", __FUNCTION__, urb->status);
return;
}
@@ -409,15 +379,15 @@
if (port_paranoia_check (port, __FUNCTION__))
return;
- dbg(__FUNCTION__ " - port %d", port->number);
+ dbg("%s - port %d", __FUNCTION__, port->number);
if (!serial) {
- dbg(__FUNCTION__ " - bad serial pointer, exiting");
+ dbg("%s - bad serial pointer, exiting", __FUNCTION__);
return;
}
if (urb->status) {
- dbg(__FUNCTION__ " - nonzero read bulk status received: %d", urb->status);
+ dbg("%s - nonzero read bulk status received: %d", __FUNCTION__, urb->status);
return;
}
@@ -459,7 +429,7 @@
result = usb_submit_urb(port->read_urb);
if (result)
- err(__FUNCTION__ " - failed resubmitting read urb, error %d", result);
+ err("%s - failed resubmitting read urb, error %d", __FUNCTION__, result);
return;
@@ -468,16 +438,8 @@
static void empeg_throttle (struct usb_serial_port *port)
{
- dbg(__FUNCTION__ " - port %d", port->number);
-
- down (&port->sem);
-
+ dbg("%s - port %d", __FUNCTION__, port->number);
usb_unlink_urb (port->read_urb);
-
- up (&port->sem);
-
- return;
-
}
@@ -485,30 +447,25 @@
{
int result;
- dbg(__FUNCTION__ " - port %d", port->number);
-
- down (&port->sem);
+ dbg("%s - port %d", __FUNCTION__, port->number);
port->read_urb->dev = port->serial->dev;
result = usb_submit_urb(port->read_urb);
if (result)
- err(__FUNCTION__ " - failed submitting read urb, error %d", result);
-
- up (&port->sem);
+ err("%s - failed submitting read urb, error %d", __FUNCTION__, result);
return;
-
}
static int empeg_startup (struct usb_serial *serial)
{
- dbg(__FUNCTION__);
+ dbg("%s", __FUNCTION__);
- dbg(__FUNCTION__ " - Set config to 1");
+ dbg("%s - Set config to 1", __FUNCTION__);
usb_set_configuration (serial->dev, 1);
/* continue on with initialization */
@@ -519,23 +476,13 @@
static void empeg_shutdown (struct usb_serial *serial)
{
- int i;
-
- dbg (__FUNCTION__);
-
- /* stop reads and writes on all ports */
- for (i=0; i < serial->num_ports; ++i) {
- while (serial->port[i].open_count > 0) {
- empeg_close (&serial->port[i], NULL);
- }
- }
-
+ dbg ("%s", __FUNCTION__);
}
static int empeg_ioctl (struct usb_serial_port *port, struct file * file, unsigned int cmd, unsigned long arg)
{
- dbg(__FUNCTION__ " - port %d, cmd 0x%.4x", port->number, cmd);
+ dbg("%s - port %d, cmd 0x%.4x", __FUNCTION__, port->number, cmd);
return -ENOIOCTLCMD;
}
@@ -544,10 +491,10 @@
static void empeg_set_termios (struct usb_serial_port *port, struct termios *old_termios)
{
- dbg(__FUNCTION__ " - port %d", port->number);
+ dbg("%s - port %d", __FUNCTION__, port->number);
if ((!port->tty) || (!port->tty->termios)) {
- dbg(__FUNCTION__" - no tty structures");
+ dbg("%s - no tty structures", __FUNCTION__);
return;
}
@@ -624,7 +571,8 @@
urb->transfer_buffer = NULL;
urb->transfer_buffer = kmalloc (URB_TRANSFER_BUFFER_SIZE, GFP_KERNEL);
if (!urb->transfer_buffer) {
- err (__FUNCTION__ " - out of memory for urb buffers.");
+ err("%s - out of memory for urb buffers.",
+ __FUNCTION__);
continue;
}
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)