diff options
| author | Ian Armstrong <ian@iarmst.demon.co.uk> | 2007-08-18 14:58:51 -0400 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-09-30 09:31:34 -0400 |
| commit | cb50f548c0ee9b2aac39743fc4021a7188825a98 (patch) | |
| tree | 85c07626d461391ee7640df00f91bb49acf2998c | |
| parent | a64314e62d89562b6fc77593648bec3acc35bf61 (diff) | |
V4L/DVB (6052): ivtv: fix udma yuv bug
Using udma yuv causes the driver becomes locked into that mode. This prevents
use of the mpeg decoder & non-udma yuv output. This patch clears the
operating mode when the device is closed.
Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
| -rw-r--r-- | drivers/media/video/ivtv/ivtv-fileops.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/media/video/ivtv/ivtv-fileops.c b/drivers/media/video/ivtv/ivtv-fileops.c index 0285c4a830eb..66ea3cbc369c 100644 --- a/drivers/media/video/ivtv/ivtv-fileops.c +++ b/drivers/media/video/ivtv/ivtv-fileops.c | |||
| @@ -754,9 +754,11 @@ static void ivtv_stop_decoding(struct ivtv_open_id *id, int flags, u64 pts) | |||
| 754 | ivtv_yuv_close(itv); | 754 | ivtv_yuv_close(itv); |
| 755 | } | 755 | } |
| 756 | if (s->type == IVTV_DEC_STREAM_TYPE_YUV && itv->output_mode == OUT_YUV) | 756 | if (s->type == IVTV_DEC_STREAM_TYPE_YUV && itv->output_mode == OUT_YUV) |
| 757 | itv->output_mode = OUT_NONE; | 757 | itv->output_mode = OUT_NONE; |
| 758 | else if (s->type == IVTV_DEC_STREAM_TYPE_YUV && itv->output_mode == OUT_UDMA_YUV) | ||
| 759 | itv->output_mode = OUT_NONE; | ||
| 758 | else if (s->type == IVTV_DEC_STREAM_TYPE_MPG && itv->output_mode == OUT_MPG) | 760 | else if (s->type == IVTV_DEC_STREAM_TYPE_MPG && itv->output_mode == OUT_MPG) |
| 759 | itv->output_mode = OUT_NONE; | 761 | itv->output_mode = OUT_NONE; |
| 760 | 762 | ||
| 761 | itv->speed = 0; | 763 | itv->speed = 0; |
| 762 | clear_bit(IVTV_F_I_DEC_PAUSED, &itv->i_flags); | 764 | clear_bit(IVTV_F_I_DEC_PAUSED, &itv->i_flags); |
