diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-03-10 10:29:15 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-03-24 14:26:49 -0500 |
commit | c7b0ac0546985fc6361a8d92cf808d46da797677 (patch) | |
tree | 2147eb2f6dd7b2b82e0d7b4b9a26e12ef5193252 /drivers/media/video/saa7134/saa7134-video.c | |
parent | b2fd16b4ff2508ac16ae994f4bcd941f97754c00 (diff) |
V4L/DVB (3516): Make video_buf more generic
Video_buf were concerned to allow PCI devices to be used as
video capture devices. This patch extends video_buf features
by virtualizing pci-dependent functions and allowing other
type of devices to use it.
It is still DMA centric, although it may be used also by
devices that emulates scatter/gather behavior or a DMA device
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/saa7134/saa7134-video.c')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-video.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/media/video/saa7134/saa7134-video.c b/drivers/media/video/saa7134/saa7134-video.c index 57a11e71d99..aeef80f88a6 100644 --- a/drivers/media/video/saa7134/saa7134-video.c +++ b/drivers/media/video/saa7134/saa7134-video.c | |||
@@ -993,7 +993,7 @@ static int buffer_prepare(struct videobuf_queue *q, | |||
993 | buf->vb.size != size || | 993 | buf->vb.size != size || |
994 | buf->vb.field != field || | 994 | buf->vb.field != field || |
995 | buf->fmt != fh->fmt) { | 995 | buf->fmt != fh->fmt) { |
996 | saa7134_dma_free(dev,buf); | 996 | saa7134_dma_free(q,buf); |
997 | } | 997 | } |
998 | 998 | ||
999 | if (STATE_NEEDS_INIT == buf->vb.state) { | 999 | if (STATE_NEEDS_INIT == buf->vb.state) { |
@@ -1004,7 +1004,7 @@ static int buffer_prepare(struct videobuf_queue *q, | |||
1004 | buf->fmt = fh->fmt; | 1004 | buf->fmt = fh->fmt; |
1005 | buf->pt = &fh->pt_cap; | 1005 | buf->pt = &fh->pt_cap; |
1006 | 1006 | ||
1007 | err = videobuf_iolock(dev->pci,&buf->vb,&dev->ovbuf); | 1007 | err = videobuf_iolock(q,&buf->vb,&dev->ovbuf); |
1008 | if (err) | 1008 | if (err) |
1009 | goto oops; | 1009 | goto oops; |
1010 | err = saa7134_pgtable_build(dev->pci,buf->pt, | 1010 | err = saa7134_pgtable_build(dev->pci,buf->pt, |
@@ -1019,7 +1019,7 @@ static int buffer_prepare(struct videobuf_queue *q, | |||
1019 | return 0; | 1019 | return 0; |
1020 | 1020 | ||
1021 | oops: | 1021 | oops: |
1022 | saa7134_dma_free(dev,buf); | 1022 | saa7134_dma_free(q,buf); |
1023 | return err; | 1023 | return err; |
1024 | } | 1024 | } |
1025 | 1025 | ||
@@ -1045,10 +1045,9 @@ static void buffer_queue(struct videobuf_queue *q, struct videobuf_buffer *vb) | |||
1045 | 1045 | ||
1046 | static void buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb) | 1046 | static void buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb) |
1047 | { | 1047 | { |
1048 | struct saa7134_fh *fh = q->priv_data; | ||
1049 | struct saa7134_buf *buf = container_of(vb,struct saa7134_buf,vb); | 1048 | struct saa7134_buf *buf = container_of(vb,struct saa7134_buf,vb); |
1050 | 1049 | ||
1051 | saa7134_dma_free(fh->dev,buf); | 1050 | saa7134_dma_free(q,buf); |
1052 | } | 1051 | } |
1053 | 1052 | ||
1054 | static struct videobuf_queue_ops video_qops = { | 1053 | static struct videobuf_queue_ops video_qops = { |