Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -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;
+1 −4
Original line number Diff line number Diff line
@@ -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
+3 −3
Original line number Diff line number Diff line
@@ -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;
+6 −6
Original line number Diff line number Diff line
@@ -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 */          \
	{ }                                                                   \
};