diff options
Diffstat (limited to 'drivers/media/video/zr364xx.c')
-rw-r--r-- | drivers/media/video/zr364xx.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/media/video/zr364xx.c b/drivers/media/video/zr364xx.c index b5d3364c94c7..6f1892585cbb 100644 --- a/drivers/media/video/zr364xx.c +++ b/drivers/media/video/zr364xx.c | |||
@@ -92,6 +92,7 @@ static struct usb_device_id device_table[] = { | |||
92 | {USB_DEVICE(0x0784, 0x0040), .driver_info = METHOD1 }, | 92 | {USB_DEVICE(0x0784, 0x0040), .driver_info = METHOD1 }, |
93 | {USB_DEVICE(0x06d6, 0x0034), .driver_info = METHOD0 }, | 93 | {USB_DEVICE(0x06d6, 0x0034), .driver_info = METHOD0 }, |
94 | {USB_DEVICE(0x0a17, 0x0062), .driver_info = METHOD2 }, | 94 | {USB_DEVICE(0x0a17, 0x0062), .driver_info = METHOD2 }, |
95 | {USB_DEVICE(0x06d6, 0x003b), .driver_info = METHOD0 }, | ||
95 | {} /* Terminating entry */ | 96 | {} /* Terminating entry */ |
96 | }; | 97 | }; |
97 | 98 | ||
@@ -792,6 +793,7 @@ static int zr364xx_probe(struct usb_interface *intf, | |||
792 | { | 793 | { |
793 | struct usb_device *udev = interface_to_usbdev(intf); | 794 | struct usb_device *udev = interface_to_usbdev(intf); |
794 | struct zr364xx_camera *cam = NULL; | 795 | struct zr364xx_camera *cam = NULL; |
796 | int err; | ||
795 | 797 | ||
796 | DBG("probing..."); | 798 | DBG("probing..."); |
797 | 799 | ||
@@ -799,12 +801,11 @@ static int zr364xx_probe(struct usb_interface *intf, | |||
799 | info("model %04x:%04x detected", udev->descriptor.idVendor, | 801 | info("model %04x:%04x detected", udev->descriptor.idVendor, |
800 | udev->descriptor.idProduct); | 802 | udev->descriptor.idProduct); |
801 | 803 | ||
802 | if ((cam = | 804 | cam = kzalloc(sizeof(struct zr364xx_camera), GFP_KERNEL); |
803 | kmalloc(sizeof(struct zr364xx_camera), GFP_KERNEL)) == NULL) { | 805 | if (cam == NULL) { |
804 | info("cam: out of memory !"); | 806 | info("cam: out of memory !"); |
805 | return -ENODEV; | 807 | return -ENOMEM; |
806 | } | 808 | } |
807 | memset(cam, 0x00, sizeof(struct zr364xx_camera)); | ||
808 | /* save the init method used by this camera */ | 809 | /* save the init method used by this camera */ |
809 | cam->method = id->driver_info; | 810 | cam->method = id->driver_info; |
810 | 811 | ||
@@ -812,7 +813,7 @@ static int zr364xx_probe(struct usb_interface *intf, | |||
812 | if (cam->vdev == NULL) { | 813 | if (cam->vdev == NULL) { |
813 | info("cam->vdev: out of memory !"); | 814 | info("cam->vdev: out of memory !"); |
814 | kfree(cam); | 815 | kfree(cam); |
815 | return -ENODEV; | 816 | return -ENOMEM; |
816 | } | 817 | } |
817 | memcpy(cam->vdev, &zr364xx_template, sizeof(zr364xx_template)); | 818 | memcpy(cam->vdev, &zr364xx_template, sizeof(zr364xx_template)); |
818 | video_set_drvdata(cam->vdev, cam); | 819 | video_set_drvdata(cam->vdev, cam); |
@@ -858,12 +859,13 @@ static int zr364xx_probe(struct usb_interface *intf, | |||
858 | cam->brightness = 64; | 859 | cam->brightness = 64; |
859 | mutex_init(&cam->lock); | 860 | mutex_init(&cam->lock); |
860 | 861 | ||
861 | if (video_register_device(cam->vdev, VFL_TYPE_GRABBER, -1) == -1) { | 862 | err = video_register_device(cam->vdev, VFL_TYPE_GRABBER, -1); |
863 | if (err) { | ||
862 | info("video_register_device failed"); | 864 | info("video_register_device failed"); |
863 | video_device_release(cam->vdev); | 865 | video_device_release(cam->vdev); |
864 | kfree(cam->buffer); | 866 | kfree(cam->buffer); |
865 | kfree(cam); | 867 | kfree(cam); |
866 | return -ENODEV; | 868 | return err; |
867 | } | 869 | } |
868 | 870 | ||
869 | usb_set_intfdata(intf, cam); | 871 | usb_set_intfdata(intf, cam); |
@@ -905,7 +907,7 @@ static struct usb_driver zr364xx_driver = { | |||
905 | static int __init zr364xx_init(void) | 907 | static int __init zr364xx_init(void) |
906 | { | 908 | { |
907 | int retval; | 909 | int retval; |
908 | retval = usb_register(&zr364xx_driver) < 0; | 910 | retval = usb_register(&zr364xx_driver); |
909 | if (retval) | 911 | if (retval) |
910 | info("usb_register failed!"); | 912 | info("usb_register failed!"); |
911 | else | 913 | else |