Skip to content

Commit

Permalink
V4L/DVB (10571): v4l2-framework.txt: Fixes the videobuf init functions
Browse files Browse the repository at this point in the history
Documents the driver usage functions, instead of the generic one used
by the videobuf specific handlers.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Mauro Carvalho Chehab committed Mar 30, 2009
1 parent 44061c0 commit a7a1c0e
Showing 1 changed file with 21 additions and 9 deletions.
30 changes: 21 additions & 9 deletions Documentation/video4linux/v4l2-framework.txt
Original file line number Diff line number Diff line change
Expand Up @@ -558,26 +558,38 @@ announcing that a new buffer were filled.
The irq handling code should handle the videobuf task lists, in order
to advice videobuf that a new frame were filled, in order to honor to a
request. The code is generally like this one:
if (list_empty(&dma_q->active))
if (list_empty(&dma_q->active))
return;

buf = list_entry(dma_q->active.next, struct vbuffer, vb.queue);
buf = list_entry(dma_q->active.next, struct vbuffer, vb.queue);

if (!waitqueue_active(&buf->vb.done))
if (!waitqueue_active(&buf->vb.done))
return;

/* Some logic to handle the buf may be needed here */

list_del(&buf->vb.queue);
do_gettimeofday(&buf->vb.ts);
wake_up(&buf->vb.done);
list_del(&buf->vb.queue);
do_gettimeofday(&buf->vb.ts);
wake_up(&buf->vb.done);

Those are the videobuffer functions used on drivers, implemented on
videobuf-core:

- videobuf_queue_core_init()
Initializes the videobuf infrastructure. This function should be
called before any other videobuf function.
- Videobuf init functions
videobuf_queue_sg_init()
Initializes the videobuf infrastructure. This function should be
called before any other videobuf function on drivers that uses DMA
Scatter/Gather buffers.

videobuf_queue_dma_contig_init
Initializes the videobuf infrastructure. This function should be
called before any other videobuf function on drivers that need DMA
contiguous buffers.

videobuf_queue_vmalloc_init()
Initializes the videobuf infrastructure. This function should be
called before any other videobuf function on USB (and other drivers)
that need a vmalloced type of videobuf.

- videobuf_iolock()
Prepares the videobuf memory for the proper method (read, mmap, overlay).
Expand Down

0 comments on commit a7a1c0e

Please sign in to comment.