Merge branch 'for_3.8-rc1' into v4l_for_linus
* for_3.8-rc1: (243 commits) [media] omap3isp: Replace cpu_is_omap3630() with ISP revision check [media] omap3isp: Prepare/unprepare clocks before/after enable/disable [media] omap3isp: preview: Add support for 8-bit formats at the sink pad [media] omap3isp: Replace printk with dev_* [media] omap3isp: Find source pad from external entity [media] omap3isp: Configure CSI-2 phy based on platform data [media] omap3isp: Add PHY routing configuration [media] omap3isp: Add CSI configuration registers from control block to ISP resources [media] omap3isp: Remove unneeded module memory address definitions [media] omap3isp: Use monotonic timestamps for statistics buffers [media] uvcvideo: Fix control value clamping for unsigned integer controls [media] uvcvideo: Mark first output terminal as default video node [media] uvcvideo: Add VIDIOC_[GS]_PRIORITY support [media] uvcvideo: Return -ENOTTY for unsupported ioctls [media] uvcvideo: Set device_caps in VIDIOC_QUERYCAP [media] uvcvideo: Don't fail when an unsupported format is requested [media] uvcvideo: Return -EACCES when trying to access a read/write-only control [media] uvcvideo: Set error_idx properly for extended controls API failures [media] rtl28xxu: add NOXON DAB/DAB+ USB dongle rev 2 [media] fc2580: write some registers conditionally ...
This commit is contained in:
@@ -186,6 +186,7 @@ enum v4l2_memory {
|
||||
V4L2_MEMORY_MMAP = 1,
|
||||
V4L2_MEMORY_USERPTR = 2,
|
||||
V4L2_MEMORY_OVERLAY = 3,
|
||||
V4L2_MEMORY_DMABUF = 4,
|
||||
};
|
||||
|
||||
/* see also http://vektor.theorem.ca/graphics/ycbcr/ */
|
||||
@@ -602,6 +603,8 @@ struct v4l2_requestbuffers {
|
||||
* should be passed to mmap() called on the video node)
|
||||
* @userptr: when memory is V4L2_MEMORY_USERPTR, a userspace pointer
|
||||
* pointing to this plane
|
||||
* @fd: when memory is V4L2_MEMORY_DMABUF, a userspace file
|
||||
* descriptor associated with this plane
|
||||
* @data_offset: offset in the plane to the start of data; usually 0,
|
||||
* unless there is a header in front of the data
|
||||
*
|
||||
@@ -616,6 +619,7 @@ struct v4l2_plane {
|
||||
union {
|
||||
__u32 mem_offset;
|
||||
unsigned long userptr;
|
||||
__s32 fd;
|
||||
} m;
|
||||
__u32 data_offset;
|
||||
__u32 reserved[11];
|
||||
@@ -640,6 +644,8 @@ struct v4l2_plane {
|
||||
* (or a "cookie" that should be passed to mmap() as offset)
|
||||
* @userptr: for non-multiplanar buffers with memory == V4L2_MEMORY_USERPTR;
|
||||
* a userspace pointer pointing to this buffer
|
||||
* @fd: for non-multiplanar buffers with memory == V4L2_MEMORY_DMABUF;
|
||||
* a userspace file descriptor associated with this buffer
|
||||
* @planes: for multiplanar buffers; userspace pointer to the array of plane
|
||||
* info structs for this buffer
|
||||
* @length: size in bytes of the buffer (NOT its payload) for single-plane
|
||||
@@ -666,6 +672,7 @@ struct v4l2_buffer {
|
||||
__u32 offset;
|
||||
unsigned long userptr;
|
||||
struct v4l2_plane *planes;
|
||||
__s32 fd;
|
||||
} m;
|
||||
__u32 length;
|
||||
__u32 reserved2;
|
||||
@@ -687,6 +694,33 @@ struct v4l2_buffer {
|
||||
#define V4L2_BUF_FLAG_NO_CACHE_INVALIDATE 0x0800
|
||||
#define V4L2_BUF_FLAG_NO_CACHE_CLEAN 0x1000
|
||||
|
||||
/**
|
||||
* struct v4l2_exportbuffer - export of video buffer as DMABUF file descriptor
|
||||
*
|
||||
* @index: id number of the buffer
|
||||
* @type: enum v4l2_buf_type; buffer type (type == *_MPLANE for
|
||||
* multiplanar buffers);
|
||||
* @plane: index of the plane to be exported, 0 for single plane queues
|
||||
* @flags: flags for newly created file, currently only O_CLOEXEC is
|
||||
* supported, refer to manual of open syscall for more details
|
||||
* @fd: file descriptor associated with DMABUF (set by driver)
|
||||
*
|
||||
* Contains data used for exporting a video buffer as DMABUF file descriptor.
|
||||
* The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF
|
||||
* (identical to the cookie used to mmap() the buffer to userspace). All
|
||||
* reserved fields must be set to zero. The field reserved0 is expected to
|
||||
* become a structure 'type' allowing an alternative layout of the structure
|
||||
* content. Therefore this field should not be used for any other extensions.
|
||||
*/
|
||||
struct v4l2_exportbuffer {
|
||||
__u32 type; /* enum v4l2_buf_type */
|
||||
__u32 index;
|
||||
__u32 plane;
|
||||
__u32 flags;
|
||||
__s32 fd;
|
||||
__u32 reserved[11];
|
||||
};
|
||||
|
||||
/*
|
||||
* O V E R L A Y P R E V I E W
|
||||
*/
|
||||
@@ -737,7 +771,7 @@ struct v4l2_window {
|
||||
struct v4l2_captureparm {
|
||||
__u32 capability; /* Supported modes */
|
||||
__u32 capturemode; /* Current mode */
|
||||
struct v4l2_fract timeperframe; /* Time per frame in .1us units */
|
||||
struct v4l2_fract timeperframe; /* Time per frame in seconds */
|
||||
__u32 extendedmode; /* Driver-specific extensions */
|
||||
__u32 readbuffers; /* # of buffers for read */
|
||||
__u32 reserved[4];
|
||||
@@ -1888,6 +1922,7 @@ struct v4l2_create_buffers {
|
||||
#define VIDIOC_S_FBUF _IOW('V', 11, struct v4l2_framebuffer)
|
||||
#define VIDIOC_OVERLAY _IOW('V', 14, int)
|
||||
#define VIDIOC_QBUF _IOWR('V', 15, struct v4l2_buffer)
|
||||
#define VIDIOC_EXPBUF _IOWR('V', 16, struct v4l2_exportbuffer)
|
||||
#define VIDIOC_DQBUF _IOWR('V', 17, struct v4l2_buffer)
|
||||
#define VIDIOC_STREAMON _IOW('V', 18, int)
|
||||
#define VIDIOC_STREAMOFF _IOW('V', 19, int)
|
||||
|
Reference in New Issue
Block a user