]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
V4L/DVB (11990): saa7134-video.c: fix the block bug
authorfigo.zhang <figo.zhang@kolorific.com>
Fri, 8 May 2009 02:31:02 +0000 (23:31 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 16 Jun 2009 22:07:50 +0000 (19:07 -0300)
when re-open or re-start (video_streamon), the q->curr would not be NULL in saa7134_buffer_queue(),
and all the qbuf will add to q->queue list,no one to do activate to start DMA,and then no interrupt
would happened,so it will be block.

In VIDEOBUF_NEEDS_INIT state, initialize the curr pointer to be NULL in the buffer_prepare().

Signed-off-by: Figo.zhang <figo.zhang@kolorific.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/saa7134/saa7134-video.c

index ceae3c88f93e310e23b18c4b5708197b5b47da4b..e305c1674cee2415432519b2b6caf28062411cd0 100644 (file)
@@ -1057,6 +1057,7 @@ static int buffer_prepare(struct videobuf_queue *q,
                buf->vb.field  = field;
                buf->fmt       = fh->fmt;
                buf->pt        = &fh->pt_cap;
+               dev->video_q.curr = NULL;
 
                err = videobuf_iolock(q,&buf->vb,&dev->ovbuf);
                if (err)