From: Nicolas Thill Date: Thu, 14 Aug 2008 10:53:12 +0000 (+0000) Subject: move qc-usb from trunk to packages as well (see [12260]) X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=beec83cca8d61856a23a3fd8eab48b58bca9212f move qc-usb from trunk to packages as well (see [12260]) SVN-Revision: 12304 --- diff --git a/multimedia/qc-usb/Makefile b/multimedia/qc-usb/Makefile new file mode 100644 index 0000000000..8fd666809a --- /dev/null +++ b/multimedia/qc-usb/Makefile @@ -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 index 0000000000..34c73c4d30 --- /dev/null +++ b/multimedia/qc-usb/patches/001-linux_2_6.patch @@ -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,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 */ + ++#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() */