diff options
Diffstat (limited to 'drivers/media/video/pwc/pwc-if.c')
-rw-r--r-- | drivers/media/video/pwc/pwc-if.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c index aea7e224cef6..d06e157657ac 100644 --- a/drivers/media/video/pwc/pwc-if.c +++ b/drivers/media/video/pwc/pwc-if.c | |||
@@ -1365,7 +1365,7 @@ static ssize_t pwc_video_read(struct file *file, char __user *buf, | |||
1365 | } | 1365 | } |
1366 | 1366 | ||
1367 | PWC_DEBUG_READ("Copying data to user space.\n"); | 1367 | PWC_DEBUG_READ("Copying data to user space.\n"); |
1368 | if (pdev->vpalette == VIDEO_PALETTE_RAW) | 1368 | if (pdev->pixfmt != V4L2_PIX_FMT_YUV420) |
1369 | bytes_to_read = pdev->frame_size + sizeof(struct pwc_raw_frame); | 1369 | bytes_to_read = pdev->frame_size + sizeof(struct pwc_raw_frame); |
1370 | else | 1370 | else |
1371 | bytes_to_read = pdev->view.size; | 1371 | bytes_to_read = pdev->view.size; |
@@ -1800,13 +1800,6 @@ static int usb_pwc_probe(struct usb_interface *intf, const struct usb_device_id | |||
1800 | } | 1800 | } |
1801 | 1801 | ||
1802 | pdev->vdev->release = video_device_release; | 1802 | pdev->vdev->release = video_device_release; |
1803 | rc = video_register_device(pdev->vdev, VFL_TYPE_GRABBER, video_nr); | ||
1804 | if (rc < 0) { | ||
1805 | PWC_ERROR("Failed to register as video device (%d).\n", rc); | ||
1806 | goto err_video_release; | ||
1807 | } | ||
1808 | |||
1809 | PWC_INFO("Registered as %s.\n", video_device_node_name(pdev->vdev)); | ||
1810 | 1803 | ||
1811 | /* occupy slot */ | 1804 | /* occupy slot */ |
1812 | if (hint < MAX_DEV_HINTS) | 1805 | if (hint < MAX_DEV_HINTS) |
@@ -1814,14 +1807,22 @@ static int usb_pwc_probe(struct usb_interface *intf, const struct usb_device_id | |||
1814 | 1807 | ||
1815 | PWC_DEBUG_PROBE("probe() function returning struct at 0x%p.\n", pdev); | 1808 | PWC_DEBUG_PROBE("probe() function returning struct at 0x%p.\n", pdev); |
1816 | usb_set_intfdata(intf, pdev); | 1809 | usb_set_intfdata(intf, pdev); |
1817 | rc = pwc_create_sysfs_files(pdev->vdev); | ||
1818 | if (rc) | ||
1819 | goto err_video_unreg; | ||
1820 | 1810 | ||
1821 | /* Set the leds off */ | 1811 | /* Set the leds off */ |
1822 | pwc_set_leds(pdev, 0, 0); | 1812 | pwc_set_leds(pdev, 0, 0); |
1823 | pwc_camera_power(pdev, 0); | 1813 | pwc_camera_power(pdev, 0); |
1824 | 1814 | ||
1815 | rc = video_register_device(pdev->vdev, VFL_TYPE_GRABBER, video_nr); | ||
1816 | if (rc < 0) { | ||
1817 | PWC_ERROR("Failed to register as video device (%d).\n", rc); | ||
1818 | goto err_video_release; | ||
1819 | } | ||
1820 | rc = pwc_create_sysfs_files(pdev->vdev); | ||
1821 | if (rc) | ||
1822 | goto err_video_unreg; | ||
1823 | |||
1824 | PWC_INFO("Registered as %s.\n", video_device_node_name(pdev->vdev)); | ||
1825 | |||
1825 | #ifdef CONFIG_USB_PWC_INPUT_EVDEV | 1826 | #ifdef CONFIG_USB_PWC_INPUT_EVDEV |
1826 | /* register webcam snapshot button input device */ | 1827 | /* register webcam snapshot button input device */ |
1827 | pdev->button_dev = input_allocate_device(); | 1828 | pdev->button_dev = input_allocate_device(); |