summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2006-03-23 00:13:30 +0100
committerHans Verkuil <hverkuil@xs4all.nl>2006-03-23 00:13:30 +0100
commitfdbc4f16f905bdbd39641f297b2b63cde17f17a5 (patch)
treec66890977b8fdc7c32b1835aec5738d75fef6300
parentd943b4b0eb3bbe6f09dae652337547b5c6156371 (diff)
parentf4421c541bfe09f509ce9bc274bf7b4c22977372 (diff)
downloadmediapointer-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.h6
-rw-r--r--linux/drivers/media/video/cpia2/cpia2_core.c40
-rw-r--r--linux/drivers/media/video/cpia2/cpia2_v4l.c43
-rw-r--r--linux/drivers/media/video/saa7134/saa7134-core.c2
-rwxr-xr-xv4l/scripts/insmod.sh48
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