summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/cx88/cx88-video.c
diff options
context:
space:
mode:
authorGerd Knorr <devnull@localhost>2004-03-05 15:39:48 +0000
committerGerd Knorr <devnull@localhost>2004-03-05 15:39:48 +0000
commit82b2d6930fd7bb41b71617ca5eba804605af5513 (patch)
treee12631fc0fc6a4bdcb627871750b5da51c5837e2 /linux/drivers/media/video/cx88/cx88-video.c
parentfaee4a0ef457ebde343292fad383df29c77b562b (diff)
downloadmediapointer-dvb-s2-82b2d6930fd7bb41b71617ca5eba804605af5513.tar.gz
mediapointer-dvb-s2-82b2d6930fd7bb41b71617ca5eba804605af5513.tar.bz2
- more cards supported in ir-kbd-gpio.c
- add magics to video-buf structs. - fix saa7134 oss driver spinlocks. - misc minor stuff.
Diffstat (limited to 'linux/drivers/media/video/cx88/cx88-video.c')
-rw-r--r--linux/drivers/media/video/cx88/cx88-video.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/linux/drivers/media/video/cx88/cx88-video.c b/linux/drivers/media/video/cx88/cx88-video.c
index e831b1c0d..56b72e44d 100644
--- a/linux/drivers/media/video/cx88/cx88-video.c
+++ b/linux/drivers/media/video/cx88/cx88-video.c
@@ -1757,6 +1757,30 @@ static int video_do_ioctl(struct inode *inode, struct file *file,
}
/* --- streaming capture ------------------------------------- */
+ case VIDIOCGMBUF:
+ {
+ struct video_mbuf *mbuf = arg;
+ struct videobuf_queue *q;
+ struct v4l2_requestbuffers req;
+ unsigned int i;
+
+ q = get_queue(fh);
+ memset(&req,0,sizeof(req));
+ req.type = q->type;
+ req.count = 8;
+ req.memory = V4L2_MEMORY_MMAP;
+ err = videobuf_reqbufs(file,q,&req);
+ if (err < 0)
+ return err;
+ memset(mbuf,0,sizeof(*mbuf));
+ mbuf->frames = req.count;
+ mbuf->size = 0;
+ for (i = 0; i < mbuf->frames; i++) {
+ mbuf->offsets[i] = q->bufs[i]->boff;
+ mbuf->size += q->bufs[i]->bsize;
+ }
+ return 0;
+ }
case VIDIOC_REQBUFS:
return videobuf_reqbufs(file, get_queue(fh), arg);