diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2006-03-23 00:13:30 +0100 |
---|---|---|
committer | Hans Verkuil <hverkuil@xs4all.nl> | 2006-03-23 00:13:30 +0100 |
commit | fdbc4f16f905bdbd39641f297b2b63cde17f17a5 (patch) | |
tree | c66890977b8fdc7c32b1835aec5738d75fef6300 | |
parent | d943b4b0eb3bbe6f09dae652337547b5c6156371 (diff) | |
parent | f4421c541bfe09f509ce9bc274bf7b4c22977372 (diff) | |
download | mediapointer-dvb-s2-fdbc4f16f905bdbd39641f297b2b63cde17f17a5.tar.gz mediapointer-dvb-s2-fdbc4f16f905bdbd39641f297b2b63cde17f17a5.tar.bz2 |
Merge from master.
From: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
-rw-r--r-- | linux/drivers/media/video/cpia2/cpia2.h | 6 | ||||
-rw-r--r-- | linux/drivers/media/video/cpia2/cpia2_core.c | 40 | ||||
-rw-r--r-- | linux/drivers/media/video/cpia2/cpia2_v4l.c | 43 | ||||
-rw-r--r-- | linux/drivers/media/video/saa7134/saa7134-core.c | 2 | ||||
-rwxr-xr-x | v4l/scripts/insmod.sh | 48 |
5 files changed, 85 insertions, 54 deletions
diff --git a/linux/drivers/media/video/cpia2/cpia2.h b/linux/drivers/media/video/cpia2/cpia2.h index 2c3998d48..a53056c82 100644 --- a/linux/drivers/media/video/cpia2/cpia2.h +++ b/linux/drivers/media/video/cpia2/cpia2.h @@ -383,7 +383,11 @@ struct cpia2_fh { struct camera_data { /* locks */ - struct semaphore busy_lock; /* guard against SMP multithreading */ +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15) + struct mutex busy_lock; /* guard against SMP multithreading */ +#else + struct semaphore busy_lock; +#endif struct v4l2_prio_state prio; /* camera status */ diff --git a/linux/drivers/media/video/cpia2/cpia2_core.c b/linux/drivers/media/video/cpia2/cpia2_core.c index c2bde87dd..756cb260c 100644 --- a/linux/drivers/media/video/cpia2/cpia2_core.c +++ b/linux/drivers/media/video/cpia2/cpia2_core.c @@ -2239,7 +2239,7 @@ struct camera_data *cpia2_init_camera_struct(void) memset(cam, 0, sizeof(struct camera_data)); cam->present = 1; - init_MUTEX(&cam->busy_lock); + mutex_init(&cam->busy_lock); init_waitqueue_head(&cam->wq_stream); return cam; @@ -2372,12 +2372,12 @@ long cpia2_read(struct camera_data *cam, } /* make this _really_ smp and multithread-safe */ - if (down_interruptible(&cam->busy_lock)) + if (mutex_lock_interruptible(&cam->busy_lock)) return -ERESTARTSYS; if (!cam->present) { LOG("%s: camera removed\n",__FUNCTION__); - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return 0; /* EOF */ } @@ -2390,34 +2390,34 @@ long cpia2_read(struct camera_data *cam, /* Copy cam->curbuff in case it changes while we're processing */ frame = cam->curbuff; if (noblock && frame->status != FRAME_READY) { - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return -EAGAIN; } if(frame->status != FRAME_READY) { - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); wait_event_interruptible(cam->wq_stream, !cam->present || (frame = cam->curbuff)->status == FRAME_READY); if (signal_pending(current)) return -ERESTARTSYS; /* make this _really_ smp and multithread-safe */ - if (down_interruptible(&cam->busy_lock)) { + if (mutex_lock_interruptible(&cam->busy_lock)) { return -ERESTARTSYS; } if(!cam->present) { - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return 0; } } /* copy data to user space */ if (frame->length > count) { - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return -EFAULT; } if (copy_to_user(buf, frame->data, frame->length)) { - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return -EFAULT; } @@ -2425,7 +2425,7 @@ long cpia2_read(struct camera_data *cam, frame->status = FRAME_EMPTY; - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return count; } @@ -2444,10 +2444,10 @@ unsigned int cpia2_poll(struct camera_data *cam, struct file *filp, return POLLERR; } - down(&cam->busy_lock); + mutex_lock(&cam->busy_lock); if(!cam->present) { - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return POLLHUP; } @@ -2457,16 +2457,16 @@ unsigned int cpia2_poll(struct camera_data *cam, struct file *filp, cam->params.camera_state.stream_mode); } - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); poll_wait(filp, &cam->wq_stream, wait); - down(&cam->busy_lock); + mutex_lock(&cam->busy_lock); if(!cam->present) status = POLLHUP; else if(cam->curbuff->status == FRAME_READY) status = POLLIN | POLLRDNORM; - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return status; } @@ -2489,18 +2489,18 @@ int cpia2_remap_buffer(struct camera_data *cam, struct vm_area_struct *vma) DBG("mmap offset:%ld size:%ld\n", start_offset, size); /* make this _really_ smp-safe */ - if (down_interruptible(&cam->busy_lock)) + if (mutex_lock_interruptible(&cam->busy_lock)) return -ERESTARTSYS; if (!cam->present) { - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return -ENODEV; } if (size > cam->frame_size*cam->num_frames || (start_offset % cam->frame_size) != 0 || (start_offset+size > cam->frame_size*cam->num_frames)) { - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return -EINVAL; } @@ -2508,7 +2508,7 @@ int cpia2_remap_buffer(struct camera_data *cam, struct vm_area_struct *vma) while (size > 0) { page = kvirt_to_pa(pos); if (remap_pfn_range(vma, start, page >> PAGE_SHIFT, PAGE_SIZE, PAGE_SHARED)) { - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return -EAGAIN; } start += PAGE_SIZE; @@ -2520,7 +2520,7 @@ int cpia2_remap_buffer(struct camera_data *cam, struct vm_area_struct *vma) } cam->mmapped = true; - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return 0; } diff --git a/linux/drivers/media/video/cpia2/cpia2_v4l.c b/linux/drivers/media/video/cpia2/cpia2_v4l.c index 2ab1582fd..0f289979f 100644 --- a/linux/drivers/media/video/cpia2/cpia2_v4l.c +++ b/linux/drivers/media/video/cpia2/cpia2_v4l.c @@ -256,7 +256,7 @@ static int cpia2_open(struct inode *inode, struct file *file) return -ENODEV; } - if(down_interruptible(&cam->busy_lock)) + if(mutex_lock_interruptible(&cam->busy_lock)) return -ERESTARTSYS; if(!cam->present) { @@ -300,7 +300,7 @@ skip_init: cpia2_dbg_dump_registers(cam); err_return: - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return retval; } @@ -315,7 +315,7 @@ static int cpia2_close(struct inode *inode, struct file *file) struct camera_data *cam = video_get_drvdata(dev); struct cpia2_fh *fh = file->private_data; - down(&cam->busy_lock); + mutex_lock(&cam->busy_lock); if (cam->present && (cam->open_count == 1 @@ -348,7 +348,7 @@ static int cpia2_close(struct inode *inode, struct file *file) } } - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return 0; } @@ -524,11 +524,11 @@ static int sync(struct camera_data *cam, int frame_nr) return 0; } - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); wait_event_interruptible(cam->wq_stream, !cam->streaming || frame->status == FRAME_READY); - down(&cam->busy_lock); + mutex_lock(&cam->busy_lock); if (signal_pending(current)) return -ERESTARTSYS; if(!cam->present) @@ -1545,11 +1545,11 @@ static int ioctl_dqbuf(void *arg,struct camera_data *cam, struct file *file) if(frame < 0) { /* Wait for a frame to become available */ struct framebuf *cb=cam->curbuff; - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); wait_event_interruptible(cam->wq_stream, !cam->present || (cb=cam->curbuff)->status == FRAME_READY); - down(&cam->busy_lock); + mutex_lock(&cam->busy_lock); if (signal_pending(current)) return -ERESTARTSYS; if(!cam->present) @@ -1592,11 +1592,11 @@ static int cpia2_do_ioctl(struct inode *inode, struct file *file, return -ENOTTY; /* make this _really_ smp-safe */ - if (down_interruptible(&cam->busy_lock)) + if (mutex_lock_interruptible(&cam->busy_lock)) return -ERESTARTSYS; if (!cam->present) { - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return -ENODEV; } @@ -1609,7 +1609,7 @@ static int cpia2_do_ioctl(struct inode *inode, struct file *file, struct cpia2_fh *fh = file->private_data; retval = v4l2_prio_check(&cam->prio, &fh->prio); if(retval) { - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return retval; } break; @@ -1619,7 +1619,7 @@ static int cpia2_do_ioctl(struct inode *inode, struct file *file, { struct cpia2_fh *fh = file->private_data; if(fh->prio != V4L2_PRIORITY_RECORD) { - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return -EBUSY; } break; @@ -1848,7 +1848,7 @@ static int cpia2_do_ioctl(struct inode *inode, struct file *file, break; } - up(&cam->busy_lock); + mutex_unlock(&cam->busy_lock); return retval; } @@ -1925,14 +1925,15 @@ static void reset_camera_struct_v4l(struct camera_data *cam) * The v4l video device structure initialized for this device ***/ static struct file_operations fops_template = { - .owner= THIS_MODULE, - .open= cpia2_open, - .release= cpia2_close, - .read= cpia2_v4l_read, - .poll= cpia2_v4l_poll, - .ioctl= cpia2_ioctl, - .llseek= no_llseek, - .mmap= cpia2_mmap, + .owner = THIS_MODULE, + .open = cpia2_open, + .release = cpia2_close, + .read = cpia2_v4l_read, + .poll = cpia2_v4l_poll, + .ioctl = cpia2_ioctl, + .llseek = no_llseek, + .compat_ioctl = v4l_compat_ioctl32, + .mmap = cpia2_mmap, }; static struct video_device cpia2_template = { diff --git a/linux/drivers/media/video/saa7134/saa7134-core.c b/linux/drivers/media/video/saa7134/saa7134-core.c index fa242c5d0..6d2aedd31 100644 --- a/linux/drivers/media/video/saa7134/saa7134-core.c +++ b/linux/drivers/media/video/saa7134/saa7134-core.c @@ -1031,7 +1031,7 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev, if (saa7134_no_overlay <= 0) { saa7134_video_template.type |= VID_TYPE_OVERLAY; } else { - printk("bttv: Overlay support disabled.\n"); + printk("%s: Overlay support disabled.\n",dev->name); } dev->video_dev = vdev_init(dev,&saa7134_video_template,"video"); err = video_register_device(dev->video_dev,VFL_TYPE_GRABBER, diff --git a/v4l/scripts/insmod.sh b/v4l/scripts/insmod.sh index e4ebb1494..6efab6a82 100755 --- a/v4l/scripts/insmod.sh +++ b/v4l/scripts/insmod.sh @@ -27,11 +27,16 @@ case "$1" in insmod ./cs53l32a.ko insmod ./wm8775.ko insmod ./cx25840.ko - insmod ./saa711x.ko + insmod ./saa7115.ko insmod ./btcx-risc.ko insmod ./saa7127.ko insmod ./msp3400.ko insmod ./tvp5150.ko + insmod ./tda7432.ko + insmod ./tda9840.ko + insmod ./tda9875.ko + insmod ./tea6415c.ko + insmod ./tea6420.ko # DVB core insmod ./dvb-core.ko # dvb_net_debug=1 # for hybrid cx88 and saa7134 cards @@ -64,7 +69,9 @@ case "$1" in insmod ./sp887x.ko insmod ./or51211.ko insmod ./or51132.ko + insmod ./zl10353.ko insmod ./ttusbdecfe.ko + # saa7146 based siemens/technotrend/hauppauge cards insmod ./saa7146.ko insmod ./saa7146_vv.ko @@ -74,6 +81,9 @@ case "$1" in insmod ./budget.ko insmod ./budget-ci.ko insmod ./budget-av.ko + insmod ./mxb.ko + insmod ./hexium_gemini.ko + insmod ./hexium_orion.ko # technotrend/hauppauge USB things insmod ./dvb-ttusb-budget.ko insmod ./ttusb_dec.ko @@ -99,6 +109,7 @@ case "$1" in insmod ./dvb-usb-digitv.ko insmod ./dvb-usb-cxusb.ko # bt8xx + insmod ./bt832.ko insmod ./bttv.ko insmod ./bt878.ko insmod ./dst.ko @@ -119,9 +130,11 @@ case "$1" in # insmod ./saa7134-oss.ko insmod ./saa7134-dvb.ko insmod ./saa7134-empress.ko - insmod ./saa6752hs.ko + insmod ./em28xx.ko + insmod ./pvrusb2.ko + insmod ./cpia2.ko insmod ./vivi.ko echo @@ -147,11 +160,16 @@ case "$1" in insmod ./cs53l32a.ko insmod ./wm8775.ko insmod ./cx25840.ko - insmod ./saa711x.ko + insmod ./saa7115.ko insmod ./btcx-risc.ko insmod ./saa7127.ko insmod ./msp3400.ko insmod ./tvp5150.ko + insmod ./tda7432.ko + insmod ./tda9840.ko + insmod ./tda9875.ko + insmod ./tea6415c.ko + insmod ./tea6420.ko insmod ./dvb-core.ko cam_debug=1 insmod ./video-buf-dvb.ko insmod ./dvb-pll.ko @@ -178,9 +196,10 @@ case "$1" in insmod ./nxt6000.ko insmod ./bcm3510.ko insmod ./s5h1420.ko - insmod ./sp887x.ko - insmod ./or51211.ko - insmod ./or51132.ko + insmod ./sp887x.ko + insmod ./or51211.ko + insmod ./or51132.ko + insmod ./zl10353.ko insmod ./ttusbdecfe.ko insmod ./saa7146.ko insmod ./saa7146_vv.ko @@ -190,6 +209,9 @@ case "$1" in insmod ./budget.ko insmod ./budget-ci.ko insmod ./budget-av.ko + insmod ./mxb.ko + insmod ./hexium_gemini.ko + insmod ./hexium_orion.ko insmod ./dvb-ttusb-budget.ko insmod ./stv0297_cs2.ko insmod ./b2c2-flexcop.ko debug=0x01 @@ -211,6 +233,7 @@ case "$1" in insmod ./dvb-usb-digitv.ko insmod ./dvb-usb-cxusb.ko + insmod ./bt832.ko insmod ./bttv.ko insmod ./bt878.ko insmod ./dst.ko @@ -231,9 +254,11 @@ case "$1" in insmod ./saa7134-oss.ko insmod ./saa7134-dvb.ko insmod ./saa7134-empress.ko - insmod ./saa6752hs.ko + insmod ./em28xx.ko + insmod ./pvrusb2.ko + insmod ./cpia2.ko insmod ./vivi.ko echo ;; @@ -249,10 +274,11 @@ case "$1" in # video4linux cards rmmod cx88-alsa cx88-blackbird cx88-dvb cx88-vp3054-i2c cx8802 cx8800 \ cx88xx saa7134-oss saa7134-alsa saa7134-empress saa7134-dvb \ - saa7134 dvb-bt8xx dst_ca dst bt878 bttv em28xx vivi + saa7134 dvb-bt8xx dst_ca dst bt878 bttv bt832 mxb \ + hexium_gemini hexium_orion em28xx pvrusb2 cpia2 vivi # frontends - rmmod dib3000mb dib3000mc dib3000_common nxt200x ves1x93 \ + rmmod dib3000mb zl10353 dib3000mc dib3000_common nxt200x ves1x93 \ sp8870 cx22700 stv0299 ves1820 cinergyT2 ttusbdecfe \ tda1004x l64781 tda8083 cx24110 cx22702 stv0297 \ tda10021 mt352 mt312 bcm3510 s5h1420 nxt6000 \ @@ -260,9 +286,9 @@ case "$1" in dvb-pll # chips and helpers - rmmod saa7127 msp3400 tvp5150 \ + rmmod saa7127 msp3400 tvp5150 tda7432 tda9840 tda9875 tea6415c tea6420 \ saa6752hs saa6588 btcx-risc tveeprom tvaudio tda9887 tuner \ - ir-kbd-i2c ir-common cx25840 tvmixer cs53l32a wm8775 saa711x \ + ir-kbd-i2c ir-common cx25840 tvmixer cs53l32a wm8775 saa7115 \ saa7146_vv saa7146 video-buf-dvb video-buf \ v4l2-common v4l1-compat dvb-core videodev compat_ioctl32 |