Hello community, here is the log from the commit of package uvcvideo checked in at Thu Dec 6 01:40:41 CET 2007. -------- --- uvcvideo/uvcvideo.changes 2007-11-10 17:37:57.000000000 +0100 +++ /mounts/work_src_done/STABLE/uvcvideo/uvcvideo.changes 2007-12-05 01:26:47.910475000 +0100 @@ -1,0 +2,17 @@ +Wed Dec 5 01:26:34 CET 2007 - ro@suse.de + +- updated isight patch from + http://www.i-nz.net/files/projects/linux-kernel/isight/isight.patch +- update to r148 +- Sort quirks table by VID/PID +- Quirk for ALi M5606 chipset +- Fixed typo +- Refactor URB submission code common to bulk and isochronous transfers. +- Read-only flag for v4l2 controls should be set when SET_CUR is not + supported. +- The unused video_device structure hardware field has been removed in + 2.6.24-rc1. Remove references. +- Fix UVC version checking +- added kmp preamble + +------------------------------------------------------------------- Old: ---- uvcvideo-r141.tar.bz2 New: ---- preamble uvcvideo-r148.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ uvcvideo.spec ++++++ --- /var/tmp/diff_new_pack.W25483/_old 2007-12-06 01:40:29.000000000 +0100 +++ /var/tmp/diff_new_pack.W25483/_new 2007-12-06 01:40:29.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package uvcvideo (Version r141) +# spec file for package uvcvideo (Version r148) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -16,9 +16,10 @@ Group: System/Kernel AutoReqProv: on Summary: USB Video Class (UVC) webcam driver -Version: r141 +Version: r148 Release: 1 Source: %name-%version.tar.bz2 +Source1: preamble Patch: isight.patch Url: http://linux-uvc.berlios.de/ License: GPL v2 or later @@ -34,7 +35,7 @@ Supplements: modalias(usb:v041Ep4057d*dc*dsc*dp*ic0Eisc01ip00*) Supplements: modalias(usb:v*p*d*dc*dsc*dp*ic0Eisc01ip00*) ExcludeArch: s390 s390x -%suse_kernel_module_package -n uvcvideo kdump um s390 iseries64 +%suse_kernel_module_package -n uvcvideo -p %_sourcedir/preamble kdump um s390 iseries64 %description Webcam drivers for: USB Video Class (UVC) devices @@ -62,7 +63,7 @@ %prep %setup -n %name-%version -%patch -p1 +%patch -p0 set -- * mkdir source mv "$@" source/ @@ -91,7 +92,22 @@ %clean rm -rf $RPM_BUILD_ROOT + %changelog +* Wed Dec 05 2007 - ro@suse.de +- updated isight patch from + http://www.i-nz.net/files/projects/linux-kernel/isight/isight.patch +- update to r148 +- Sort quirks table by VID/PID +- Quirk for ALi M5606 chipset +- Fixed typo +- Refactor URB submission code common to bulk and isochronous transfers. +- Read-only flag for v4l2 controls should be set when SET_CUR is not + supported. +- The unused video_device structure hardware field has been removed in + 2.6.24-rc1. Remove references. +- Fix UVC version checking +- added kmp preamble * Sat Nov 10 2007 - bwalle@suse.de - add grep and coreutils as pre-requirements - update to r141 upstream version ++++++ isight.patch ++++++ ++++ 621 lines (skipped) ++++ between uvcvideo/isight.patch ++++ and /mounts/work_src_done/STABLE/uvcvideo/isight.patch ++++++ uvcvideo-r141.tar.bz2 -> uvcvideo-r148.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/uvcvideo-r141/uvc_ctrl.c new/uvcvideo-r148/uvc_ctrl.c --- old/uvcvideo-r141/uvc_ctrl.c 2007-10-19 11:17:40.000000000 +0200 +++ new/uvcvideo-r148/uvc_ctrl.c 2007-11-29 18:05:07.000000000 +0100 @@ -521,7 +521,7 @@ strncpy(v4l2_ctrl->name, mapping->name, sizeof v4l2_ctrl->name); v4l2_ctrl->flags = 0; - if (!(ctrl->info->flags & UVC_CONTROL_GET_CUR)) + if (!(ctrl->info->flags & UVC_CONTROL_SET_CUR)) v4l2_ctrl->flags |= V4L2_CTRL_FLAG_READ_ONLY; if (ctrl->info->flags & UVC_CONTROL_GET_DEF) { diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/uvcvideo-r141/uvc_driver.c new/uvcvideo-r148/uvc_driver.c --- old/uvcvideo-r141/uvc_driver.c 2007-11-06 11:35:43.000000000 +0100 +++ new/uvcvideo-r148/uvc_driver.c 2007-11-29 18:05:07.000000000 +0100 @@ -1201,7 +1201,7 @@ default: uvc_trace(UVC_TRACE_DESCR, "Unsupported entity type " - "0x%04x found in chain.n", UVC_ENTITY_TYPE(entity)); + "0x%04x found in chain.\n", UVC_ENTITY_TYPE(entity)); return -1; } @@ -1647,6 +1647,26 @@ * though they are compliant. */ static struct usb_device_id uvc_ids[] = { + /* ALi M5606 (Clevo M540SR) */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x0402, + .idProduct = 0x5606, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_PROBE_MINMAX + }, + /* Creative Live! Optia */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x041e, + .idProduct = 0x4057, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_PROBE_MINMAX + }, /* Microsoft Lifecam NX-6000 */ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_INT_INFO, @@ -1704,26 +1724,6 @@ .bInterfaceClass = USB_CLASS_VENDOR_SPEC, .bInterfaceSubClass = 1, .bInterfaceProtocol = 0 }, - /* Bodelin ProScopeHR */ - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE - | USB_DEVICE_ID_MATCH_INT_INFO, - .idVendor = 0x19ab, - .idProduct = 0x1000, - .bInterfaceClass = USB_CLASS_VIDEO, - .bInterfaceSubClass = 1, - .bInterfaceProtocol = 0, - .driver_info = UVC_QUIRK_STATUS_INTERVAL - }, - /* Creative Live! Optia */ - { .match_flags = USB_DEVICE_ID_MATCH_DEVICE - | USB_DEVICE_ID_MATCH_INT_INFO, - .idVendor = 0x041e, - .idProduct = 0x4057, - .bInterfaceClass = USB_CLASS_VIDEO, - .bInterfaceSubClass = 1, - .bInterfaceProtocol = 0, - .driver_info = UVC_QUIRK_PROBE_MINMAX - }, /* Silicon Motion SM371 */ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_INT_INFO, @@ -1744,6 +1744,16 @@ .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_PROBE_EXTRAFIELDS }, + /* Bodelin ProScopeHR */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x19ab, + .idProduct = 0x1000, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_STATUS_INTERVAL + }, /* Acer OEM Webcam - Unknown vendor */ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_INT_INFO, diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/uvcvideo-r141/uvc_video.c new/uvcvideo-r148/uvc_video.c --- old/uvcvideo-r141/uvc_video.c 2007-10-22 11:06:02.000000000 +0200 +++ new/uvcvideo-r148/uvc_video.c 2007-12-05 01:23:26.000000000 +0100 @@ -70,7 +70,7 @@ __u8 size; int ret; - size = video->dev->uvc_version > 0x0100 ? 34 : 26; + size = video->dev->uvc_version >= 0x0110 ? 34 : 26; ret = __uvc_query_ctrl(video->dev, query, 0, video->streaming->intfnum, probe ? VS_PROBE_CONTROL : VS_COMMIT_CONTROL, &data, size, UVC_CTRL_STREAMING_TIMEOUT); @@ -105,7 +105,7 @@ ctrl->bMaxVersion = 0; } - if (ctrl->dwMaxVideoFrameSize == 0 && video->dev->uvc_version <= 0x0100) { + if (ctrl->dwMaxVideoFrameSize == 0 && video->dev->uvc_version < 0x0110) { /* Some broken UVC 1.0 devices return a null * dwMaxVideoFrameSize. Try to get the value from the format * and frame descriptor. @@ -130,7 +130,7 @@ __u8 data[34]; __u8 size; - size = video->dev->uvc_version > 0x0100 ? 34 : 26; + size = video->dev->uvc_version >= 0x0110 ? 34 : 26; memset(data, 0, sizeof data); *(__le16*)&data[0] = cpu_to_le16(ctrl->bmHint); @@ -634,7 +634,6 @@ unsigned int npackets, i, j; __u16 psize; __u32 size; - int ret; /* Compute the number of isochronous packets to allocate by dividing * the maximum video frame size by the packet size. Limit the result @@ -687,16 +686,6 @@ video->urb[i] = urb; } - /* Submit the URBs. */ - for (i = 0; i < UVC_URBS; ++i) { - if ((ret = usb_submit_urb(video->urb[i], GFP_KERNEL)) < 0) { - uvc_printk(KERN_ERR, "Failed to submit isoc URB %u " - "(%d).\n", i, ret); - uvc_uninit_video(video); - return ret; - } - } - return 0; } @@ -710,7 +699,6 @@ unsigned int pipe, i; __u16 psize; __u32 size; - int ret; /* Compute the bulk URB size. Some devices set the maximum payload * size to a value too high for memory-constrained devices. We must @@ -749,16 +737,6 @@ video->urb[i] = urb; } - /* Submit the URBs. */ - for (i = 0; i < UVC_URBS; ++i) { - if ((ret = usb_submit_urb(video->urb[i], GFP_KERNEL)) < 0) { - uvc_printk(KERN_ERR, "Failed to submit bulk URB %u " - "(%d).\n", i, ret); - uvc_uninit_video(video); - return ret; - } - } - return 0; } @@ -805,7 +783,7 @@ if ((ret = usb_set_interface(video->dev->udev, intfnum, i)) < 0) return ret; - return uvc_init_video_isoc(video, ep); + ret = uvc_init_video_isoc(video, ep); } else { /* Bulk endpoint, proceed to URB initialization. */ ep = uvc_find_endpoint(&intf->altsetting[0], @@ -813,8 +791,23 @@ if (ep == NULL) return -EIO; - return uvc_init_video_bulk(video, ep); + ret = uvc_init_video_bulk(video, ep); } + + if (ret < 0) + return ret; + + /* Submit the URBs. */ + for (i = 0; i < UVC_URBS; ++i) { + if ((ret = usb_submit_urb(video->urb[i], GFP_KERNEL)) < 0) { + uvc_printk(KERN_ERR, "Failed to submit URB %u " + "(%d).\n", i, ret); + uvc_uninit_video(video); + return ret; + } + } + + return 0; } /* -------------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org