Package: qc-usb-source Version: 0.6.6-6 Severity: wishlist The following commit to the upstream kernel (part of 2.6.28) removes the priv field, as a result qc-usb-source fails to build against kernel >=2.6.28
Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=601e9444f249d219009ec05674268d90f6f1cdcb Commit: 601e9444f249d219009ec05674268d90f6f1cdcb Parent: e138c592b50370621653fd962b2bc3f4e25dfe78 Author: Hans Verkuil <[email protected]> AuthorDate: Sat Aug 23 07:24:07 2008 -0300 Committer: Mauro Carvalho Chehab <[email protected]> CommitDate: Sun Oct 12 09:36:54 2008 -0200 V4L/DVB (8786): v4l2: remove the priv field, use dev_get_drvdata instead Remove the priv field and let video_get/set_drvdata use dev_get_drvdata and dev_set_drvdata instead. Convert all drivers that still used priv directly. Signed-off-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]> with the sollowing error message: /usr/bin/make -f debian/rules.real build MAJOR='2.6' MODULESOURCE='qc-usb-source' FLAVOUR='sidux-amd64' UPSTREAMVERSION='2.6.28' MODULE='qc-usb' FEATURESET='none' VERSION_SOURCE='2.6.28.rev1' VERSION_REVISION='1' ABINAME='-0.slh.1' LOCALVERSION='-sidux-amd64' ARCH='amd64' make[2]: Entering directory `/tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1' /usr/bin/make -C /usr/src/linux-headers-2.6.28-0.slh.1-sidux-amd64 M=/tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb make[3]: Entering directory `/usr/src/linux-headers-2.6.28-0.slh.1-sidux-amd64' LD /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/built-in.o CC [M] /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.o /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c: In function 'qc_i2c_init': /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c:827: warning: assignment from incompatible pointer type /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c: In function 'qc_isoc_start': /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c:1869: warning: assignment from incompatible pointer type /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c: In function 'qc_v4l_poll': /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c:2258: error: 'struct video_device' has no member named 'priv' /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c: In function 'qc_v4l_open': /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c:2310: error: 'struct video_device' has no member named 'priv' /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c: In function 'qc_v4l_close': /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c:2378: error: 'struct video_device' has no member named 'priv' /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c: In function 'qc_v4l_read': /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c:2426: error: 'struct video_device' has no member named 'priv' /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c: In function 'qc_v4l_mmap': /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c:2481: error: 'struct video_device' has no member named 'priv' /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c: In function 'qc_v4l_ioctl': /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c:2513: error: 'struct video_device' has no member named 'priv' /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c: At top level: /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c:3004: warning: initialization from incompatible pointer type /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c: In function 'qc_usb_init': /tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.c:3168: error: 'struct video_device' has no member named 'priv' make[4]: *** [/tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb/qc-driver.o] Error 1 make[3]: *** [_module_/tmp/buildd/linux-modules-sidux-main-2.6-2.6.28.rev1/debian/build/build_amd64_none_sidux-amd64_qc-usb] Error 2 The attached, minimal and tested, patch (which depends on the 2.6.27 compatibility fix in #502805) fixes this issue, while keeping compatibility to older kernels. Severity wishlist, given that testing is frozen on 2.6.26 anyways. Regards Stefan Lippers-Hollmann -- System Information: Debian Release: 5.0 APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.28-0.slh.1-sidux-amd64 (SMP w/4 CPU cores; PREEMPT) Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages qc-usb-source depends on: ii bzip2 1.0.5-1 high-quality block-sorting file co ii debhelper 7.0.17 helper programs for debian/rules ii make 3.81-5 The GNU version of the "make" util ii module-assistant 0.10.11.0 tool to make module package creati qc-usb-source recommends no packages. qc-usb-source suggests no packages. -- no debconf information
The following upstream commit renders qc-usb FTBS: Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=601e9444f249d219009ec05674268d90f6f1cdcb Commit: 601e9444f249d219009ec05674268d90f6f1cdcb Parent: e138c592b50370621653fd962b2bc3f4e25dfe78 Author: Hans Verkuil <[email protected]> AuthorDate: Sat Aug 23 07:24:07 2008 -0300 Committer: Mauro Carvalho Chehab <[email protected]> CommitDate: Sun Oct 12 09:36:54 2008 -0200 V4L/DVB (8786): v4l2: remove the priv field, use dev_get_drvdata instead Remove the priv field and let video_get/set_drvdata use dev_get_drvdata and dev_set_drvdata instead. Convert all drivers that still used priv directly. 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);
signature.asc
Description: This is a digitally signed message part.

