patch-2.4.20 linux-2.4.20/drivers/usb/serial/omninet.c
Next file: linux-2.4.20/drivers/usb/serial/pl2303.c
Previous file: linux-2.4.20/drivers/usb/serial/mct_u232.c
Back to the patch index
Back to the overall index
- Lines: 239
- Date:
Thu Nov 28 15:53:15 2002
- Orig file:
linux-2.4.19/drivers/usb/serial/omninet.c
- Orig date:
Fri Dec 21 09:41:55 2001
diff -urN linux-2.4.19/drivers/usb/serial/omninet.c linux-2.4.20/drivers/usb/serial/omninet.c
@@ -37,18 +37,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
@@ -79,7 +76,7 @@
static int omninet_write_room (struct usb_serial_port *port);
static void omninet_shutdown (struct usb_serial *serial);
-static __devinitdata struct usb_device_id id_table [] = {
+static struct usb_device_id id_table [] = {
{ USB_DEVICE(ZYXEL_VENDOR_ID, ZYXEL_OMNINET_ID) },
{ } /* Terminating entry */
};
@@ -88,22 +85,20 @@
static struct usb_serial_device_type zyxel_omninet_device = {
- name: "ZyXEL - omni.net lcd plus usb",
- id_table: id_table,
- needs_interrupt_in: MUST_HAVE,
- needs_bulk_in: MUST_HAVE,
- needs_bulk_out: MUST_HAVE,
- num_interrupt_in: 1,
- num_bulk_in: 1,
- num_bulk_out: 2,
- num_ports: 1,
- open: omninet_open,
- close: omninet_close,
- write: omninet_write,
- write_room: omninet_write_room,
- read_bulk_callback: omninet_read_bulk_callback,
- write_bulk_callback: omninet_write_bulk_callback,
- shutdown: omninet_shutdown,
+ .owner = THIS_MODULE,
+ .name = "ZyXEL - omni.net lcd plus usb",
+ .id_table = id_table,
+ .num_interrupt_in = 1,
+ .num_bulk_in = 1,
+ .num_bulk_out = 2,
+ .num_ports = 1,
+ .open = omninet_open,
+ .close = omninet_close,
+ .write = omninet_write,
+ .write_room = omninet_write_room,
+ .read_bulk_callback = omninet_read_bulk_callback,
+ .write_bulk_callback = omninet_write_bulk_callback,
+ .shutdown = omninet_shutdown,
};
@@ -153,45 +148,30 @@
if (port_paranoia_check (port, __FUNCTION__))
return -ENODEV;
- dbg(__FUNCTION__ " - port %d", port->number);
+ dbg("%s - port %d", __FUNCTION__, port->number);
serial = get_usb_serial (port, __FUNCTION__);
if (!serial)
return -ENODEV;
- down (&port->sem);
-
- MOD_INC_USE_COUNT;
- ++port->open_count;
-
- if (!port->active) {
- port->active = 1;
-
- od = kmalloc( sizeof(struct omninet_data), GFP_KERNEL );
- if( !od ) {
- err(__FUNCTION__"- kmalloc(%Zd) failed.", sizeof(struct omninet_data));
- --port->open_count;
- port->active = 0;
- up (&port->sem);
- MOD_DEC_USE_COUNT;
- return -ENOMEM;
- }
-
- port->private = od;
- wport = &serial->port[1];
- wport->tty = port->tty;
-
- /* 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,
- omninet_read_bulk_callback, port);
- result = usb_submit_urb(port->read_urb);
- if (result)
- err(__FUNCTION__ " - failed submitting read urb, error %d", result);
+ od = kmalloc( sizeof(struct omninet_data), GFP_KERNEL );
+ if( !od ) {
+ err("%s- kmalloc(%Zd) failed.", __FUNCTION__, sizeof(struct omninet_data));
+ return -ENOMEM;
}
- up (&port->sem);
+ port->private = od;
+ wport = &serial->port[1];
+ wport->tty = port->tty;
+
+ /* 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,
+ omninet_read_bulk_callback, port);
+ result = usb_submit_urb(port->read_urb);
+ if (result)
+ err("%s - failed submitting read urb, error %d", __FUNCTION__, result);
return result;
}
@@ -205,32 +185,21 @@
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) {
- wport = &serial->port[1];
- usb_unlink_urb (wport->write_urb);
- usb_unlink_urb (port->read_urb);
- }
-
- port->active = 0;
- port->open_count = 0;
- od = (struct omninet_data *)port->private;
- if (od)
- kfree(od);
+ if (serial->dev) {
+ wport = &serial->port[1];
+ usb_unlink_urb (wport->write_urb);
+ usb_unlink_urb (port->read_urb);
}
- up (&port->sem);
- MOD_DEC_USE_COUNT;
+ od = (struct omninet_data *)port->private;
+ if (od)
+ kfree(od);
}
@@ -252,12 +221,12 @@
// dbg("omninet_read_bulk_callback");
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;
}
@@ -285,7 +254,7 @@
omninet_read_bulk_callback, port);
result = usb_submit_urb(urb);
if (result)
- err(__FUNCTION__ " - failed resubmitting read urb, error %d", result);
+ err("%s - failed resubmitting read urb, error %d", __FUNCTION__, result);
return;
}
@@ -303,11 +272,11 @@
// dbg("omninet_write port %d", port->number);
if (count == 0) {
- dbg(__FUNCTION__" - write request of 0 bytes");
+ dbg("%s - write request of 0 bytes", __FUNCTION__);
return (0);
}
if (wport->write_urb->status == -EINPROGRESS) {
- dbg (__FUNCTION__" - already writing");
+ dbg("%s - already writing", __FUNCTION__);
return (0);
}
@@ -336,7 +305,7 @@
wport->write_urb->dev = serial->dev;
result = usb_submit_urb(wport->write_urb);
if (result)
- err(__FUNCTION__ " - failed submitting write urb, error %d", result);
+ err("%s - failed submitting write urb, error %d", __FUNCTION__, result);
else
result = count;
@@ -379,7 +348,7 @@
}
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;
}
@@ -394,11 +363,7 @@
static void omninet_shutdown (struct usb_serial *serial)
{
- dbg (__FUNCTION__);
-
- while (serial->port[0].open_count > 0) {
- omninet_close (&serial->port[0], NULL);
- }
+ dbg ("%s", __FUNCTION__);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)