move qc-usb from trunk to packages as well (see [12260])
authorNicolas Thill <nico@openwrt.org>
Thu, 14 Aug 2008 10:53:12 +0000 (10:53 +0000)
committerNicolas Thill <nico@openwrt.org>
Thu, 14 Aug 2008 10:53:12 +0000 (10:53 +0000)
SVN-Revision: 12304

multimedia/qc-usb/Makefile [new file with mode: 0644]
multimedia/qc-usb/patches/001-linux_2_6.patch [new file with mode: 0644]

diff --git a/multimedia/qc-usb/Makefile b/multimedia/qc-usb/Makefile
new file mode 100644 (file)
index 0000000..8fd6668
--- /dev/null
@@ -0,0 +1,91 @@
+# 
+# Copyright (C) 2006-2008 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id$
+
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/kernel.mk
+
+PKG_NAME:=qc-usb
+PKG_VERSION:=0.6.6
+PKG_RELEASE:=1
+
+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 +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 -nostartfiles" \
+               USER_OPT="$(KERNEL_C_OPTS)" \
+               quickcam.$(LINUX_KMOD_SUFFIX)
+  endef
+endif
+
+define Build/Compile/user
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               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))
diff --git a/multimedia/qc-usb/patches/001-linux_2_6.patch b/multimedia/qc-usb/patches/001-linux_2_6.patch
new file mode 100644 (file)
index 0000000..34c73c4
--- /dev/null
@@ -0,0 +1,44 @@
+--- a/qc-driver.c
++++ b/qc-driver.c
+@@ -821,7 +821,9 @@
+       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 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 @@
+ #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() */