[PATCH] USB: ZC0301 driver bugfix
authorLuca Risolia <luca.risolia@studio.unibo.it>
Fri, 3 Mar 2006 09:58:39 +0000 (09:58 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 20 Mar 2006 22:50:01 +0000 (14:50 -0800)
ZC0301 driver bugfix.

Use correct PID/VID USB entries.

Signed-off-by: Luca Risolia <luca.risolia@studio.unibo.it>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Documentation/usb/zc0301.txt
drivers/usb/media/zc0301.h
drivers/usb/media/zc0301_core.c
drivers/usb/media/zc0301_sensor.h

index 095838420e82e9d130877add8c3f139ff551d0d3..f55262c6733b6c75eba2da87405462288a53e485 100644 (file)
@@ -201,14 +201,14 @@ devices mounting the ZC0301 Image Processor and Control Chips:
 
 Vendor ID  Product ID
 ---------  ----------
-0x10fd     0x8050
-0x041e     0x0417
-0x041e     0x041e
-0x041e     0x081c
-0x041e     0x0834
-0x041e     0x0835
+0x041e     0x4017
+0x041e     0x401c
+0x041e     0x401e
+0x041e     0x4034
+0x041e     0x4035
 0x046d     0x08ae
 0x0ac8     0x0301
+0x10fd     0x8050
 
 The list above does not imply that all those devices work with this driver: up
 until now only the ones that mount the following image sensors are supported;
index 9ba9135e824becc7b63a81188917179aa9b626d5..8e0655140e604a8c3b8b7ac341e649f53e5d3fb5 100644 (file)
@@ -134,10 +134,7 @@ struct zc0301_device {
 struct zc0301_device*
 zc0301_match_id(struct zc0301_device* cam, const struct usb_device_id *id)
 {
-       if (usb_match_id(usb_ifnum_to_if(cam->usbdev, 0), id))
-               return cam;
-
-       return NULL;
+       return usb_match_id(usb_ifnum_to_if(cam->usbdev, 0), id) ? cam : NULL;
 }
 
 void
index 5773688d3dae8e923e832fdc11025f43819e93a4..4036c6268bff53e025ee57e066ba58a041ebd83a 100644 (file)
@@ -52,8 +52,8 @@
 #define ZC0301_MODULE_AUTHOR  "(C) 2006 Luca Risolia"
 #define ZC0301_AUTHOR_EMAIL   "<luca.risolia@studio.unibo.it>"
 #define ZC0301_MODULE_LICENSE "GPL"
-#define ZC0301_MODULE_VERSION "1:1.02"
-#define ZC0301_MODULE_VERSION_CODE  KERNEL_VERSION(1, 0, 2)
+#define ZC0301_MODULE_VERSION "1:1.03"
+#define ZC0301_MODULE_VERSION_CODE  KERNEL_VERSION(1, 0, 3)
 
 /*****************************************************************************/
 
@@ -637,7 +637,6 @@ static void zc0301_release_resources(struct zc0301_device* cam)
        DBG(2, "V4L2 device /dev/video%d deregistered", cam->v4ldev->minor);
        video_set_drvdata(cam->v4ldev, NULL);
        video_unregister_device(cam->v4ldev);
-       usb_put_dev(cam->usbdev);
        kfree(cam->control_buffer);
 }
 
@@ -727,6 +726,7 @@ static int zc0301_release(struct inode* inode, struct file* filp)
 
        if (cam->state & DEV_DISCONNECTED) {
                zc0301_release_resources(cam);
+               usb_put_dev(cam->usbdev);
                mutex_unlock(&cam->dev_mutex);
                kfree(cam);
                return 0;
index e3cb6cc920ca9b0924d6b76bbe83ba80ba71140c..cf0965a81d0121839492948fc8b324dec68ea097 100644 (file)
@@ -58,14 +58,14 @@ zc0301_attach_sensor(struct zc0301_device* cam, struct zc0301_sensor* sensor);
 
 #define ZC0301_ID_TABLE                                                       \
 static const struct usb_device_id zc0301_id_table[] =  {                      \
-       { ZC0301_USB_DEVICE(0x10fd, 0x8050, 0xff), }, /* TAS5130D */          \
-       { ZC0301_USB_DEVICE(0x041e, 0x0417, 0xff), },                         \
-       { ZC0301_USB_DEVICE(0x041e, 0x041e, 0xff), }, /* HV7131B */           \
-       { ZC0301_USB_DEVICE(0x041e, 0x081c, 0xff), }, /* PAS106 */            \
-       { ZC0301_USB_DEVICE(0x041e, 0x0834, 0xff), }, /* PAS106 */            \
-       { ZC0301_USB_DEVICE(0x041e, 0x0835, 0xff), }, /* PAS106 */            \
+       { ZC0301_USB_DEVICE(0x041e, 0x4017, 0xff), },                         \
+       { ZC0301_USB_DEVICE(0x041e, 0x401c, 0xff), }, /* PAS106 */            \
+       { ZC0301_USB_DEVICE(0x041e, 0x401e, 0xff), }, /* HV7131B */           \
+       { ZC0301_USB_DEVICE(0x041e, 0x4034, 0xff), }, /* PAS106 */            \
+       { ZC0301_USB_DEVICE(0x041e, 0x4035, 0xff), }, /* PAS106 */            \
        { ZC0301_USB_DEVICE(0x046d, 0x08ae, 0xff), }, /* PAS202BCB */         \
        { ZC0301_USB_DEVICE(0x0ac8, 0x0301, 0xff), },                         \
+       { ZC0301_USB_DEVICE(0x10fd, 0x8050, 0xff), }, /* TAS5130D */          \
        { }                                                                   \
 };