+++ /dev/null
-#
-# Copyright (C) 2006-2008 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-include $(INCLUDE_DIR)/kernel.mk
-
-PKG_NAME:=qc-usb
-PKG_VERSION:=0.6.6
-PKG_RELEASE:=2
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=@SF/qce-ga
-PKG_MD5SUM:=9eab8fb3a75326d1565d59b0c7256075
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/qc-usb/Default
- URL:=http://qce-ga.sourceforge.net/
-endef
-
-define Package/qc-usb-utils
-$(call Package/qc-usb/Default)
- SECTION:=utils
- CATEGORY:=Utilities
- TITLE:=Utility programs for the qc-usb kernel module
-endef
-
-define Package/qc-usb-utils/description
- Utilities to tweak parameters of your QuickCam Express or similar webcam.
- These programs are completely useless without a qc-usb-modules package.
-endef
-
-define KernelPackage/video-quickcam
-$(call Package/qc-usb/Default)
- SUBMENU:=Video Support
- TITLE:=QuickCam Express USB webcam support
- DEPENDS:=@USB_SUPPORT @LINUX_2_6_25||LINUX_2_6_27||LINUX_2_6_28 +kmod-usb-core +kmod-video-core
- FILES:=$(PKG_BUILD_DIR)/quickcam.$(LINUX_KMOD_SUFFIX)
- AUTOLOAD:=$(call AutoLoad,90,quickcam)
-endef
-
-define KernelPackage/video-quickcam/description
- Kernel support for Logitech's QuickCam Express webcam and other webcams
- with similar chipsets.
-endef
-
-ifeq ($(KERNEL),2.4)
- ifeq ($(LINUX_KARCH),i386)
- KERNEL_C_OPTS:= -Os -mpreferred-stack-boundary=2 -march=i486 -fno-unit-at-a-time
- endif
- ifeq ($(LINUX_KARCH),mips)
- KERNEL_C_OPTS:= -Os -G 0 -mlong-calls -mno-abicalls -fno-pic -finline-limit=100000 -mabi=32 -march=mips32 -Wa,-32 -Wa,-march=mips32 -Wa,-mips32 -Wa,--trap
- endif
-endif
-
-ifneq ($(CONFIG_PACKAGE_kmod-video-quickcam),)
- define Build/Compile/kmod
- $(MAKE) -C $(PKG_BUILD_DIR) \
- LINUX_DIR="$(LINUX_DIR)" \
- ARCH="$(LINUX_KARCH)" \
- CROSS_COMPILE="$(TARGET_CROSS)" \
- CC="$(TARGET_CC)" \
- LD="$(TARGET_CC) -nodefaultlibs -lc -nostartfiles" \
- USER_OPT="$(KERNEL_C_OPTS)" \
- quickcam.$(LINUX_KMOD_SUFFIX)
- endef
-endif
-
-define Build/Compile/user
- $(MAKE) -C $(PKG_BUILD_DIR) \
- CC="$(TARGET_CC)" \
- CFLAGS="$(TARGET_CFLAGS)" \
- qcset
-endef
-
-define Build/Compile
- $(call Build/Compile/kmod)
- $(call Build/Compile/user)
-endef
-
-define Package/qc-usb-utils/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/qcset $(1)/usr/bin/
-endef
-
-$(eval $(call BuildPackage,qc-usb-utils))
-$(eval $(call KernelPackage,video-quickcam))
+++ /dev/null
---- a/qc-driver.c
-+++ b/qc-driver.c
-@@ -821,7 +821,9 @@ static int qc_i2c_init(struct quickcam *
- if (!cr) goto fail2;
- urb->transfer_buffer = kmalloc(qc_i2c_maxbufsize*sizeof(u8), GFP_KERNEL); /* Allocate maximum ever needed */
- if (!urb->transfer_buffer) goto fail3;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
- spin_lock_init(&urb->lock);
-+#endif
- urb->complete = qc_i2c_handler;
- urb->context = qc;
- #if (LINUX_VERSION_CODE<KERNEL_VERSION(2,6,9) && !defined(CONFIG_SUSE_KERNEL)) || LINUX_VERSION_CODE<KERNEL_VERSION(2,6,8)
-@@ -3006,7 +3008,9 @@ static struct file_operations qc_v4l_fop
- static struct video_device qc_v4l_template = {
- name: "QuickCam USB",
- type: VID_TYPE_CAPTURE | VID_TYPE_SUBCAPTURE,
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
- hardware: VID_HARDWARE_QCAM_USB,
-+#endif
- minor: -1,
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
- release: qc_v4l_release,
---- a/qc-memory.c
-+++ b/qc-memory.c
-@@ -78,15 +78,19 @@ static inline int qc_remap_page_range(un
- #endif
-
- #if LINUX_VERSION_CODE>=KERNEL_VERSION(2,5,3) || defined(pte_offset_map)
-+#ifndef pte_offset
- #define pte_offset(pmd,adr) pte_offset_map(pmd,adr) /* Emulation for a kernel using the new rmap-vm */
-+#endif
- #endif /* Fix by Michele Balistreri <brain87@gmx.net> */
-
-+#ifndef SETPAGEFLAG
- #ifndef SetPageReserved
- #define SetPageReserved(p) mem_map_reserve(p)
- #endif
- #ifndef ClearPageReserved
- #define ClearPageReserved(p) mem_map_unreserve(p)
- #endif
-+#endif /* SETPAGEFLAG */
- /* }}} */
-
- /* {{{ [fold] kvirt_to_pa(): obtain physical address from virtual address obtained by vmalloc() */
+++ /dev/null
---- a/Makefile
-+++ b/Makefile
-@@ -183,7 +183,7 @@ install: $(MODULE_NAME)
- -$(DEPMOD) -a
-
- qcset: qcset.c quickcam.h
-- gcc -Wall -O2 -s qcset.c -o qcset -lm
-+ $(CC) -Wall -O2 -s qcset.c -o qcset -lm
-
- .PHONY: patch
- patch: kernel-patch kernel-files
+++ /dev/null
----
---- a/qc-driver.c
-+++ b/qc-driver.c
-@@ -2528,7 +2528,11 @@ static int qc_v4l_ioctl(struct video_dev
- 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 file_operations qc_v4l_fop
-
- 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,23)
- hardware: VID_HARDWARE_QCAM_USB,
- #endif
+++ /dev/null
-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 <hverkuil@xs4all.nl>
-AuthorDate: Sat Aug 23 07:24:07 2008 -0300
-Committer: Mauro Carvalho Chehab <mchehab@redhat.com>
-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 <hverkuil@xs4all.nl>
- Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-
-Copyright (C) 2008 Stefan Lippers-Hollmann <s.l-h@gmx.de>
-
---- 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);