|
@@ -53,7 +53,7 @@
|
|
|
#include <linux/tty_flip.h>
|
|
|
#include <linux/module.h>
|
|
|
#include <linux/spinlock.h>
|
|
|
-#include <asm/uaccess.h>
|
|
|
+#include <linux/uaccess.h>
|
|
|
#include <linux/usb.h>
|
|
|
#include <linux/usb/serial.h>
|
|
|
#include "ipaq.h"
|
|
@@ -82,10 +82,10 @@ static int ipaq_startup(struct usb_serial *serial);
|
|
|
static void ipaq_shutdown(struct usb_serial *serial);
|
|
|
static int ipaq_write(struct tty_struct *tty, struct usb_serial_port *port,
|
|
|
const unsigned char *buf, int count);
|
|
|
-static int ipaq_write_bulk(struct usb_serial_port *port, const unsigned char *buf,
|
|
|
- int count);
|
|
|
+static int ipaq_write_bulk(struct usb_serial_port *port,
|
|
|
+ const unsigned char *buf, int count);
|
|
|
static void ipaq_write_gather(struct usb_serial_port *port);
|
|
|
-static void ipaq_read_bulk_callback (struct urb *urb);
|
|
|
+static void ipaq_read_bulk_callback(struct urb *urb);
|
|
|
static void ipaq_write_bulk_callback(struct urb *urb);
|
|
|
static int ipaq_write_room(struct tty_struct *tty);
|
|
|
static int ipaq_chars_in_buffer(struct tty_struct *tty);
|
|
@@ -552,7 +552,7 @@ static struct usb_device_id ipaq_id_table [] = {
|
|
|
{ } /* Terminating entry */
|
|
|
};
|
|
|
|
|
|
-MODULE_DEVICE_TABLE (usb, ipaq_id_table);
|
|
|
+MODULE_DEVICE_TABLE(usb, ipaq_id_table);
|
|
|
|
|
|
static struct usb_driver ipaq_driver = {
|
|
|
.name = "ipaq",
|
|
@@ -620,9 +620,9 @@ static int ipaq_open(struct tty_struct *tty,
|
|
|
|
|
|
for (i = 0; i < URBDATA_QUEUE_MAX / PACKET_SIZE; i++) {
|
|
|
pkt = kmalloc(sizeof(struct ipaq_packet), GFP_KERNEL);
|
|
|
- if (pkt == NULL) {
|
|
|
+ if (pkt == NULL)
|
|
|
goto enomem;
|
|
|
- }
|
|
|
+
|
|
|
pkt->data = kmalloc(PACKET_SIZE, GFP_KERNEL);
|
|
|
if (pkt->data == NULL) {
|
|
|
kfree(pkt);
|
|
@@ -667,8 +667,9 @@ static int ipaq_open(struct tty_struct *tty,
|
|
|
port->read_urb->transfer_buffer = port->bulk_in_buffer;
|
|
|
port->write_urb->transfer_buffer = port->bulk_out_buffer;
|
|
|
port->read_urb->transfer_buffer_length = URBDATA_SIZE;
|
|
|
- port->bulk_out_size = port->write_urb->transfer_buffer_length = URBDATA_SIZE;
|
|
|
-
|
|
|
+ port->bulk_out_size = port->write_urb->transfer_buffer_length
|
|
|
+ = URBDATA_SIZE;
|
|
|
+
|
|
|
msleep(1000*initial_wait);
|
|
|
|
|
|
/*
|
|
@@ -697,13 +698,15 @@ static int ipaq_open(struct tty_struct *tty,
|
|
|
|
|
|
/* Start reading from the device */
|
|
|
usb_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,
|
|
|
- ipaq_read_bulk_callback, port);
|
|
|
+ usb_rcvbulkpipe(serial->dev, port->bulk_in_endpointAddress),
|
|
|
+ port->read_urb->transfer_buffer,
|
|
|
+ port->read_urb->transfer_buffer_length,
|
|
|
+ ipaq_read_bulk_callback, port);
|
|
|
|
|
|
result = usb_submit_urb(port->read_urb, GFP_KERNEL);
|
|
|
if (result) {
|
|
|
- err("%s - failed submitting read urb, error %d", __func__, result);
|
|
|
+ err("%s - failed submitting read urb, error %d",
|
|
|
+ __func__, result);
|
|
|
goto error;
|
|
|
}
|
|
|
|
|
@@ -725,7 +728,7 @@ static void ipaq_close(struct tty_struct *tty,
|
|
|
struct ipaq_private *priv = usb_get_serial_port_data(port);
|
|
|
|
|
|
dbg("%s - port %d", __func__, port->number);
|
|
|
-
|
|
|
+
|
|
|
/*
|
|
|
* shut down bulk read and write
|
|
|
*/
|
|
@@ -735,7 +738,8 @@ static void ipaq_close(struct tty_struct *tty,
|
|
|
kfree(priv);
|
|
|
usb_set_serial_port_data(port, NULL);
|
|
|
|
|
|
- /* Uncomment the following line if you want to see some statistics in your syslog */
|
|
|
+ /* 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); */
|
|
|
}
|
|
|
|
|
@@ -755,7 +759,8 @@ static void ipaq_read_bulk_callback(struct urb *urb)
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- usb_serial_debug_data(debug, &port->dev, __func__, urb->actual_length, data);
|
|
|
+ usb_serial_debug_data(debug, &port->dev, __func__,
|
|
|
+ urb->actual_length, data);
|
|
|
|
|
|
tty = port->port.tty;
|
|
|
if (tty && urb->actual_length) {
|
|
@@ -766,13 +771,15 @@ static void ipaq_read_bulk_callback(struct urb *urb)
|
|
|
}
|
|
|
|
|
|
/* Continue trying to always read */
|
|
|
- usb_fill_bulk_urb(port->read_urb, port->serial->dev,
|
|
|
- usb_rcvbulkpipe(port->serial->dev, port->bulk_in_endpointAddress),
|
|
|
- port->read_urb->transfer_buffer, port->read_urb->transfer_buffer_length,
|
|
|
- ipaq_read_bulk_callback, port);
|
|
|
+ usb_fill_bulk_urb(port->read_urb, port->serial->dev,
|
|
|
+ usb_rcvbulkpipe(port->serial->dev, port->bulk_in_endpointAddress),
|
|
|
+ port->read_urb->transfer_buffer,
|
|
|
+ port->read_urb->transfer_buffer_length,
|
|
|
+ ipaq_read_bulk_callback, port);
|
|
|
result = usb_submit_urb(port->read_urb, GFP_ATOMIC);
|
|
|
if (result)
|
|
|
- err("%s - failed resubmitting read urb, error %d", __func__, result);
|
|
|
+ err("%s - failed resubmitting read urb, error %d",
|
|
|
+ __func__, result);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -787,9 +794,8 @@ static int ipaq_write(struct tty_struct *tty, struct usb_serial_port *port,
|
|
|
|
|
|
while (count > 0) {
|
|
|
transfer_size = min(count, PACKET_SIZE);
|
|
|
- if (ipaq_write_bulk(port, current_position, transfer_size)) {
|
|
|
+ if (ipaq_write_bulk(port, current_position, transfer_size))
|
|
|
break;
|
|
|
- }
|
|
|
current_position += transfer_size;
|
|
|
bytes_sent += transfer_size;
|
|
|
count -= transfer_size;
|
|
@@ -797,10 +803,10 @@ static int ipaq_write(struct tty_struct *tty, struct usb_serial_port *port,
|
|
|
}
|
|
|
|
|
|
return bytes_sent;
|
|
|
-}
|
|
|
+}
|
|
|
|
|
|
-static int ipaq_write_bulk(struct usb_serial_port *port, const unsigned char *buf,
|
|
|
- int count)
|
|
|
+static int ipaq_write_bulk(struct usb_serial_port *port,
|
|
|
+ const unsigned char *buf, int count)
|
|
|
{
|
|
|
struct ipaq_private *priv = usb_get_serial_port_data(port);
|
|
|
struct ipaq_packet *pkt = NULL;
|
|
@@ -837,9 +843,9 @@ static int ipaq_write_bulk(struct usb_serial_port *port, const unsigned char *bu
|
|
|
ipaq_write_gather(port);
|
|
|
spin_unlock_irqrestore(&write_list_lock, flags);
|
|
|
result = usb_submit_urb(port->write_urb, GFP_ATOMIC);
|
|
|
- if (result) {
|
|
|
- err("%s - failed submitting write urb, error %d", __func__, result);
|
|
|
- }
|
|
|
+ if (result)
|
|
|
+ err("%s - failed submitting write urb, error %d",
|
|
|
+ __func__, result);
|
|
|
} else {
|
|
|
spin_unlock_irqrestore(&write_list_lock, flags);
|
|
|
}
|
|
@@ -866,16 +872,15 @@ static void ipaq_write_gather(struct usb_serial_port *port)
|
|
|
list_move(&pkt->list, &priv->freelist);
|
|
|
priv->free_len += PACKET_SIZE;
|
|
|
}
|
|
|
- if (room == 0) {
|
|
|
+ if (room == 0)
|
|
|
break;
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
count = URBDATA_SIZE - room;
|
|
|
- usb_fill_bulk_urb(port->write_urb, serial->dev,
|
|
|
- usb_sndbulkpipe(serial->dev, port->bulk_out_endpointAddress),
|
|
|
- port->write_urb->transfer_buffer, count, ipaq_write_bulk_callback,
|
|
|
- port);
|
|
|
+ usb_fill_bulk_urb(port->write_urb, serial->dev,
|
|
|
+ usb_sndbulkpipe(serial->dev, port->bulk_out_endpointAddress),
|
|
|
+ port->write_urb->transfer_buffer, count,
|
|
|
+ ipaq_write_bulk_callback, port);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -900,9 +905,9 @@ static void ipaq_write_bulk_callback(struct urb *urb)
|
|
|
ipaq_write_gather(port);
|
|
|
spin_unlock_irqrestore(&write_list_lock, flags);
|
|
|
result = usb_submit_urb(port->write_urb, GFP_ATOMIC);
|
|
|
- if (result) {
|
|
|
- err("%s - failed submitting write urb, error %d", __func__, result);
|
|
|
- }
|
|
|
+ if (result)
|
|
|
+ err("%s - failed submitting write urb, error %d",
|
|
|
+ __func__, result);
|
|
|
} else {
|
|
|
priv->active = 0;
|
|
|
spin_unlock_irqrestore(&write_list_lock, flags);
|
|
@@ -953,7 +958,7 @@ static int ipaq_startup(struct usb_serial *serial)
|
|
|
serial->dev->actconfig->desc.bConfigurationValue);
|
|
|
return -ENODEV;
|
|
|
}
|
|
|
- return usb_reset_configuration (serial->dev);
|
|
|
+ return usb_reset_configuration(serial->dev);
|
|
|
}
|
|
|
|
|
|
static void ipaq_shutdown(struct usb_serial *serial)
|
|
@@ -966,7 +971,7 @@ static int __init ipaq_init(void)
|
|
|
int retval;
|
|
|
spin_lock_init(&write_list_lock);
|
|
|
retval = usb_serial_register(&ipaq_device);
|
|
|
- if (retval)
|
|
|
+ if (retval)
|
|
|
goto failed_usb_serial_register;
|
|
|
info(DRIVER_DESC " " DRIVER_VERSION);
|
|
|
if (vendor) {
|
|
@@ -976,7 +981,7 @@ static int __init ipaq_init(void)
|
|
|
retval = usb_register(&ipaq_driver);
|
|
|
if (retval)
|
|
|
goto failed_usb_register;
|
|
|
-
|
|
|
+
|
|
|
return 0;
|
|
|
failed_usb_register:
|
|
|
usb_serial_deregister(&ipaq_device);
|
|
@@ -995,8 +1000,8 @@ static void __exit ipaq_exit(void)
|
|
|
module_init(ipaq_init);
|
|
|
module_exit(ipaq_exit);
|
|
|
|
|
|
-MODULE_AUTHOR( DRIVER_AUTHOR );
|
|
|
-MODULE_DESCRIPTION( DRIVER_DESC );
|
|
|
+MODULE_AUTHOR(DRIVER_AUTHOR);
|
|
|
+MODULE_DESCRIPTION(DRIVER_DESC);
|
|
|
MODULE_LICENSE("GPL");
|
|
|
|
|
|
module_param(debug, bool, S_IRUGO | S_IWUSR);
|
|
@@ -1009,7 +1014,9 @@ module_param(product, ushort, 0);
|
|
|
MODULE_PARM_DESC(product, "User specified USB idProduct");
|
|
|
|
|
|
module_param(connect_retries, int, S_IRUGO|S_IWUSR);
|
|
|
-MODULE_PARM_DESC(connect_retries, "Maximum number of connect retries (one second each)");
|
|
|
+MODULE_PARM_DESC(connect_retries,
|
|
|
+ "Maximum number of connect retries (one second each)");
|
|
|
|
|
|
module_param(initial_wait, int, S_IRUGO|S_IWUSR);
|
|
|
-MODULE_PARM_DESC(initial_wait, "Time to wait before attempting a connection (in seconds)");
|
|
|
+MODULE_PARM_DESC(initial_wait,
|
|
|
+ "Time to wait before attempting a connection (in seconds)");
|