this post was helpful

http://www.mail-archive.com/debian-bugs-
[email protected]/msg598000.html

don't forget to add this patch also.

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502805

I was able to patch the qc-driver.c, but I had to replace the qc-
usb.tar.bz2 file in the /usr/src directory because module-assistant kept
wiping out the patched file.

the Line numbers weren't quite right. but the general idea atleast let
me compile.


---
--- a/qc-driver.c
+++ b/qc-driver.c
@@ -2528,7 +2528,11 @@
                        if (qcdebug&QC_DEBUGUSER) PDEBUG("VIDIOCGCAP");
                        memset(&b, 0, sizeof(b));
                        strcpy(b.name, "Logitech QuickCam USB");        /* Max 
31 characters */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
+                       b.type      = VID_TYPE_CAPTURE | VID_TYPE_SUBCAPTURE;
+#else
                        b.type      = qc->vdev.type;
+#endif
                        b.channels  = 1;
                        b.audios    = 0;
                        b.maxwidth  = qc->sensor_data.maxwidth;
@@ -3007,7 +3011,9 @@
 
 static struct video_device qc_v4l_template = {
        name:           "QuickCam USB",
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
        type:           VID_TYPE_CAPTURE | VID_TYPE_SUBCAPTURE,
+#endif
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
        hardware:       VID_HARDWARE_QCAM_USB,
 #endif
---


    Signed-off-by: Hans Verkuil <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>

Copyright (C) 2008 Stefan Lippers-Hollmann <[email protected]>

--- a/qc-driver.c
+++ b/qc-driver.c
@@ -2255,7 +2255,11 @@ static unsigned int qc_v4l_poll(struct v
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
        struct video_device *dev = video_devdata(file);
 #endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
+       struct quickcam *qc = (struct quickcam *)video_get_drvdata(dev);
+#else
        struct quickcam *qc = (struct quickcam *)dev->priv;
+#endif
        struct qc_frame_data *fd = &qc->frame_data;
        int mask;
 
@@ -2307,7 +2311,11 @@ static int qc_v4l_open(struct video_devi
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
        struct video_device *dev = video_devdata(file);
 #endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
+       struct quickcam *qc = video_get_drvdata(dev);
+#else
        struct quickcam *qc = dev->priv;
+#endif
        int r;
 
        if (qcdebug&QC_DEBUGLOGIC || qcdebug&QC_DEBUGUSER) 
PDEBUG("qc_v4l_open(qc=%p)", qc);
@@ -2375,7 +2383,11 @@ static void qc_v4l_close(struct video_de
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
        struct video_device *dev = video_devdata(file);
 #endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
+       struct quickcam *qc = (struct quickcam *)video_get_drvdata(dev);
+#else
        struct quickcam *qc = (struct quickcam *)dev->priv;
+#endif
        if (qcdebug&QC_DEBUGLOGIC || qcdebug&QC_DEBUGUSER) 
PDEBUG("qc_v4l_close(dev=%p,qc=%p)",dev,qc);
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
        TEST_BUGR_MSG(qc==NULL, "qc==NULL");
@@ -2423,7 +2435,11 @@ static long qc_v4l_read(struct video_dev
        struct video_device *dev = video_devdata(file);
        int noblock = file->f_flags & O_NONBLOCK;
 #endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
+       struct quickcam *qc = (struct quickcam *)video_get_drvdata(dev);
+#else
        struct quickcam *qc = (struct quickcam *)dev->priv;
+#endif
        int frame_len;
        unsigned char *frame;
        long r = 0;
@@ -2478,7 +2494,11 @@ static int qc_v4l_mmap(
        const void *start = (void *)vma->vm_start;
        unsigned long size  = vma->vm_end - vma->vm_start;
 #endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
+       struct quickcam *qc = (struct quickcam *)video_get_drvdata(dev);
+#else
        struct quickcam *qc = (struct quickcam *)dev->priv;
+#endif
        unsigned char *frame;
        int ret = 0,  frame_size;
 #if !HAVE_VMA && LINUX_VERSION_CODE<KERNEL_VERSION(2,6,0)
@@ -2510,7 +2530,11 @@ static int qc_v4l_ioctl(struct video_dev
        struct video_device *dev = video_devdata(file);
        void *argp = (void *)arg;
 #endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
+       struct quickcam *qc = (struct quickcam *)video_get_drvdata(dev);
+#else
        struct quickcam *qc = (struct quickcam *)dev->priv;
+#endif
        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);
@@ -3165,7 +3189,11 @@ PDEBUG("poisoning qc in qc_usb_init");
 
                /* Register V4L video device */
                memcpy(&qc->vdev, &qc_v4l_template, sizeof(qc_v4l_template));
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
+               video_set_drvdata(&qc->vdev, qc);
+#else
                qc->vdev.priv = qc;
+#endif
                r = video_register_device(&qc->vdev, VFL_TYPE_GRABBER, 
video_nr);
                if (r<0) goto fail3;
                PRINTK(KERN_INFO, "Registered device: /dev/video%i", 
qc->vdev.minor);

-- 
Can't build qc-usb kernel modules with module-assistant
https://bugs.launchpad.net/bugs/213114
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to