media: vb2: drop VB2_BUF_STATE_PREPARED, use bool prepared/synced instead
The PREPARED state becomes a problem with the request API: a buffer could be PREPARED but dequeued, or PREPARED and in state IN_REQUEST. PREPARED is really not a state as such, but more a property of the buffer. So make new 'prepared' and 'synced' bools instead to remember whether the buffer is prepared and/or synced or not. V4L2_BUF_FLAG_PREPARED is only set if the buffer is both synced and prepared and in the DEQUEUED state. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Reviewed-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
这个提交包含在:
@@ -204,7 +204,6 @@ enum vb2_io_modes {
|
||||
* enum vb2_buffer_state - current video buffer state.
|
||||
* @VB2_BUF_STATE_DEQUEUED: buffer under userspace control.
|
||||
* @VB2_BUF_STATE_PREPARING: buffer is being prepared in videobuf.
|
||||
* @VB2_BUF_STATE_PREPARED: buffer prepared in videobuf and by the driver.
|
||||
* @VB2_BUF_STATE_QUEUED: buffer queued in videobuf, but not in driver.
|
||||
* @VB2_BUF_STATE_REQUEUEING: re-queue a buffer to the driver.
|
||||
* @VB2_BUF_STATE_ACTIVE: buffer queued in driver and possibly used
|
||||
@@ -218,7 +217,6 @@ enum vb2_io_modes {
|
||||
enum vb2_buffer_state {
|
||||
VB2_BUF_STATE_DEQUEUED,
|
||||
VB2_BUF_STATE_PREPARING,
|
||||
VB2_BUF_STATE_PREPARED,
|
||||
VB2_BUF_STATE_QUEUED,
|
||||
VB2_BUF_STATE_REQUEUEING,
|
||||
VB2_BUF_STATE_ACTIVE,
|
||||
@@ -250,6 +248,12 @@ struct vb2_buffer {
|
||||
/* private: internal use only
|
||||
*
|
||||
* state: current buffer state; do not change
|
||||
* synced: this buffer has been synced for DMA, i.e. the
|
||||
* 'prepare' memop was called. It is cleared again
|
||||
* after the 'finish' memop is called.
|
||||
* prepared: this buffer has been prepared, i.e. the
|
||||
* buf_prepare op was called. It is cleared again
|
||||
* after the 'buf_finish' op is called.
|
||||
* queued_entry: entry on the queued buffers list, which holds
|
||||
* all buffers queued from userspace
|
||||
* done_entry: entry on the list that stores all buffers ready
|
||||
@@ -257,6 +261,8 @@ struct vb2_buffer {
|
||||
* vb2_plane: per-plane information; do not change
|
||||
*/
|
||||
enum vb2_buffer_state state;
|
||||
bool synced;
|
||||
bool prepared;
|
||||
|
||||
struct vb2_plane planes[VB2_MAX_PLANES];
|
||||
struct list_head queued_entry;
|
||||
|
在新工单中引用
屏蔽一个用户