ZC0301 driver bugfix. Use correct PID/VID USB entries.
Signed-off-by: Luca Risolia <[EMAIL PROTECTED]>
Best regards,
Luca Risolia
---
diff -uprN -X b/Documentation/dontdiff a/Documentation/usb/zc0301.txt
b/Documentation/usb/zc0301.txt
--- a/Documentation/usb/zc0301.txt 2006-02-25 06:31:37.000000000 +0000
+++ b/Documentation/usb/zc0301.txt 2006-03-03 09:49:29.000000000 +0000
@@ -201,14 +201,14 @@ devices mounting the ZC0301 Image Proces
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;
diff -uprN -X b/Documentation/dontdiff a/drivers/usb/media/zc0301_core.c
b/drivers/usb/media/zc0301_core.c
--- a/drivers/usb/media/zc0301_core.c 2006-02-25 06:23:14.000000000 +0000
+++ b/drivers/usb/media/zc0301_core.c 2006-03-03 09:43:10.000000000 +0000
@@ -52,8 +52,8 @@
#define ZC0301_MODULE_AUTHOR "(C) 2006 Luca Risolia"
#define ZC0301_AUTHOR_EMAIL "<[EMAIL PROTECTED]>"
#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(str
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*
if (cam->state & DEV_DISCONNECTED) {
zc0301_release_resources(cam);
+ usb_put_dev(cam->usbdev);
mutex_unlock(&cam->dev_mutex);
kfree(cam);
return 0;
diff -uprN -X b/Documentation/dontdiff a/drivers/usb/media/zc0301.h
b/drivers/usb/media/zc0301.h
--- a/drivers/usb/media/zc0301.h 2006-02-25 06:23:19.000000000 +0000
+++ b/drivers/usb/media/zc0301.h 2006-03-03 09:43:10.000000000 +0000
@@ -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
diff -uprN -X b/Documentation/dontdiff a/drivers/usb/media/zc0301_sensor.h
b/drivers/usb/media/zc0301_sensor.h
--- a/drivers/usb/media/zc0301_sensor.h 2006-02-25 06:23:14.000000000 +0000
+++ b/drivers/usb/media/zc0301_sensor.h 2006-03-03 09:43:10.000000000 +0000
@@ -58,14 +58,14 @@ zc0301_attach_sensor(struct zc0301_devic
#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 */ \
{ } \
};
pgpN8sxx0RSi7.pgp
Description: PGP signature
