diff mbox

[RFCv6,16/16] vb2: update the buf_prepare/finish documentation

Message ID 1415623771-29634-17-git-send-email-hverkuil@xs4all.nl (mailing list archive)
State New, archived
Headers show

Commit Message

Hans Verkuil Nov. 10, 2014, 12:49 p.m. UTC
From: Hans Verkuil <hans.verkuil@cisco.com>

Document how the new vb2_plane_begin/end_cpu_access() functions should
be used in buf_prepare/finish.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
---
 include/media/videobuf2-core.h | 35 ++++++++++++++++++++++-------------
 1 file changed, 22 insertions(+), 13 deletions(-)
diff mbox

Patch

diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h
index 2f53252..1619248 100644
--- a/include/media/videobuf2-core.h
+++ b/include/media/videobuf2-core.h
@@ -282,21 +282,30 @@  struct vb2_buffer {
  *			perform any initialization required before each
  *			hardware operation in this callback; drivers can
  *			access/modify the buffer here as it is still synced for
- *			the CPU; drivers that support VIDIOC_CREATE_BUFS must
- *			also validate the buffer size; if an error is returned,
- *			the buffer will not be queued in driver; optional.
+ *			the CPU, provided you bracket the cpu access part with
+ *			@vb2_plane_begin_cpu_access and @vb2_plane_end_cpu_access;
+ *			when using videobuf2-vmalloc.h you can postpone the call
+ *			to @vb2_plane_end_cpu_access to @buf_finish; drivers
+ *			that support VIDIOC_CREATE_BUFS must also validate
+ *			the buffer size; if an error is returned, the buffer
+ *			will not be queued in driver; optional.
  * @buf_finish:		called before every dequeue of the buffer back to
  *			userspace; the buffer is synced for the CPU, so drivers
- *			can access/modify the buffer contents; drivers may
- *			perform any operations required before userspace
- *			accesses the buffer; optional. The buffer state can be
- *			one of the following: DONE and ERROR occur while
- *			streaming is in progress, and the PREPARED state occurs
- *			when the queue has been canceled and all pending
- *			buffers are being returned to their default DEQUEUED
- *			state. Typically you only have to do something if the
- *			state is VB2_BUF_STATE_DONE, since in all other cases
- *			the buffer contents will be ignored anyway.
+ *			can access/modify the buffer contents provided you
+ *			bracket the cpu access part with
+ *			@vb2_plane_begin_cpu_access and @vb2_plane_end_cpu_access;
+ *			when using videobuf2-vmalloc.h you can call
+ *			@vb2_plane_end_cpu_access here to bracket a corresponding
+ *			@vb2_plane_begin_cpu_access call in @buf_prepare;
+ *			drivers may perform any operations required before
+ *			userspace accesses the buffer; optional. The buffer
+ *			state can be one of the following: DONE and ERROR
+ *			occur while streaming is in progress, and the PREPARED
+ *			state occurs when the queue has been canceled and all
+ *			pending buffers are being returned to their default
+ *			DEQUEUED state. Typically you only have to do something
+ *			if the state is VB2_BUF_STATE_DONE, since in all other
+ *			cases the buffer contents will be ignored anyway.
  * @buf_cleanup:	called once before the buffer is freed; drivers may
  *			perform any additional cleanup; optional.
  * @start_streaming:	called once to enter 'streaming' state; the driver may