From b644e387e9e256718cd9bc4dd916ba3bb6ad64f5 Mon Sep 17 00:00:00 2001 From: Michael Krufky Date: Sun, 19 Mar 2006 11:22:02 -0500 Subject: insmod.sh updates From: Michael Krufky Fixes to make [load|unload|reload] as follows: - replaced saa711x with saa7115 - added pvrusb2 - added zl10353 - added mxb - added hexium_gemini - added hexium_orion - added cpia2 Signed-off-by: Michael Krufky --- v4l/scripts/insmod.sh | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/v4l/scripts/insmod.sh b/v4l/scripts/insmod.sh index e4ebb1494..96e5d7c0b 100755 --- a/v4l/scripts/insmod.sh +++ b/v4l/scripts/insmod.sh @@ -27,7 +27,7 @@ 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 @@ -64,7 +64,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 +76,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 @@ -119,9 +124,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,7 +154,7 @@ 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 @@ -181,6 +188,7 @@ case "$1" in insmod ./sp887x.ko insmod ./or51211.ko insmod ./or51132.ko + insmod ./zl10353.ko insmod ./ttusbdecfe.ko insmod ./saa7146.ko insmod ./saa7146_vv.ko @@ -190,6 +198,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 @@ -231,9 +242,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 +262,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 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 \ @@ -262,7 +276,7 @@ case "$1" in # chips and helpers rmmod saa7127 msp3400 tvp5150 \ 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 -- cgit v1.2.3 From 415689adb6dd6eabcff5e6e3f267968aca7ff2c2 Mon Sep 17 00:00:00 2001 From: Michael Krufky Date: Sun, 19 Mar 2006 11:35:51 -0500 Subject: whitespace cleanup From: Michael Krufky Signed-off-by: Michael Krufky --- v4l/scripts/insmod.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/v4l/scripts/insmod.sh b/v4l/scripts/insmod.sh index 96e5d7c0b..6a46cce0e 100755 --- a/v4l/scripts/insmod.sh +++ b/v4l/scripts/insmod.sh @@ -185,9 +185,9 @@ 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 -- cgit v1.2.3 From 5ba97bff5eae353cc41bae04e9041df6a7e4bc5f Mon Sep 17 00:00:00 2001 From: Michael Krufky Date: Sun, 19 Mar 2006 12:00:35 -0500 Subject: more insmod.sh updates From: Michael Krufky - added tda7432, tda9840, tda9875, tea6415c, tea6420 and bt832 Signed-off-by: Michael Krufky --- v4l/scripts/insmod.sh | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/v4l/scripts/insmod.sh b/v4l/scripts/insmod.sh index 6a46cce0e..6efab6a82 100755 --- a/v4l/scripts/insmod.sh +++ b/v4l/scripts/insmod.sh @@ -32,6 +32,11 @@ case "$1" in 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 @@ -104,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 @@ -159,6 +165,11 @@ case "$1" in 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 @@ -222,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 @@ -262,7 +274,7 @@ 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 mxb \ + saa7134 dvb-bt8xx dst_ca dst bt878 bttv bt832 mxb \ hexium_gemini hexium_orion em28xx pvrusb2 cpia2 vivi # frontends @@ -274,7 +286,7 @@ 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 saa7115 \ saa7146_vv saa7146 video-buf-dvb video-buf \ -- cgit v1.2.3 From 618193593ba85b281007ed8beace31b1112d357e Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Mon, 20 Mar 2006 13:04:25 -0300 Subject: Fixed a wrong printk message at saa7134 From: Mauro Carvalho Chehab kernel-sync: Signed-off-by: Mauro Carvalho Chehab --- linux/drivers/media/video/saa7134/saa7134-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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, -- cgit v1.2.3 From 48b9cb94f837c31462aab66d20c9856d0d3127ff Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Mon, 20 Mar 2006 13:59:42 -0300 Subject: PATCH: switch cpia2 to mutexes and use ioctl 32 compat lib func From: Alan Cox Signed-off-by: Alan Cox Signed-off-by: Mauro Carvalho Chehab --- linux/drivers/media/video/cpia2/cpia2.h | 2 +- linux/drivers/media/video/cpia2/cpia2_core.c | 40 +++++++++++++------------- linux/drivers/media/video/cpia2/cpia2_v4l.c | 43 ++++++++++++++-------------- 3 files changed, 43 insertions(+), 42 deletions(-) diff --git a/linux/drivers/media/video/cpia2/cpia2.h b/linux/drivers/media/video/cpia2/cpia2.h index 2c3998d48..9c4d31c42 100644 --- a/linux/drivers/media/video/cpia2/cpia2.h +++ b/linux/drivers/media/video/cpia2/cpia2.h @@ -383,7 +383,7 @@ struct cpia2_fh { struct camera_data { /* locks */ - struct semaphore busy_lock; /* guard against SMP multithreading */ + struct mutex busy_lock; /* guard against SMP multithreading */ 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 = { -- cgit v1.2.3 From f4421c541bfe09f509ce9bc274bf7b4c22977372 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Mon, 20 Mar 2006 14:09:31 -0300 Subject: Make cpia2 compile with older kernel versions From: Mauro Carvalho Chehab Signed-off-by: Mauro Carvalho Chehab --- linux/drivers/media/video/cpia2/cpia2.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/linux/drivers/media/video/cpia2/cpia2.h b/linux/drivers/media/video/cpia2/cpia2.h index 9c4d31c42..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 */ +#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 */ -- cgit v1.2.3