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-vbi.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-vbi.c')
-rw-r--r-- | drivers/media/video/saa7134/saa7134-vbi.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/media/video/saa7134/saa7134-vbi.c b/drivers/media/video/saa7134/saa7134-vbi.c index f4aee0af80e1..f38366a470fa 100644 --- a/drivers/media/video/saa7134/saa7134-vbi.c +++ b/drivers/media/video/saa7134/saa7134-vbi.c | |||
@@ -135,7 +135,7 @@ static int buffer_prepare(struct videobuf_queue *q, | |||
135 | return -EINVAL; | 135 | return -EINVAL; |
136 | 136 | ||
137 | if (buf->vb.size != size) | 137 | if (buf->vb.size != size) |
138 | saa7134_dma_free(dev,buf); | 138 | saa7134_dma_free(q,buf); |
139 | 139 | ||
140 | if (STATE_NEEDS_INIT == buf->vb.state) { | 140 | if (STATE_NEEDS_INIT == buf->vb.state) { |
141 | buf->vb.width = llength; | 141 | buf->vb.width = llength; |
@@ -143,7 +143,7 @@ static int buffer_prepare(struct videobuf_queue *q, | |||
143 | buf->vb.size = size; | 143 | buf->vb.size = size; |
144 | buf->pt = &fh->pt_vbi; | 144 | buf->pt = &fh->pt_vbi; |
145 | 145 | ||
146 | err = videobuf_iolock(dev->pci,&buf->vb,NULL); | 146 | err = videobuf_iolock(q,&buf->vb,NULL); |
147 | if (err) | 147 | if (err) |
148 | goto oops; | 148 | goto oops; |
149 | err = saa7134_pgtable_build(dev->pci,buf->pt, | 149 | err = saa7134_pgtable_build(dev->pci,buf->pt, |
@@ -159,7 +159,7 @@ static int buffer_prepare(struct videobuf_queue *q, | |||
159 | return 0; | 159 | return 0; |
160 | 160 | ||
161 | oops: | 161 | oops: |
162 | saa7134_dma_free(dev,buf); | 162 | saa7134_dma_free(q,buf); |
163 | return err; | 163 | return err; |
164 | } | 164 | } |
165 | 165 | ||
@@ -190,11 +190,9 @@ static void buffer_queue(struct videobuf_queue *q, struct videobuf_buffer *vb) | |||
190 | 190 | ||
191 | static void buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb) | 191 | static void buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb) |
192 | { | 192 | { |
193 | struct saa7134_fh *fh = q->priv_data; | ||
194 | struct saa7134_dev *dev = fh->dev; | ||
195 | struct saa7134_buf *buf = container_of(vb,struct saa7134_buf,vb); | 193 | struct saa7134_buf *buf = container_of(vb,struct saa7134_buf,vb); |
196 | 194 | ||
197 | saa7134_dma_free(dev,buf); | 195 | saa7134_dma_free(q,buf); |
198 | } | 196 | } |
199 | 197 | ||
200 | struct videobuf_queue_ops saa7134_vbi_qops = { | 198 | struct videobuf_queue_ops saa7134_vbi_qops = { |