summaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx18/cx18-streams.h
diff options
context:
space:
mode:
authorAndy Walls <awalls@radix.net>2009-04-13 22:42:43 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-06-16 18:20:44 -0300
commit87116159517ecf6b9cf62a136f2935a63833c485 (patch)
tree4a52a97e9e740304ed44d4348762836284f4d100 /drivers/media/video/cx18/cx18-streams.h
parentdeed75ed9f7576ada4bca02e6c851833a352a38d (diff)
V4L/DVB (11616): cx18: Add a work queue for deferring empty buffer handoffs to the firmware
This change defers sending all CX18_CPU_DE_SET_MDL commands, for a stream with an ongoing capture, by adding a work queue to handle sending such commands when needed. This prevents any sleeps, caused by notifying the firmware of new usable buffers, when a V4L2 application read() is being satisfied or when an incoming buffer is processed by the cx18-NN-in work queue thread. Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx18/cx18-streams.h')
-rw-r--r--drivers/media/video/cx18/cx18-streams.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/media/video/cx18/cx18-streams.h b/drivers/media/video/cx18/cx18-streams.h
index 420e0a17294..1fdcfffb07e 100644
--- a/drivers/media/video/cx18/cx18-streams.h
+++ b/drivers/media/video/cx18/cx18-streams.h
@@ -28,10 +28,13 @@ int cx18_streams_setup(struct cx18 *cx);
int cx18_streams_register(struct cx18 *cx);
void cx18_streams_cleanup(struct cx18 *cx, int unregister);
-/* Capture related */
+/* Related to submission of buffers to firmware */
void cx18_stream_load_fw_queue(struct cx18_stream *s);
struct cx18_queue *cx18_stream_put_buf_fw(struct cx18_stream *s,
struct cx18_buffer *buf);
+void cx18_out_work_handler(struct work_struct *work);
+
+/* Capture related */
int cx18_start_v4l2_encode_stream(struct cx18_stream *s);
int cx18_stop_v4l2_encode_stream(struct cx18_stream *s, int gop_end);