diff options
author | Patrick Boettcher <pb@linuxtv.org> | 2008-12-10 22:28:25 +0100 |
---|---|---|
committer | Patrick Boettcher <pb@linuxtv.org> | 2008-12-10 22:28:25 +0100 |
commit | a9efe23fbe1000bff6e24012a5b580f9a8b93a92 (patch) | |
tree | 0308e2214bcc86e348e5d731d6bf958f1d4bf54f /linux/drivers/media/video/cx18/cx18-streams.c | |
parent | 12583b9f4af4d04cce76742c9859bff4068e6345 (diff) | |
parent | 97b478e31ccddc358a73628542bb2d32983abeac (diff) | |
download | mediapointer-dvb-s2-a9efe23fbe1000bff6e24012a5b580f9a8b93a92.tar.gz mediapointer-dvb-s2-a9efe23fbe1000bff6e24012a5b580f9a8b93a92.tar.bz2 |
sync from main
From: Patrick Boettcher <pb@linuxtv.org>
sync from main
Priority: normal
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Diffstat (limited to 'linux/drivers/media/video/cx18/cx18-streams.c')
-rw-r--r-- | linux/drivers/media/video/cx18/cx18-streams.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/linux/drivers/media/video/cx18/cx18-streams.c b/linux/drivers/media/video/cx18/cx18-streams.c index d29a0b61b..f7a7f38d8 100644 --- a/linux/drivers/media/video/cx18/cx18-streams.c +++ b/linux/drivers/media/video/cx18/cx18-streams.c @@ -4,6 +4,7 @@ * Derived from ivtv-streams.c * * Copyright (C) 2007 Hans Verkuil <hverkuil@xs4all.nl> + * Copyright (C) 2008 Andy Walls <awalls@radix.net> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -132,7 +133,7 @@ static void cx18_stream_init(struct cx18 *cx, int type) s->buffers = 63; s->buf_size = (max_size / s->buffers) & ~0xfff; } - spin_lock_init(&s->qlock); + mutex_init(&s->qlock); init_waitqueue_head(&s->waitq); s->id = -1; cx18_queue_init(&s->q_free); @@ -622,3 +623,21 @@ u32 cx18_find_handle(struct cx18 *cx) } return CX18_INVALID_TASK_HANDLE; } + +struct cx18_stream *cx18_handle_to_stream(struct cx18 *cx, u32 handle) +{ + int i; + struct cx18_stream *s; + + if (handle == CX18_INVALID_TASK_HANDLE) + return NULL; + + for (i = 0; i < CX18_MAX_STREAMS; i++) { + s = &cx->streams[i]; + if (s->handle != handle) + continue; + if (s->v4l2dev || s->dvb.enabled) + return s; + } + return NULL; +} |