summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSantiago M. Mola <coldwind@gentoo.org>2008-11-02 12:59:44 +0000
committerSantiago M. Mola <coldwind@gentoo.org>2008-11-02 12:59:44 +0000
commit169af3f7136e655db80dc9d5fdb21d7341d58314 (patch)
treef60a022473660219ab746d9ae177c7eff353c1a3 /media-video
parentReassigned package to maintainer-needed. (diff)
downloadhistorical-169af3f7136e655db80dc9d5fdb21d7341d58314.tar.gz
historical-169af3f7136e655db80dc9d5fdb21d7341d58314.tar.bz2
historical-169af3f7136e655db80dc9d5fdb21d7341d58314.zip
Version bump, fix kernel 2.6.26 compatibility (bug #232700). Module is now
called qcmessenger. Package-Manager: portage-2.2_rc12/cvs/Linux 2.6.27-gentoo-r1 x86_64
Diffstat (limited to 'media-video')
-rw-r--r--media-video/qc-usb-messenger/ChangeLog10
-rw-r--r--media-video/qc-usb-messenger/Manifest15
-rw-r--r--media-video/qc-usb-messenger/files/qc-usb-messenger-1.8-kcompat-2.6.26.patch256
-rw-r--r--media-video/qc-usb-messenger/qc-usb-messenger-1.8.ebuild48
4 files changed, 317 insertions, 12 deletions
diff --git a/media-video/qc-usb-messenger/ChangeLog b/media-video/qc-usb-messenger/ChangeLog
index 5be054921eb7..adcb981af5b2 100644
--- a/media-video/qc-usb-messenger/ChangeLog
+++ b/media-video/qc-usb-messenger/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for media-video/qc-usb-messenger
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/qc-usb-messenger/ChangeLog,v 1.11 2008/02/08 16:52:35 tove Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/qc-usb-messenger/ChangeLog,v 1.12 2008/11/02 12:59:43 coldwind Exp $
+
+*qc-usb-messenger-1.8 (02 Nov 2008)
+
+ 02 Nov 2008; Santiago M. Mola <coldwind@gentoo.org>
+ +files/qc-usb-messenger-1.8-kcompat-2.6.26.patch,
+ +qc-usb-messenger-1.8.ebuild:
+ Version bump, fix kernel 2.6.26 compatibility (bug #232700). Module is now
+ called qcmessenger.
08 Feb 2008; Torsten Veller <tove@gentoo.org>
qc-usb-messenger-1.7-r1.ebuild:
diff --git a/media-video/qc-usb-messenger/Manifest b/media-video/qc-usb-messenger/Manifest
index 706cc8af5939..6fa84314d6c2 100644
--- a/media-video/qc-usb-messenger/Manifest
+++ b/media-video/qc-usb-messenger/Manifest
@@ -1,22 +1,15 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
AUX qc-usb-messenger-1.7-2.6.24.patch 2680 RMD160 a919437d8c6c90bda9728298b89acf550794aca5 SHA1 57c998b7b9d67e5ee57548e708e374a0a10bcdbc SHA256 374b18a9ff6ea61edd9ac66a4b0475275009598c78427eecbdbacaee5c22ac09
+AUX qc-usb-messenger-1.8-kcompat-2.6.26.patch 12397 RMD160 5fa23ace7c3715e8d3a829e6e718891430351caf SHA1 c44e1c9264d8a36fb45d211e340bf27d3b39d55d SHA256 a3f045781b0e1af0b9c2efbe682ddac0980bdadcceb78e461462d2ca656da3ad
AUX qc-usb-messenger-2.6.19.patch 458 RMD160 b342699e447f88d488b2ae38399a19b5113927eb SHA1 67a5b14f409da9ffe9a69fa8c00243f4185d3fa9 SHA256 f34da6c0b67f5c269cf4e67663d9ef6e9673f2e0d6f343bb258573111c6937ea
AUX qc-usb-messenger-koutput.patch 2424 RMD160 8e061adb423e6a78900160c7f66fdf2fa9ced872 SHA1 a5cdd2e355bc89ae86b0f606b39bcfa00e36ec56 SHA256 ec6d308f351830f06bce785314a860424ce045e737c3bafddc9b8532f0a4e63f
DIST qc-usb-messenger-1.5.tar.gz 167203 RMD160 e885b6d3c0508964df1ca81805435ebe996fba13 SHA1 c152ad98cf1b9684bee8350860d84c0d197bc76f SHA256 b5b0d23bffdb2edb8c7a0baeed704c41e327d61279190e309701ed4a39ad4c02
DIST qc-usb-messenger-1.6.tar.gz 167210 RMD160 dd209c7a12f6a3b2602114813cf611ba9a865a50 SHA1 2d1e618c2519e91f2ccaaf0aaddc6807697e2cf7 SHA256 ecbb509d148eba9974cf044291e59fdc848544028b2774db2f920bc849835485
DIST qc-usb-messenger-1.7.tar.gz 168467 RMD160 f3385b57e4afaf571d5978f0a83ec3bd9ee7941f SHA1 6d08193f9564db39221e4417a38aeb2c3e3a223f SHA256 ad627dca82d6e4163a4679c8d10a7d3509bde41d2e0079c216fce89892528c4c
+DIST qc-usb-messenger-1.8.tar.gz 168690 RMD160 8fac7914045d894a5f405f793f833f1e65c30992 SHA1 6d357f79170b19c98f062102c401e00461db6da5 SHA256 70407c66d36f333dad3d8319424fe7cf0cc2faf7cba7292a387e634625e2662a
EBUILD qc-usb-messenger-1.5.ebuild 1121 RMD160 439cb1bee421122a5e682bd44efaff789d31c82d SHA1 706d3b59d020ea2f4d66fd87013dedffee4a4c27 SHA256 cba6566613abf825498ba4c2c25a2494defcaa14273175eacbd6365e01f3e7e7
EBUILD qc-usb-messenger-1.6.ebuild 1084 RMD160 f07ed76b9e3034c9ed810c833c300685a428eb06 SHA1 f7e7e51084050f86606c852c434197b1b1dbdc40 SHA256 d1efb344676891db3500eb06694717cd6580a1852530fa72ca58faf5a9d528db
EBUILD qc-usb-messenger-1.7-r1.ebuild 1098 RMD160 e475324a8d8d238f38f41569e24542a0954fcb57 SHA1 59b9e4e5a8fd1a362a6d34dbc3fcdc79d5581358 SHA256 c20dac3de037384aeff635eedef808f973d0bd593ddf1dea8a1dcef4be929cc5
EBUILD qc-usb-messenger-1.7.ebuild 1055 RMD160 425c88cc7af4eae809ab2fb694c4109e40dc4c12 SHA1 00d24ebccc40ecff4de72757fcdc212c65e776b5 SHA256 3866d31e503c51b3bb5da368d7c3801986d4975414919beba7fa32eb4f006d32
-MISC ChangeLog 1832 RMD160 311990a7a44903e8050304a85a8deee89e1448ce SHA1 eba25e70b501d38523098026f5278ec31a853c60 SHA256 f2bebd4ffe01d431d6a40506379432d00dc4b6ffb1fe73b2fa3642e8a45ecbe7
+EBUILD qc-usb-messenger-1.8.ebuild 1181 RMD160 830078a92118b7a7adf29246db3a36885ae0c453 SHA1 e39e1b5d128f062f7638fa0e053f36b5087e2e0d SHA256 fd4c069e7a59a3425b40c0bb4345f16aa8ef6f160fec03013d6569d19584991a
+MISC ChangeLog 2111 RMD160 b5fe57014d00809f1bd8be9365245d20588ded94 SHA1 dcfa21a42409d159f6a54ef714a10e896c910814 SHA256 135cd2529b6bcb587f008005f71a1db80dd0fa4dd8981cafbd74a416179c04a4
MISC metadata.xml 257 RMD160 a3dc4ad9897ee2b532b103b50ef831f71dc51626 SHA1 9501e3c7eaea3e50874f6215a6f8a5af28228bc3 SHA256 f9be4d35e47c1b9b7f4a818ae47c35d15c836160a2e750db598b94bbd54b8546
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.7 (GNU/Linux)
-
-iD8DBQFHrIjfV3J2n04EauwRAjzxAJ0XvtuqkN5KQJS1SfjrAhG1sjySAACgxAJ7
-b14LVzvL610KKOWKsU+EgNc=
-=nzvj
------END PGP SIGNATURE-----
diff --git a/media-video/qc-usb-messenger/files/qc-usb-messenger-1.8-kcompat-2.6.26.patch b/media-video/qc-usb-messenger/files/qc-usb-messenger-1.8-kcompat-2.6.26.patch
new file mode 100644
index 000000000000..4813e6c1b328
--- /dev/null
+++ b/media-video/qc-usb-messenger/files/qc-usb-messenger-1.8-kcompat-2.6.26.patch
@@ -0,0 +1,256 @@
+--- qc-usb-messenger-1.8/qc-memory.c 2006-11-05 06:36:51.000000000 +0000
++++ qc-usb-messenger-1.8/qc-memory.c 2008-10-07 01:32:40.000000000 +0100
+@@ -81,12 +81,14 @@
+ #define pte_offset(pmd,adr) pte_offset_map(pmd,adr) /* Emulation for a kernel using the new rmap-vm */
+ #endif /* Fix by Michele Balistreri <brain87@gmx.net> */
+
++#if LINUX_VERSION_CODE>=KERNEL_VERSION(2,5,3) && LINUX_VERSION_CODE<KERNEL_VERSION(2,6,26)
+ #ifndef SetPageReserved
+ #define SetPageReserved(p) mem_map_reserve(p)
+ #endif
+ #ifndef ClearPageReserved
+ #define ClearPageReserved(p) mem_map_unreserve(p)
+ #endif
++#endif
+ /* }}} */
+
+ /* {{{ [fold] kvirt_to_pa(): obtain physical address from virtual address obtained by vmalloc() */
+--- qc-usb-messenger-1.8/qc-driver.c 2008-05-26 12:29:16.000000000 +0100
++++ qc-usb-messenger-1.8/qc-driver.c 2008-10-07 01:07:48.000000000 +0100
+@@ -1616,7 +1616,7 @@
+ fd->maxrawdatalen = 0; /* Hopefully stops all ongoing captures, might need locking though */
+ wake_up(&fd->wq);
+ if (qcdebug&QC_DEBUGFRAME) PDEBUG("waiting=%i",fd->waiting);
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_frame_exit() : %i", qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_frame_exit() : %i", qc, 0);
+ up(&qc->lock); /* The lock was down when entering this function */
+ while (fd->waiting > 0) {
+ schedule();
+@@ -1627,7 +1627,7 @@
+ }
+ #endif
+ }
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down(%p) in qc_frame_exit() : %i", qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down(%p) in qc_frame_exit() : %i", qc, 0);
+ down(&qc->lock);
+ vfree(fd->rawdatabuf);
+ POISON(fd->rawdatabuf);
+@@ -1656,14 +1656,14 @@
+ /* Wait until the next frame is available */
+ if (qcdebug&QC_DEBUGFRAME) PDEBUG("qc_frame_get/consume(qc=%p,tail=%i,head=%i)",qc,fd->tail,fd->head);
+ fd->waiting++;
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_frame_get() : %i", qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_frame_get() : %i", qc, 0);
+ up(&qc->lock); /* Release lock while waiting */
+
+ ret = wait_event_interruptible(fd->wq, fd->head!=fd->tail || fd->exiting); //FIXME:What if we get -ERESTARTSYS?
+ if(ret == -ERESTARTSYS) {
+ PDEBUG("wait_event_interruptible() returned ERESTARTSYS");
+ }
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down(%p) in qc_frame_get() : %i", qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down(%p) in qc_frame_get() : %i", qc, 0);
+ down(&qc->lock);
+ if (!ret) {
+ if (!fd->exiting) {
+@@ -2685,12 +2685,12 @@
+ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("MOD_INC_USE_COUNT in qc_v4l_open() : %i",GET_USE_COUNT(THIS_MODULE));
+ MOD_INC_USE_COUNT;
+
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(quickcam_list) in qc_v4l_open() : %i", sem_getcount(&quickcam_list_lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(quickcam_list) in qc_v4l_open() : %i", 0);
+
+ r = qc_lock(qc);
+ if (r<0) goto fail1;
+
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(%p) in qc_v4l_open() : %i", qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(%p) in qc_v4l_open() : %i", qc, 0);
+ if (down_interruptible(&qc->lock)) {
+ r = -ERESTARTSYS;
+ goto fail2;
+@@ -2705,15 +2705,15 @@
+ if (qcdebug&QC_DEBUGLOGIC) PDEBUG("First user, initializing");
+ if ((r = qc_v4l_init(qc))<0) goto fail4;
+ }
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_v4l_open() : %i",qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_v4l_open() : %i",qc, 0);
+ up(&qc->lock);
+ up(&quickcam_list_lock);
+ return 0;
+
+ fail4: qc->users--;
+-fail3: if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_v4l_open()=failed : %i",qc, sem_getcount(&qc->lock));
++fail3: if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_v4l_open()=failed : %i",qc, 0);
+ up(&qc->lock);
+-fail2: if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(quickcam_list) in qc_v4l_open()=failed : %i", sem_getcount(&qc->lock));
++fail2: if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(quickcam_list) in qc_v4l_open()=failed : %i", 0);
+ up(&quickcam_list_lock);
+ fail1: if (qcdebug&QC_DEBUGMUTEX) PDEBUG("MOD_DEC_USE_COUNT in qc_v4l_open() : %i",GET_USE_COUNT(THIS_MODULE));
+ MOD_DEC_USE_COUNT;
+@@ -2747,9 +2747,9 @@
+ #else
+ TEST_BUG_MSG(qc==NULL, "qc==NULL");
+ #endif
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down(quickcam_list) in qc_v4l_close() : %i", sem_getcount(&quickcam_list_lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down(quickcam_list) in qc_v4l_close() : %i", 0);
+ down(&quickcam_list_lock); /* Can not interrupt, we must success */
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down(%p) in qc_v4l_close() : %i", qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down(%p) in qc_v4l_close() : %i", qc, 0);
+ down(&qc->lock); /* Can not interrupt, we must success */
+ qc->users--;
+ PDEBUG("close users=%i", qc->users);
+@@ -2764,10 +2764,10 @@
+ }
+ }
+ if (qc) {
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_v4l_close() : %i", qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_v4l_close() : %i", qc, 0);
+ up(&qc->lock);
+ }
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(quickcam_list) in qc_v4l_close() : %i", sem_getcount(&quickcam_list_lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(quickcam_list) in qc_v4l_close() : %i", 0);
+ up(&quickcam_list_lock);
+ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("MOD_DEC_USE_COUNT in qc_v4l_close() : %i", GET_USE_COUNT(THIS_MODULE));
+ MOD_DEC_USE_COUNT;
+@@ -2801,7 +2801,7 @@
+ PDEBUG("qc_read: no video_device available or no buffer attached :( EFAULT");
+ return -EFAULT;
+ }
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(%p) in qc_v4l_read() : %i", qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(%p) in qc_v4l_read() : %i", qc, 0);
+ if (down_interruptible(&qc->lock)) return -ERESTARTSYS;
+ if (!qc->connected) {
+ r = -ENODEV;
+@@ -2823,7 +2823,7 @@
+ }
+ r = count;
+
+-fail: if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_v4l_read() : %i", qc, sem_getcount(&qc->lock));
++fail: if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_v4l_read() : %i", qc, 0);
+ up(&qc->lock);
+ if (qcdebug&QC_DEBUGLOGIC || qcdebug&QC_DEBUGERRORS) if (r<0) PDEBUG("failed qc_v4l_read()=%i", (int)r);
+ return r;
+@@ -2852,14 +2852,14 @@
+ struct vm_area_struct *vma = NULL;
+ #endif
+ if (qcdebug&QC_DEBUGLOGIC || qcdebug&QC_DEBUGUSER) PDEBUG("qc_v4l_mmap(dev=%p,size=%li,qc=%p)",dev,size,qc);
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(%p) in qc_v4l_mmap() : %i", qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(%p) in qc_v4l_mmap() : %i", qc, 0);
+ if (down_interruptible(&qc->lock)) return -ERESTARTSYS;
+ if (!qc->connected) { ret = -ENODEV; goto fail; }
+ frame_size = qc_capt_frameaddr(qc, &frame);
+ if (frame_size<0) { ret = frame_size; goto fail; } /* Should never happen */
+ ret = qc_mm_remap(vma, frame, frame_size, start, size);
+
+-fail: if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_v4l_mmap() : %i", qc, sem_getcount(&qc->lock));
++fail: if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_v4l_mmap() : %i", qc, 0);
+ up(&qc->lock);
+ if (ret<0) if (qcdebug&QC_DEBUGLOGIC || qcdebug&QC_DEBUGERRORS) PDEBUG("failed qc_v4l_mmap()=%i",ret);
+ return ret;
+@@ -2881,7 +2881,7 @@
+ int i, retval = 0;
+
+ if (qcdebug&QC_DEBUGLOGIC || qcdebug&QC_DEBUGUSER) PDEBUG("qc_v4l_ioctl(dev=%p,cmd=%u,arg=%p,qc=%p)",dev,cmd,argp,qc);
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(%p) in qc_v4l_ioctl() : %i", qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(%p) in qc_v4l_ioctl() : %i", qc, 0);
+ if (down_interruptible(&qc->lock)) return -ERESTARTSYS;
+ if (!qc->connected) {
+ retval = -ENODEV;
+@@ -3452,7 +3452,7 @@
+ retval = -ENOIOCTLCMD;
+ break;
+ }
+-fail: if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_v4l_ioctl() : %i", qc, sem_getcount(&qc->lock));
++fail: if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_v4l_ioctl() : %i", qc, 0);
+ up(&qc->lock);
+ if (retval<0) if (qcdebug&(QC_DEBUGLOGIC|QC_DEBUGUSER|QC_DEBUGERRORS)) PDEBUG("failed qc_v4l_ioctl()=%i",retval);
+ return retval;
+@@ -3547,21 +3547,21 @@
+
+ /* Check if there is already a suitable quickcam struct that can be reused */
+ reuse_qc = FALSE;
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(quickcam_list_lock) in qc_usb_init() : %i", sem_getcount(&quickcam_list_lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(quickcam_list_lock) in qc_usb_init() : %i", 0);
+ if (down_interruptible(&quickcam_list_lock)) return NULL;
+ list_for_each_entry(qc, &quickcam_list, list) {
+ if (qc->dev != NULL) {
+ continue; /* quickcam_list_lock protects this test */
+ }
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(%p) in qc_usb_init() : %i",qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down_intr(%p) in qc_usb_init() : %i",qc, 0);
+ if (down_interruptible(&qc->lock)) {
+ /* Failed to lock the camera. Move on in the list, skipping this camera */
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("failed locking the camera %p in qc_usb_init() : %i",qc,sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("failed locking the camera %p in qc_usb_init() : %i",qc,0);
+ continue;
+ }
+ if (qc->users<=0) {
+ PRINTK(KERN_NOTICE, "Unplugged unused camera detected!");
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_usb_init() : %i",qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_usb_init() : %i",qc, 0);
+ up(&qc->lock);
+ continue;
+ }
+@@ -3662,7 +3662,7 @@
+ #endif
+ /* Register input device for button */
+ qc->input_ptr->name = "Quickcam snapshot button";
+- qc->input_ptr->private = qc;
++ //qc->input_ptr->private = qc;
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
+ qc->input_ptr->evbit[0] = BIT_MASK(EV_KEY);
+ qc->input_ptr->keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0);
+@@ -3769,9 +3769,9 @@
+ qc_v4l_exit(qc);
+ #endif
+
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_usb_init() : %i",qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_usb_init() : %i",qc, 0);
+ up(&qc->lock);
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(quickcam_list) in qc_usb_init() : %i", sem_getcount(&quickcam_list_lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(quickcam_list) in qc_usb_init() : %i", 0);
+ up(&quickcam_list_lock);
+ return qc;
+
+@@ -3781,14 +3781,14 @@
+ fail2:
+ qc->dev = NULL;
+ qc->connected = FALSE;
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_usb_init()=failed : %i",qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_usb_init()=failed : %i",qc, 0);
+ up(&qc->lock);
+
+ if (!reuse_qc) {
+ kfree(qc);
+ }
+ fail1: if (qcdebug&QC_DEBUGLOGIC || qcdebug&QC_DEBUGERRORS) PDEBUG("failed qc_usb_init()=%i",r);
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(quickcam_list) in qc_usb_init()=failed : %i", sem_getcount(&quickcam_list_lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(quickcam_list) in qc_usb_init()=failed : %i", 0);
+ up(&quickcam_list_lock);
+ return NULL;
+ }
+@@ -4057,9 +4057,9 @@
+ */
+ qc->connected = FALSE;
+
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down(quickcam_list) in qc_usb_disconnect() : %i", sem_getcount(&quickcam_list_lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down(quickcam_list) in qc_usb_disconnect() : %i", 0);
+ down(&quickcam_list_lock); /* Also avoids race condition with open() */
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down(%p) in qc_usb_disconnect() : %i", qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("down(%p) in qc_usb_disconnect() : %i", qc, 0);
+ down(&qc->lock); /* Can not interrupt, we must success */
+
+ if (qc->users <= 0) {
+@@ -4072,11 +4072,11 @@
+ qc_isoc_stop(qc); /* Unlink and free isochronous URBs */
+ qc_int_exit(qc);
+ qc->dev = NULL; /* Must be set to NULL only after interrupts are guaranteed to be disabled! */
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_usb_disconnect() : %i",qc, sem_getcount(&qc->lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(%p) in qc_usb_disconnect() : %i",qc, 0);
+ up(&qc->lock);
+ }
+
+- if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(quickcam_list) in qc_usb_disconnect() : %i", sem_getcount(&quickcam_list_lock));
++ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("up(quickcam_list) in qc_usb_disconnect() : %i", 0);
+ up(&quickcam_list_lock);
+ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("MOD_DEC_USE_COUNT in qc_usb_disconnect() : %i",GET_USE_COUNT(THIS_MODULE));
+ MOD_DEC_USE_COUNT; /* Release lock--if device is not open, module can be now freed */
diff --git a/media-video/qc-usb-messenger/qc-usb-messenger-1.8.ebuild b/media-video/qc-usb-messenger/qc-usb-messenger-1.8.ebuild
new file mode 100644
index 000000000000..f778c1c03a56
--- /dev/null
+++ b/media-video/qc-usb-messenger/qc-usb-messenger-1.8.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/qc-usb-messenger/qc-usb-messenger-1.8.ebuild,v 1.1 2008/11/02 12:59:43 coldwind Exp $
+
+inherit eutils linux-mod
+
+DESCRIPTION="Logitech USB Quickcam Express Messenger & Communicate Linux Driver Modules"
+HOMEPAGE="http://home.mag.cx/messenger"
+SRC_URI="http://home.mag.cx/messenger/source/${P}.tar.gz"
+
+IUSE=""
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+CONFIG_CHECK="USB VIDEO_DEV VIDEO_V4L1_COMPAT"
+MODULE_NAMES="qcmessenger(usb:)"
+BUILD_TARGETS="all"
+
+DEPEND="virtual/linux-sources"
+
+pkg_setup() {
+ ABI=${KERNEL_ABI}
+ linux-mod_pkg_setup
+ BUILD_PARAMS="LINUX_DIR=${KV_DIR} OUTPUT_DIR=${KV_OUT_DIR}"
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ convert_to_m Makefile
+ epatch "${FILESDIR}"/${PN}-koutput.patch
+ epatch "${FILESDIR}"/${P}-kcompat-2.6.26.patch
+}
+
+src_install() {
+ linux-mod_src_install
+
+ dobin qcset
+ dodoc README* APPLICATIONS CREDITS TODO FAQ _CHANGES_MESSENGER _README_MESSENGER
+
+ insinto /usr/share/doc/${PF}
+ doins *.sh
+}
+
+pkg_postinst() {
+ elog "QuickCam Messenger module is now called 'qcmessenger'."
+}