Commit 60e7926b authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

media: videobuf2-core: improve kernel-doc markups

Now that nested structs are supported, change the
documentation to use it. While here, add cross-references
where pertinent and use monotonic fonts where pertinent,
using the right markup tags.
Acked-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 20139f18
...@@ -69,7 +69,7 @@ struct vb2_threadio_data; ...@@ -69,7 +69,7 @@ struct vb2_threadio_data;
* argument to other ops in this structure. * argument to other ops in this structure.
* @put_userptr: inform the allocator that a USERPTR buffer will no longer * @put_userptr: inform the allocator that a USERPTR buffer will no longer
* be used. * be used.
* @attach_dmabuf: attach a shared struct dma_buf for a hardware operation; * @attach_dmabuf: attach a shared &struct dma_buf for a hardware operation;
* used for DMABUF memory types; dev is the alloc device * used for DMABUF memory types; dev is the alloc device
* dbuf is the shared dma_buf; returns ERR_PTR() on failure; * dbuf is the shared dma_buf; returns ERR_PTR() on failure;
* allocator private per-buffer structure on success; * allocator private per-buffer structure on success;
...@@ -153,20 +153,19 @@ struct vb2_mem_ops { ...@@ -153,20 +153,19 @@ struct vb2_mem_ops {
* @length: size of this plane (NOT the payload) in bytes * @length: size of this plane (NOT the payload) in bytes
* @min_length: minimum required size of this plane (NOT the payload) in bytes. * @min_length: minimum required size of this plane (NOT the payload) in bytes.
* @length is always greater or equal to @min_length. * @length is always greater or equal to @min_length.
* @offset: when memory in the associated struct vb2_buffer is * @m: Union with memtype-specific data
* VB2_MEMORY_MMAP, equals the offset from the start of * @m.offset: when memory in the associated struct vb2_buffer is
* %VB2_MEMORY_MMAP, equals the offset from the start of
* the device memory for this plane (or is a "cookie" that * the device memory for this plane (or is a "cookie" that
* should be passed to mmap() called on the video node) * should be passed to mmap() called on the video node)
* @userptr: when memory is VB2_MEMORY_USERPTR, a userspace pointer * @m.userptr: when memory is %VB2_MEMORY_USERPTR, a userspace pointer
* pointing to this plane * pointing to this plane
* @fd: when memory is VB2_MEMORY_DMABUF, a userspace file * @m.fd: when memory is %VB2_MEMORY_DMABUF, a userspace file
* descriptor associated with this plane * descriptor associated with this plane
* @m: Union with memtype-specific data (@offset, @userptr or
* @fd).
* @data_offset: offset in the plane to the start of data; usually 0, * @data_offset: offset in the plane to the start of data; usually 0,
* unless there is a header in front of the data * unless there is a header in front of the data
* Should contain enough information to be able to cover all the fields * Should contain enough information to be able to cover all the fields
* of struct v4l2_plane at videodev2.h * of &struct v4l2_plane at videodev2.h
*/ */
struct vb2_plane { struct vb2_plane {
void *mem_priv; void *mem_priv;
...@@ -356,7 +355,7 @@ struct vb2_buffer { ...@@ -356,7 +355,7 @@ struct vb2_buffer {
* driver can return an error if hardware fails, in that * driver can return an error if hardware fails, in that
* case all buffers that have been already given by * case all buffers that have been already given by
* the @buf_queue callback are to be returned by the driver * the @buf_queue callback are to be returned by the driver
* by calling vb2_buffer_done() with %VB2_BUF_STATE_QUEUED. * by calling vb2_buffer_done() with %%VB2_BUF_STATE_QUEUED.
* If you need a minimum number of buffers before you can * If you need a minimum number of buffers before you can
* start streaming, then set @min_buffers_needed in the * start streaming, then set @min_buffers_needed in the
* vb2_queue structure. If that is non-zero then * vb2_queue structure. If that is non-zero then
...@@ -366,7 +365,7 @@ struct vb2_buffer { ...@@ -366,7 +365,7 @@ struct vb2_buffer {
* should stop any DMA transactions or wait until they * should stop any DMA transactions or wait until they
* finish and give back all buffers it got from &buf_queue * finish and give back all buffers it got from &buf_queue
* callback by calling vb2_buffer_done() with either * callback by calling vb2_buffer_done() with either
* %VB2_BUF_STATE_DONE or %VB2_BUF_STATE_ERROR; may use * %VB2_BUF_STATE_DONE or %%VB2_BUF_STATE_ERROR; may use
* vb2_wait_for_all_buffers() function * vb2_wait_for_all_buffers() function
* @buf_queue: passes buffer vb to the driver; driver may start * @buf_queue: passes buffer vb to the driver; driver may start
* hardware operation on this buffer; driver should give * hardware operation on this buffer; driver should give
...@@ -401,13 +400,13 @@ struct vb2_ops { ...@@ -401,13 +400,13 @@ struct vb2_ops {
* @verify_planes_array: Verify that a given user space structure contains * @verify_planes_array: Verify that a given user space structure contains
* enough planes for the buffer. This is called * enough planes for the buffer. This is called
* for each dequeued buffer. * for each dequeued buffer.
* @fill_user_buffer: given a vb2_buffer fill in the userspace structure. * @fill_user_buffer: given a &vb2_buffer fill in the userspace structure.
* For V4L2 this is a struct v4l2_buffer. * For V4L2 this is a struct v4l2_buffer.
* @fill_vb2_buffer: given a userspace structure, fill in the vb2_buffer. * @fill_vb2_buffer: given a userspace structure, fill in the &vb2_buffer.
* If the userspace structure is invalid, then this op * If the userspace structure is invalid, then this op
* will return an error. * will return an error.
* @copy_timestamp: copy the timestamp from a userspace structure to * @copy_timestamp: copy the timestamp from a userspace structure to
* the vb2_buffer struct. * the &vb2_buffer struct.
*/ */
struct vb2_buf_ops { struct vb2_buf_ops {
int (*verify_planes_array)(struct vb2_buffer *vb, const void *pb); int (*verify_planes_array)(struct vb2_buffer *vb, const void *pb);
...@@ -428,10 +427,10 @@ struct vb2_buf_ops { ...@@ -428,10 +427,10 @@ struct vb2_buf_ops {
* doesn't fill in the @alloc_devs array. * doesn't fill in the @alloc_devs array.
* @dma_attrs: DMA attributes to use for the DMA. * @dma_attrs: DMA attributes to use for the DMA.
* @bidirectional: when this flag is set the DMA direction for the buffers of * @bidirectional: when this flag is set the DMA direction for the buffers of
* this queue will be overridden with DMA_BIDIRECTIONAL direction. * this queue will be overridden with %DMA_BIDIRECTIONAL direction.
* This is useful in cases where the hardware (firmware) writes to * This is useful in cases where the hardware (firmware) writes to
* a buffer which is mapped as read (DMA_TO_DEVICE), or reads from * a buffer which is mapped as read (%DMA_TO_DEVICE), or reads from
* buffer which is mapped for write (DMA_FROM_DEVICE) in order * buffer which is mapped for write (%DMA_FROM_DEVICE) in order
* to satisfy some internal hardware restrictions or adds a padding * to satisfy some internal hardware restrictions or adds a padding
* needed by the processing algorithm. In case the DMA mapping is * needed by the processing algorithm. In case the DMA mapping is
* not bidirectional but the hardware (firmware) trying to access * not bidirectional but the hardware (firmware) trying to access
...@@ -440,10 +439,10 @@ struct vb2_buf_ops { ...@@ -440,10 +439,10 @@ struct vb2_buf_ops {
* @fileio_read_once: report EOF after reading the first buffer * @fileio_read_once: report EOF after reading the first buffer
* @fileio_write_immediately: queue buffer after each write() call * @fileio_write_immediately: queue buffer after each write() call
* @allow_zero_bytesused: allow bytesused == 0 to be passed to the driver * @allow_zero_bytesused: allow bytesused == 0 to be passed to the driver
* @quirk_poll_must_check_waiting_for_buffers: Return POLLERR at poll when QBUF * @quirk_poll_must_check_waiting_for_buffers: Return %POLLERR at poll when QBUF
* has not been called. This is a vb1 idiom that has been adopted * has not been called. This is a vb1 idiom that has been adopted
* also by vb2. * also by vb2.
* @lock: pointer to a mutex that protects the vb2_queue struct. The * @lock: pointer to a mutex that protects the &vb2_queue struct. The
* driver can set this to a mutex to let the v4l2 core serialize * driver can set this to a mutex to let the v4l2 core serialize
* the queuing ioctls. If the driver wants to handle locking * the queuing ioctls. If the driver wants to handle locking
* itself, then this should be set to NULL. This lock is not used * itself, then this should be set to NULL. This lock is not used
...@@ -464,7 +463,7 @@ struct vb2_buf_ops { ...@@ -464,7 +463,7 @@ struct vb2_buf_ops {
* @timestamp_flags: Timestamp flags; V4L2_BUF_FLAG_TIMESTAMP_* and * @timestamp_flags: Timestamp flags; V4L2_BUF_FLAG_TIMESTAMP_* and
* V4L2_BUF_FLAG_TSTAMP_SRC_* * V4L2_BUF_FLAG_TSTAMP_SRC_*
* @gfp_flags: additional gfp flags used when allocating the buffers. * @gfp_flags: additional gfp flags used when allocating the buffers.
* Typically this is 0, but it may be e.g. GFP_DMA or __GFP_DMA32 * Typically this is 0, but it may be e.g. %GFP_DMA or %__GFP_DMA32
* to force the buffer allocation to a specific memory zone. * to force the buffer allocation to a specific memory zone.
* @min_buffers_needed: the minimum number of buffers needed before * @min_buffers_needed: the minimum number of buffers needed before
* @start_streaming can be called. Used when a DMA engine * @start_streaming can be called. Used when a DMA engine
...@@ -491,13 +490,13 @@ struct vb2_buf_ops { ...@@ -491,13 +490,13 @@ struct vb2_buf_ops {
* @error: a fatal error occurred on the queue * @error: a fatal error occurred on the queue
* @waiting_for_buffers: used in poll() to check if vb2 is still waiting for * @waiting_for_buffers: used in poll() to check if vb2 is still waiting for
* buffers. Only set for capture queues if qbuf has not yet been * buffers. Only set for capture queues if qbuf has not yet been
* called since poll() needs to return POLLERR in that situation. * called since poll() needs to return %POLLERR in that situation.
* @is_multiplanar: set if buffer type is multiplanar * @is_multiplanar: set if buffer type is multiplanar
* @is_output: set if buffer type is output * @is_output: set if buffer type is output
* @copy_timestamp: set if vb2-core should set timestamps * @copy_timestamp: set if vb2-core should set timestamps
* @last_buffer_dequeued: used in poll() and DQBUF to immediately return if the * @last_buffer_dequeued: used in poll() and DQBUF to immediately return if the
* last decoded buffer was already dequeued. Set for capture queues * last decoded buffer was already dequeued. Set for capture queues
* when a buffer with the V4L2_BUF_FLAG_LAST is dequeued. * when a buffer with the %V4L2_BUF_FLAG_LAST is dequeued.
* @fileio: file io emulator internal data, used only if emulator is active * @fileio: file io emulator internal data, used only if emulator is active
* @threadio: thread io internal data, used only if thread is active * @threadio: thread io internal data, used only if thread is active
*/ */
...@@ -569,7 +568,7 @@ struct vb2_queue { ...@@ -569,7 +568,7 @@ struct vb2_queue {
/** /**
* vb2_plane_vaddr() - Return a kernel virtual address of a given plane * vb2_plane_vaddr() - Return a kernel virtual address of a given plane
* @vb: vb2_buffer to which the plane in question belongs to * @vb: &vb2_buffer to which the plane in question belongs to
* @plane_no: plane number for which the address is to be returned * @plane_no: plane number for which the address is to be returned
* *
* This function returns a kernel virtual address of a given plane if * This function returns a kernel virtual address of a given plane if
...@@ -579,7 +578,7 @@ void *vb2_plane_vaddr(struct vb2_buffer *vb, unsigned int plane_no); ...@@ -579,7 +578,7 @@ void *vb2_plane_vaddr(struct vb2_buffer *vb, unsigned int plane_no);
/** /**
* vb2_plane_cookie() - Return allocator specific cookie for the given plane * vb2_plane_cookie() - Return allocator specific cookie for the given plane
* @vb: vb2_buffer to which the plane in question belongs to * @vb: &vb2_buffer to which the plane in question belongs to
* @plane_no: plane number for which the cookie is to be returned * @plane_no: plane number for which the cookie is to be returned
* *
* This function returns an allocator specific cookie for a given plane if * This function returns an allocator specific cookie for a given plane if
...@@ -644,7 +643,7 @@ int vb2_wait_for_all_buffers(struct vb2_queue *q); ...@@ -644,7 +643,7 @@ int vb2_wait_for_all_buffers(struct vb2_queue *q);
* @index: id number of the buffer * @index: id number of the buffer
* @pb: buffer struct passed from userspace * @pb: buffer struct passed from userspace
* *
* Should be called from vidioc_querybuf ioctl handler in driver. * Should be called from &vidioc_querybuf ioctl handler in driver.
* The passed buffer should have been verified. * The passed buffer should have been verified.
* This function fills the relevant information for the userspace. * This function fills the relevant information for the userspace.
*/ */
...@@ -656,7 +655,7 @@ void vb2_core_querybuf(struct vb2_queue *q, unsigned int index, void *pb); ...@@ -656,7 +655,7 @@ void vb2_core_querybuf(struct vb2_queue *q, unsigned int index, void *pb);
* @memory: memory type * @memory: memory type
* @count: requested buffer count * @count: requested buffer count
* *
* Should be called from vidioc_reqbufs ioctl handler of a driver. * Should be called from &vidioc_reqbufs ioctl handler of a driver.
* *
* This function: * This function:
* *
...@@ -664,7 +663,7 @@ void vb2_core_querybuf(struct vb2_queue *q, unsigned int index, void *pb); ...@@ -664,7 +663,7 @@ void vb2_core_querybuf(struct vb2_queue *q, unsigned int index, void *pb);
* #) sets up the queue, * #) sets up the queue,
* #) negotiates number of buffers and planes per buffer with the driver * #) negotiates number of buffers and planes per buffer with the driver
* to be used during streaming, * to be used during streaming,
* #) allocates internal buffer structures (struct vb2_buffer), according to * #) allocates internal buffer structures (&struct vb2_buffer), according to
* the agreed parameters, * the agreed parameters,
* #) for MMAP memory type, allocates actual video memory, using the * #) for MMAP memory type, allocates actual video memory, using the
* memory handling/allocation routines provided during queue initialization * memory handling/allocation routines provided during queue initialization
...@@ -779,7 +778,7 @@ int vb2_core_streamoff(struct vb2_queue *q, unsigned int type); ...@@ -779,7 +778,7 @@ int vb2_core_streamoff(struct vb2_queue *q, unsigned int type);
* @type: buffer type * @type: buffer type
* @index: id number of the buffer * @index: id number of the buffer
* @plane: index of the plane to be exported, 0 for single plane queues * @plane: index of the plane to be exported, 0 for single plane queues
* @flags: flags for newly created file, currently only O_CLOEXEC is * @flags: flags for newly created file, currently only %O_CLOEXEC is
* supported, refer to manual of open syscall for more details * supported, refer to manual of open syscall for more details
* *
* The return values from this function are intended to be directly returned * The return values from this function are intended to be directly returned
...@@ -792,7 +791,7 @@ int vb2_core_expbuf(struct vb2_queue *q, int *fd, unsigned int type, ...@@ -792,7 +791,7 @@ int vb2_core_expbuf(struct vb2_queue *q, int *fd, unsigned int type,
* vb2_core_queue_init() - initialize a videobuf2 queue * vb2_core_queue_init() - initialize a videobuf2 queue
* @q: videobuf2 queue; this structure should be allocated in driver * @q: videobuf2 queue; this structure should be allocated in driver
* *
* The vb2_queue structure should be allocated by the driver. The driver is * The &vb2_queue structure should be allocated by the driver. The driver is
* responsible of clearing it's content and setting initial values for some * responsible of clearing it's content and setting initial values for some
* required entries before calling this function. * required entries before calling this function.
* q->ops, q->mem_ops, q->type and q->io_modes are mandatory. Please refer * q->ops, q->mem_ops, q->type and q->io_modes are mandatory. Please refer
...@@ -819,8 +818,8 @@ void vb2_core_queue_release(struct vb2_queue *q); ...@@ -819,8 +818,8 @@ void vb2_core_queue_release(struct vb2_queue *q);
* waiting on the queue. Polling will now set POLLERR and queuing and dequeuing * waiting on the queue. Polling will now set POLLERR and queuing and dequeuing
* buffers will return -EIO. * buffers will return -EIO.
* *
* The error flag will be cleared when cancelling the queue, either from * The error flag will be cleared when canceling the queue, either from
* vb2_streamoff or vb2_queue_release. Drivers should thus not call this * vb2_streamoff() or vb2_queue_release(). Drivers should thus not call this
* function before starting the stream, otherwise the error flag will remain set * function before starting the stream, otherwise the error flag will remain set
* until the queue is released when closing the device node. * until the queue is released when closing the device node.
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment