I'm sending this to linux-usb-devel as well as Greg KH, Matt Dharm, and Andrew Morton, because the original patch (gregkh-usb-usb-storage-04.patch) is in all three of your trees.

As sugested by Alan Stern here are a few code cleanups for onetouch.c:

-Check number of endpoints before directly referencing intf->endpoint[2]
-Use defined constants instead of magic numbers
-Revmove the non-ascii characters from copyright notice
-Make registration and deregistration messages more similar

Please Apply

Nick Sillik
[EMAIL PROTECTED]

Signed-off-by: Nick Sillik <[EMAIL PROTECTED]>
--- linux-2.6.13-rc6-mm-onetouch/drivers/usb/storage/onetouch.c	2005-08-02 18:50:19.000000000 -0400
+++ snoopwegotthenews/drivers/usb/storage/onetouch.c	2005-08-17 13:28:26.000000000 -0400
@@ -5,7 +5,7 @@
  *	Copyright (c) 2005 Nick Sillik <[EMAIL PROTECTED]>
  *
  * Initial work by:
- * 	Copyright (c) 2003 Erik Thyrén <[EMAIL PROTECTED]>
+ * 	Copyright (c) 2003 Erik Thyren <[EMAIL PROTECTED]>
  *
  * Based on usbmouse.c (Vojtech Pavlik) and xpad.c (Marko Friedemann)
  *
@@ -35,6 +35,8 @@
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/usb.h>
+#include <linux/usb_ch9.h>
+#include <linux/usb_input.h>
 #include "usb.h"
 #include "onetouch.h"
 #include "debug.h"
@@ -116,10 +118,14 @@
 
 	interface = ss->pusb_intf->cur_altsetting;
 
+	if (interface->desc.bNumEndpoints != 3)
+		return -ENODEV;
+
 	endpoint = &interface->endpoint[2].desc;
-	if(!(endpoint->bEndpointAddress & 0x80))
+	if(!(endpoint->bEndpointAddress & USB_DIR_IN))
 		return -ENODEV;
-	if((endpoint->bmAttributes & 3) != 3)
+	if((endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
+			!= USB_ENDPOINT_XFER_INT)
 		return -ENODEV;
 
 	pipe = usb_rcvintpipe(udev, endpoint->bEndpointAddress);
@@ -128,7 +134,8 @@
 	if (!(onetouch = kcalloc(1, sizeof(struct usb_onetouch), GFP_KERNEL)))
 		return -ENOMEM;
 
-	onetouch->data = usb_buffer_alloc(udev, ONETOUCH_PKT_LEN, SLAB_ATOMIC, &onetouch->data_dma);
+	onetouch->data = usb_buffer_alloc(udev, ONETOUCH_PKT_LEN, 
+					  SLAB_ATOMIC, &onetouch->data_dma);
 	if (!onetouch->data){
 		kfree(onetouch);
 		return -ENOMEM;
@@ -137,7 +144,8 @@
 	onetouch->irq = usb_alloc_urb(0, GFP_KERNEL);
 	if (!onetouch->irq){
 		kfree(onetouch);
-		usb_buffer_free(udev, ONETOUCH_PKT_LEN, onetouch->data, onetouch->data_dma);
+		usb_buffer_free(udev, ONETOUCH_PKT_LEN, 
+				onetouch->data, onetouch->data_dma);
 		return -ENODEV;
 	}
 
@@ -152,16 +160,13 @@
 	onetouch->dev.open = usb_onetouch_open;
 	onetouch->dev.close = usb_onetouch_close;
 
-	usb_make_path(udev, path, 64);
+	usb_make_path(udev, path, sizeof(path));
 	sprintf(onetouch->phys, "%s/input0", path);
 
 	onetouch->dev.name = onetouch->name;
 	onetouch->dev.phys = onetouch->phys;
 
-	onetouch->dev.id.bustype = BUS_USB;
-	onetouch->dev.id.vendor = le16_to_cpu(udev->descriptor.idVendor);
-	onetouch->dev.id.product = le16_to_cpu(udev->descriptor.idProduct);
-	onetouch->dev.id.version = le16_to_cpu(udev->descriptor.bcdDevice);
+	usb_to_input_id(udev, &onetouch->dev.id);
 
 	onetouch->dev.dev = &udev->dev;
 
@@ -199,7 +204,7 @@
 		usb_free_urb(onetouch->irq);
 		usb_buffer_free(onetouch->udev, ONETOUCH_PKT_LEN,
 				onetouch->data, onetouch->data_dma);
-		printk(KERN_INFO "Maxtor Onetouch %04x:%04x Deregistered\n",
-			onetouch->dev.id.vendor, onetouch->dev.id.product);
+		printk(KERN_INFO "usb-input: deregistering %s\n",
+				onetouch->dev.name);
 	}
 }

Reply via email to