summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/uvc/uvcvideo.h
AgeCommit message (Collapse)Author
2009-07-02uvcvideo: Multiple streaming interfaces supportLaurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> Restructure the UVC descriptors parsing code to handle multiple streaming interfaces. The driver now creates a uvc_video_chain instance for each chain detected in the UVC control interface descriptors, and tries to register one video device per streaming endpoint. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2009-06-28uvcvideo: Restructure the driver to support multiple simultaneous streams.Laurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> As a first step towards multiple streaming interfaces support, reorganize the driver's data structures to cleanly separate video control and video streaming data. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2009-07-19uvcvideo: Add PROBE_DEF quirk and enable it for the MT6227 deviceLaurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> At least one MT6227 model crashes when receiving a GET_DEF request on the video probe control. As the various models can't be told apart based on the descriptors, add a PROBE_DEF quirk to avoid sending the GET_DEF request and enable the quirk for all models. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2009-06-26uvcvideo: Move UVC definitions to linux/usb/video.hLaurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> To make UVC constants accessible by a future UVC gadget driver, move them from drivers/media/video/uvc/uvcvideo.h to include/linux/usb/video.h. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2009-06-26uvcvideo: Remove unused Logitech-specific constantsLaurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> Those constants are not used anymore, remove them. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2009-06-26uvcvideo: Prefix all UVC constants with UVC_Laurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> In preparation to moving UVC constants to a public location, prefix all constants with UVC_ to avoid namespace clashes. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2009-06-26uvcvideo: Use class-specific descriptor types from usb/ch9.hLaurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> uvcvideo.h redefines class-specific descriptor types already present in usb/ch9.h. Remove the duplicated definitions and use the ones from usb/ch9.h. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2009-06-04uvcvideo: Don't accept to change the format when buffers are allocated.Laurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> Setting a new frame format or size will likely change the buffer size required to store a complete video frame. To avoid a buffer overflow, don't allow VIDIOC_S_FMT calls when video buffers are already allocated. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2009-05-31uvcvideo: Add generic control blacklist.Laurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> Another device (5986:0241) has been reported to advertise a UVC control it does not support. Rework the control blacklist to match devices by their VID:PID instead of trying to be clever about which controls might not be supported properly. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2009-05-19uvcvideo: Start status polling on device openLaurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> Most UVC camera include an interrupt endpoint to report control value changes, video streaming errors and camera button events. The USB controller continuously polls the interrupt endpoint to retrieve such events. This prevents the device from being auto-suspended, and thus consumes power. Reporting video streaming errors don't make sense when the V4L2 device is closed. Control value changes are probably useless as well if nobody listens to the events, although caching will probably have to be completely disabled then. No polling is thus be required when /dev/videoX is not opened. To enable auto-suspend and save power do not poll the interrupt endpoint until the device is open. We lose the ability to detect button events if no application is using the camera. http://bugzilla.kernel.org/show_bug.cgi?id=11948 Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2009-02-16uvcvideo: Add quirk to override wrong bandwidth value for Vimicro devicesLaurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> At least 3 Vimicro cameras (0x332d, 0x3410 and 0x3420) fail to return correct bandwidth information. The first model rounds the value provided by the host to the nearest supported packet size, while the other two always request the maximum bandwidth. Introduce a device quirk to override the value returned by the device with an estimated bandwidth computed by the driver from the frame size and frame rate, and enable it for all Vimicro cameras. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2009-01-22uvcvideo: Fix memory leak in input device handlingLaurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> The dynamically allocated input_dev->phys buffer isn't freed when unregistering the device. As the input layer doesn't provide any release callback, use a fixed-size buffer inside the uvc_device structure. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2009-01-18uvcvideo: Retry URB buffers allocation when the system is low on memory.Laurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> URB buffers for video transfers are sized to UVC_MAX_PACKETS bulk/isochronous packets by default. If the system is too low on memory try successively smaller numbers of packets until allocation succeeds. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be> Reviewed-by: Johannes Berg <johannes@sipsolutions.net> Tested-by: Johannes Berg <johannes@sipsolutions.net>
2009-01-08merge: http://linuxtv.org/hg/~pinchartl/uvcvideoMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-01-03uvcvideo: Whitespace and comments cleanup, copyright updates.Laurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2008-12-29uvcvideo: Add support for video output devicesLaurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> Extend the range of supported UVC devices by allowing video output devices matching the following structure: TT_STREAMING -> VC_PROCESSING_UNIT -> VC_EXTENSION_UNIT{0,n} -> OTT_* Video output devices are reported with the V4L2_CAP_VIDEO_OUTPUT capability flag and are subject to the same restrictions as video input devices. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2008-12-16uvcvideo: V4L2 zoom controls supportLaurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> Add support for absolute and continuous zoom controls (mapped to absolute and relative UVC zoom controls). Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2008-12-06uvcvideo: Add a device quirk to prune bogus controls.Laurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> Bogus controls currently include processing unit auto controls for which no corresponding manual control is available. Such auto controls make little sense if any, and are known to crash at least the SiGma Micro webcam. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2008-12-06uvcvideo: Add nodrop module parameter to turn incomplete frame drop off.Laurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> The driver drops incomplete uncompressed video frames to avoid confusing userspace with corrupt data. Add a nodrop module parameter to turn that behaviour off and make all frames available to userspace. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2008-11-25uvcvideo: Prevent compat.h from being included in userspace code.Laurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> When used in userspace code, the uvcvideo.h header shouldn't pull compat.h. Make sure this won't happen by moving the #include to a __KERNEL__ protected section. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2008-12-30v4l2: introduce v4l2_file_operations.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Introduce a struct v4l2_file_operations for v4l2 drivers. Remove the unnecessary inode argument. Move compat32 handling (and llseek) into the v4l2-dev core: this is now handled in the v4l2 core and no longer in the drivers themselves. Note that this changeset reverts an earlier patch that changed the return type of__video_ioctl2 from int to long. This change will be reinstated later in a much improved version. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-11-11uvcvideo: Enable compilation on kernels older than 2.6.22Laurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> The uvcvideo driver makes use of the usb_endpoint_* functions as well as the list_first_entry and uninitialized_var macros. Add them to v4l/compat.h and update the driver with kernel version-based conditional compilation sections. Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2008-11-08uvcvideo: Handle failed video GET_{MIN|MAX|DEF} requests more gracefullyLaurent Pinchart
From: Laurent Pinchart <laurent.pinchart@skynet.be> Failed requests will now generate a one-time warning message instead of the usual "Failed to query..." error, which should be more user-friendly. The driver will also recover automatically from failed GET_MIN/GET_MAX requests when the device is half-broken without requiring the MINMAX quirk (fully broken devices still need the quirk). Priority: normal Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
2008-09-16V4L/DVB:usbvideo:don't use part of buffer for USB transfer #4Mauro Carvalho Chehab
From: Ming Lei <tom.leiming@gmail.com> The status[] is part of uvc_device structure. We can't make sure the address of status is at a cache-line boundary in all archs,so status[] might share a cache-line with some fields in uvc_structure. This can lead to some cache coherence issues(http://lwn.net/Articles/2265/). Use dynamically allocated buffer instead. Signed-off-by: Ming Lei <tom.leiming@gmail.com> Acked-by: Laurent Pinchart <laurent.pinchart@skynet.be> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-07-04uvcvideo: Don't free URB buffers on suspend.Mauro Carvalho Chehab
From: Laurent Pinchart <laurent.pinchart@skynet.be> All submitted URBs must be killed at suspend time, but URB buffers don't have to be freed. Avoiding a free on suspend/reallocate on resume lowers the presure on system memory. Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-06-30From: Laurent Pinchart <laurent.pinchart@skynet.be>Mauro Carvalho Chehab
USB Video Class driver This driver supports video input devices compliant with the USB Video Class specification. This means lots of currently manufactured webcams, and probably most of the future ones. Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be> Notice: Due to MAINTAINERS file that isn't at mercurial tree, I've committed it on my -git and backported to -hg. kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>