mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-23 11:04:44 +08:00
V4L/DVB (8090): ivtv: yuv decoder lock fix (2)
The IVTV_IOC_DMA_FRAME ioctl fails to correctly 'start' the decoder. Although yuv output will be correct, some functions which should be disabled while the decoder is in use remain enabled. This can result in hardware registers being corrupted, causing problems with the mpeg decoder. This patch ensures the decoder 'start' sequence is called, disabling these functions until 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>
This commit is contained in:
parent
03c2808503
commit
42b03fe16f
@ -1539,7 +1539,7 @@ static int ivtv_decoder_ioctls(struct file *filp, unsigned int cmd, void *arg)
|
||||
return -EINVAL;
|
||||
if (itv->output_mode == OUT_UDMA_YUV && args->y_source == NULL)
|
||||
return 0;
|
||||
if (ivtv_claim_stream(id, id->type)) {
|
||||
if (ivtv_start_decoding(id, id->type)) {
|
||||
return -EBUSY;
|
||||
}
|
||||
if (ivtv_set_output_mode(itv, OUT_UDMA_YUV) != OUT_UDMA_YUV) {
|
||||
|
Loading…
Reference in New Issue
Block a user