Commit 6e0755a4 authored by Luca Risolia's avatar Luca Risolia Committed by Greg Kroah-Hartman

[PATCH] USB: ZC0301 driver bugfix

ZC0301 driver bugfix.

Use correct PID/VID USB entries.
Signed-off-by: default avatarLuca Risolia <luca.risolia@studio.unibo.it>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 2e56222e
...@@ -201,14 +201,14 @@ devices mounting the ZC0301 Image Processor and Control Chips: ...@@ -201,14 +201,14 @@ devices mounting the ZC0301 Image Processor and Control Chips:
Vendor ID Product ID Vendor ID Product ID
--------- ---------- --------- ----------
0x10fd 0x8050 0x041e 0x4017
0x041e 0x0417 0x041e 0x401c
0x041e 0x041e 0x041e 0x401e
0x041e 0x081c 0x041e 0x4034
0x041e 0x0834 0x041e 0x4035
0x041e 0x0835
0x046d 0x08ae 0x046d 0x08ae
0x0ac8 0x0301 0x0ac8 0x0301
0x10fd 0x8050
The list above does not imply that all those devices work with this driver: up 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; until now only the ones that mount the following image sensors are supported;
......
...@@ -134,10 +134,7 @@ struct zc0301_device { ...@@ -134,10 +134,7 @@ struct zc0301_device {
struct zc0301_device* struct zc0301_device*
zc0301_match_id(struct zc0301_device* cam, const struct usb_device_id *id) 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 usb_match_id(usb_ifnum_to_if(cam->usbdev, 0), id) ? cam : NULL;
return cam;
return NULL;
} }
void void
......
...@@ -52,8 +52,8 @@ ...@@ -52,8 +52,8 @@
#define ZC0301_MODULE_AUTHOR "(C) 2006 Luca Risolia" #define ZC0301_MODULE_AUTHOR "(C) 2006 Luca Risolia"
#define ZC0301_AUTHOR_EMAIL "<luca.risolia@studio.unibo.it>" #define ZC0301_AUTHOR_EMAIL "<luca.risolia@studio.unibo.it>"
#define ZC0301_MODULE_LICENSE "GPL" #define ZC0301_MODULE_LICENSE "GPL"
#define ZC0301_MODULE_VERSION "1:1.02" #define ZC0301_MODULE_VERSION "1:1.03"
#define ZC0301_MODULE_VERSION_CODE KERNEL_VERSION(1, 0, 2) #define ZC0301_MODULE_VERSION_CODE KERNEL_VERSION(1, 0, 3)
/*****************************************************************************/ /*****************************************************************************/
...@@ -637,7 +637,6 @@ static void zc0301_release_resources(struct zc0301_device* cam) ...@@ -637,7 +637,6 @@ static void zc0301_release_resources(struct zc0301_device* cam)
DBG(2, "V4L2 device /dev/video%d deregistered", cam->v4ldev->minor); DBG(2, "V4L2 device /dev/video%d deregistered", cam->v4ldev->minor);
video_set_drvdata(cam->v4ldev, NULL); video_set_drvdata(cam->v4ldev, NULL);
video_unregister_device(cam->v4ldev); video_unregister_device(cam->v4ldev);
usb_put_dev(cam->usbdev);
kfree(cam->control_buffer); kfree(cam->control_buffer);
} }
...@@ -727,6 +726,7 @@ static int zc0301_release(struct inode* inode, struct file* filp) ...@@ -727,6 +726,7 @@ static int zc0301_release(struct inode* inode, struct file* filp)
if (cam->state & DEV_DISCONNECTED) { if (cam->state & DEV_DISCONNECTED) {
zc0301_release_resources(cam); zc0301_release_resources(cam);
usb_put_dev(cam->usbdev);
mutex_unlock(&cam->dev_mutex); mutex_unlock(&cam->dev_mutex);
kfree(cam); kfree(cam);
return 0; return 0;
......
...@@ -58,14 +58,14 @@ zc0301_attach_sensor(struct zc0301_device* cam, struct zc0301_sensor* sensor); ...@@ -58,14 +58,14 @@ zc0301_attach_sensor(struct zc0301_device* cam, struct zc0301_sensor* sensor);
#define ZC0301_ID_TABLE \ #define ZC0301_ID_TABLE \
static const struct usb_device_id zc0301_id_table[] = { \ static const struct usb_device_id zc0301_id_table[] = { \
{ ZC0301_USB_DEVICE(0x10fd, 0x8050, 0xff), }, /* TAS5130D */ \ { ZC0301_USB_DEVICE(0x041e, 0x4017, 0xff), }, \
{ ZC0301_USB_DEVICE(0x041e, 0x0417, 0xff), }, \ { ZC0301_USB_DEVICE(0x041e, 0x401c, 0xff), }, /* PAS106 */ \
{ ZC0301_USB_DEVICE(0x041e, 0x041e, 0xff), }, /* HV7131B */ \ { ZC0301_USB_DEVICE(0x041e, 0x401e, 0xff), }, /* HV7131B */ \
{ ZC0301_USB_DEVICE(0x041e, 0x081c, 0xff), }, /* PAS106 */ \ { ZC0301_USB_DEVICE(0x041e, 0x4034, 0xff), }, /* PAS106 */ \
{ ZC0301_USB_DEVICE(0x041e, 0x0834, 0xff), }, /* PAS106 */ \ { ZC0301_USB_DEVICE(0x041e, 0x4035, 0xff), }, /* PAS106 */ \
{ ZC0301_USB_DEVICE(0x041e, 0x0835, 0xff), }, /* PAS106 */ \
{ ZC0301_USB_DEVICE(0x046d, 0x08ae, 0xff), }, /* PAS202BCB */ \ { ZC0301_USB_DEVICE(0x046d, 0x08ae, 0xff), }, /* PAS202BCB */ \
{ ZC0301_USB_DEVICE(0x0ac8, 0x0301, 0xff), }, \ { ZC0301_USB_DEVICE(0x0ac8, 0x0301, 0xff), }, \
{ ZC0301_USB_DEVICE(0x10fd, 0x8050, 0xff), }, /* TAS5130D */ \
{ } \ { } \
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment