X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fusb%2Fserial%2Fipaq.c;h=8fbce2732c513b1d116243a594e967533286842e;hb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;hp=3798e3ca5bbbd2edeca11ab48b8ae3de92eefe91;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/drivers/usb/serial/ipaq.c b/drivers/usb/serial/ipaq.c index 3798e3ca5..8fbce2732 100644 --- a/drivers/usb/serial/ipaq.c +++ b/drivers/usb/serial/ipaq.c @@ -56,13 +56,6 @@ #include #include #include - -#ifdef CONFIG_USB_SERIAL_DEBUG - static int debug = 1; -#else - static int debug = 0; -#endif - #include "usb-serial.h" #include "ipaq.h" @@ -76,7 +69,8 @@ #define DRIVER_AUTHOR "Ganesh Varadarajan " #define DRIVER_DESC "USB PocketPC PDA driver" -static int product, vendor; +static __u16 product, vendor; +static int debug; /* Function prototypes for an ipaq */ static int ipaq_open (struct usb_serial_port *port, struct file *filp); @@ -133,8 +127,10 @@ static struct usb_device_id ipaq_id_table [] = { { USB_DEVICE(TOSHIBA_VENDOR_ID, TOSHIBA_E740_ID) }, { USB_DEVICE(TOSHIBA_VENDOR_ID, TOSHIBA_E335_ID) }, { USB_DEVICE(HTC_VENDOR_ID, HTC_PRODUCT_ID) }, + { USB_DEVICE(HTC_VENDOR_ID, HTC_HIMALAYA_ID) }, { USB_DEVICE(NEC_VENDOR_ID, NEC_PRODUCT_ID) }, { USB_DEVICE(ASUS_VENDOR_ID, ASUS_A600_PRODUCT_ID) }, + { USB_DEVICE(ASUS_VENDOR_ID, ASUS_A620_PRODUCT_ID) }, { } /* Terminating entry */ }; @@ -150,7 +146,7 @@ static struct usb_driver ipaq_driver = { /* All of the device info needed for the Compaq iPAQ */ -struct usb_serial_device_type ipaq_device = { +static struct usb_serial_device_type ipaq_device = { .owner = THIS_MODULE, .name = "PocketPC PDA", .id_table = ipaq_id_table, @@ -181,10 +177,6 @@ static int ipaq_open(struct usb_serial_port *port, struct file *filp) int i, result = 0; int retries = KP_RETRIES; - if (port_paranoia_check(port, __FUNCTION__)) { - return -ENODEV; - } - dbg("%s - port %d", __FUNCTION__, port->number); bytes_in = 0; @@ -197,6 +189,7 @@ static int ipaq_open(struct usb_serial_port *port, struct file *filp) usb_set_serial_port_data(port, priv); priv->active = 0; priv->queue_len = 0; + priv->free_len = 0; INIT_LIST_HEAD(&priv->queue); INIT_LIST_HEAD(&priv->freelist); @@ -288,23 +281,13 @@ error: static void ipaq_close(struct usb_serial_port *port, struct file *filp) { - struct usb_serial *serial; struct ipaq_private *priv = usb_get_serial_port_data(port); - if (port_paranoia_check(port, __FUNCTION__)) { - return; - } - dbg("%s - port %d", __FUNCTION__, port->number); - serial = get_usb_serial(port, __FUNCTION__); - if (!serial) - return; - /* * shut down bulk read and write */ - usb_unlink_urb(port->write_urb); usb_unlink_urb(port->read_urb); ipaq_destroy_lists(port); @@ -318,27 +301,18 @@ static void ipaq_close(struct usb_serial_port *port, struct file *filp) static void ipaq_read_bulk_callback(struct urb *urb, struct pt_regs *regs) { struct usb_serial_port *port = (struct usb_serial_port *)urb->context; - struct usb_serial *serial = get_usb_serial (port, __FUNCTION__); struct tty_struct *tty; unsigned char *data = urb->transfer_buffer; int i, result; - if (port_paranoia_check(port, __FUNCTION__)) - return; - dbg("%s - port %d", __FUNCTION__, port->number); - if (!serial) { - dbg("%s - bad serial pointer, exiting", __FUNCTION__); - return; - } - if (urb->status) { dbg("%s - nonzero read bulk status received: %d", __FUNCTION__, urb->status); return; } - usb_serial_debug_data (__FILE__, __FUNCTION__, urb->actual_length, data); + usb_serial_debug_data(debug, &port->dev, __FUNCTION__, urb->actual_length, data); tty = port->tty; if (tty && urb->actual_length) { @@ -355,8 +329,8 @@ static void ipaq_read_bulk_callback(struct urb *urb, struct pt_regs *regs) } /* Continue trying to always read */ - usb_fill_bulk_urb(port->read_urb, serial->dev, - usb_rcvbulkpipe(serial->dev, port->bulk_in_endpointAddress), + 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); @@ -419,7 +393,7 @@ static int ipaq_write_bulk(struct usb_serial_port *port, int from_user, const un } else { memcpy(pkt->data, buf, count); } - usb_serial_debug_data(__FILE__, __FUNCTION__, count, pkt->data); + usb_serial_debug_data(debug, &port->dev, __FUNCTION__, count, pkt->data); pkt->len = count; pkt->written = 0; @@ -488,10 +462,6 @@ static void ipaq_write_bulk_callback(struct urb *urb, struct pt_regs *regs) unsigned long flags; int result; - if (port_paranoia_check (port, __FUNCTION__)) { - return; - } - dbg("%s - port %d", __FUNCTION__, port->number); if (urb->status) { @@ -606,11 +576,11 @@ MODULE_AUTHOR( DRIVER_AUTHOR ); MODULE_DESCRIPTION( DRIVER_DESC ); MODULE_LICENSE("GPL"); -MODULE_PARM(debug, "i"); +module_param(debug, bool, S_IRUGO | S_IWUSR); MODULE_PARM_DESC(debug, "Debug enabled or not"); -MODULE_PARM(vendor, "h"); +module_param(vendor, ushort, 0); MODULE_PARM_DESC(vendor, "User specified USB idVendor"); -MODULE_PARM(product, "h"); +module_param(product, ushort, 0); MODULE_PARM_DESC(product, "User specified USB idProduct");