add kernel driver for SPCA5XX based USB cameras
authorNicolas Thill <nico@openwrt.org>
Thu, 8 Dec 2005 22:09:33 +0000 (22:09 +0000)
committerNicolas Thill <nico@openwrt.org>
Thu, 8 Dec 2005 22:09:33 +0000 (22:09 +0000)
SVN-Revision: 2602

openwrt/target/linux/package/Config.in
openwrt/target/linux/package/Makefile
openwrt/target/linux/package/spca5xx/Config.in [new file with mode: 0644]
openwrt/target/linux/package/spca5xx/Makefile [new file with mode: 0644]
openwrt/target/linux/package/spca5xx/ipkg/kmod-spca5xx.control [new file with mode: 0644]
openwrt/target/linux/package/spca5xx/patches/01-kmod-build.patch [new file with mode: 0644]

index f05e9a014c3749ccc327b112a65eac843e360082..b58301db948132e8a376e8210d0cfb1e896d9030 100644 (file)
@@ -6,4 +6,5 @@ source "target/linux/package/madwifi/Config.in"
 source "target/linux/package/mini_fo/Config.in"
 source "target/linux/package/openswan/Config.in"
 source "target/linux/package/shfs/Config.in"
+source "target/linux/package/spca5xx/Config.in"
 source "target/linux/package/wlcompat/Config.in"
index db63d4f57722200b9d5d29e68c0a3a73f681d8e1..2963a0b95c3efeb73953a3c4e64d00db45136fd3 100644 (file)
@@ -10,6 +10,7 @@ package-$(BR2_PACKAGE_KMOD_MADWIFI) += madwifi
 package-$(BR2_PACKAGE_KMOD_MINI_FO) += mini_fo
 package-$(BR2_PACKAGE_KMOD_OPENSWAN) += openswan
 package-$(BR2_PACKAGE_KMOD_SHFS) += shfs
+package-$(BR2_PACKAGE_KMOD_SPCA5XX) += spca5xx
 package-y += base-files
 
 ifeq ($(BOARD)-$(KERNEL),brcm-2.4)
diff --git a/openwrt/target/linux/package/spca5xx/Config.in b/openwrt/target/linux/package/spca5xx/Config.in
new file mode 100644 (file)
index 0000000..6d50482
--- /dev/null
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_KMOD_SPCA5XX
+       prompt "kmod-spca5xx...................... Kernel driver for SPCA5XX based USB cameras"
+       tristate
+       default m if CONFIG_DEVEL
+       help
+         Kernel driver for SPCA5XX based USB cameras
+         
+         http://mxhaard.free.fr/
+         
diff --git a/openwrt/target/linux/package/spca5xx/Makefile b/openwrt/target/linux/package/spca5xx/Makefile
new file mode 100644 (file)
index 0000000..a2b43e9
--- /dev/null
@@ -0,0 +1,41 @@
+# $Id: Makefile,v 1.2 2005/06/11 15:36:31 nbd Exp $
+
+include $(TOPDIR)/rules.mk
+include ../../rules.mk
+
+PKG_NAME:=spca5xx
+PKG_VERSION:=20051105
+PKG_RELEASE:=1
+PKG_MD5SUM:=7d2e84c3d3880728fefd5644713ba0ca
+
+PKG_SOURCE_URL:=http://mxhaard.free.fr/spca50x/Download/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_CAT:=zcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+
+ifeq ($(KERNEL_DIR),)
+KERNEL_DIR:=$(LINUX_DIR)
+endif
+
+include $(TOPDIR)/package/rules.mk
+
+$(eval $(call PKG_template,KMOD_SPCA5XX,kmod-spca5xx,$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE),$(ARCH),kernel ($(LINUX_VERSION)-$(BOARD)-$(KERNEL_RELEASE))))
+
+$(PKG_BUILD_DIR)/.configured:
+       touch $@
+
+$(PKG_BUILD_DIR)/.built: 
+       $(MAKE) -C $(KERNEL_DIR) \
+               SUBDIRS="$(PKG_BUILD_DIR)" \
+               modules
+       touch $@
+
+$(IPKG_KMOD_SPCA5XX):
+       install -m0755 -d $(IDIR_KMOD_SPCA5XX)/lib/modules/$(LINUX_VERSION)
+       cp -fpR $(PKG_BUILD_DIR)/spca5xx.$(LINUX_KMOD_SUFFIX) \
+               $(IDIR_KMOD_SPCA5XX)/lib/modules/$(LINUX_VERSION)/
+       $(RSTRIP_KMOD) $(IDIR_KMOD_SPCA5XX)
+       $(IPKG_BUILD) $(IDIR_KMOD_SPCA5XX) $(PACKAGE_DIR)
+
diff --git a/openwrt/target/linux/package/spca5xx/ipkg/kmod-spca5xx.control b/openwrt/target/linux/package/spca5xx/ipkg/kmod-spca5xx.control
new file mode 100644 (file)
index 0000000..e8880c4
--- /dev/null
@@ -0,0 +1,4 @@
+Package: kmod-spca5xx
+Priority: optional
+Section: sys
+Description: Kernel driver for SPCA5XX based USB cameras
diff --git a/openwrt/target/linux/package/spca5xx/patches/01-kmod-build.patch b/openwrt/target/linux/package/spca5xx/patches/01-kmod-build.patch
new file mode 100644 (file)
index 0000000..5aeca16
--- /dev/null
@@ -0,0 +1,171 @@
+diff -ruN spca5xx-20051105-old/Makefile spca5xx-20051105-new/Makefile
+--- spca5xx-20051105-old/Makefile      2005-11-05 19:18:26.000000000 +0100
++++ spca5xx-20051105-new/Makefile      2005-12-08 21:50:20.000000000 +0100
+@@ -68,157 +68,18 @@
+ else   # kernel version test
+-#############################################################################
+-# For Linux 2.4 users.
+-# Change the following lines according to your system configuration.
+-# It is important to configure your particular source tree ("make dep") before
+-# compiling this module!
+-#############################################################################
+-###
+-# This makefile will build the spca50x driver module external to the kernel
+-# source tree. It makes it easier to swap kernels.
+-
+-
+-KERNEL_VERSION = `uname -r`
+-
+-###
+-# Location of the header files (most importantly the config files)
+-# for the kernel you want to build the module against.
+-# This should be correct for the currently installed kernel on your machine.
+-KINCLUDE   = /lib/modules/$(KERNEL_VERSION)/build/include
+-KERNEL_ACFILE = $(KINCLUDE)/linux/autoconf.h
+-KERNEL_MODVERSIONSFILE = $(KINCLUDE)/linux/modversions.h
+-MODULE_INSTALLDIR = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/usb/
+-
+-# Detect module versioning support
+-ifneq ($(strip $(shell grep 'define CONFIG_MODVERSIONS 1' $(KERNEL_ACFILE))),)
+-      DEFINES += -DMODVERSIONS -include $(KERNEL_MODVERSIONSFILE)
+-endif
+-
+-# Detect SMP support
+-ifneq ($(strip $(shell grep 'define CONFIG_SMP 1' $(KERNEL_ACFILE))),)
+-      DEFINES += -D__SMP__ -DSMP
+-endif
+-
+-# Setup the tools
+-CC         = gcc
+-LD         = ld
+-
+-# Setup compiler warnings
+-WARNINGS   = -Wall -Wpointer-arith
+-WARNINGS  += -Wcast-align -Wwrite-strings -Wstrict-prototypes
+-WARNINGS  += -Wuninitialized -Wreturn-type -Wunused -Wparentheses
+-
+-# Setup compiler flags
+-CFLAGS     = -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe
+-CFLAGS    += -mpreferred-stack-boundary=2 
+-CFLAGS    += -I$(KINCLUDE) -Idrivers/usb
+-
+-# Setup link flags
+-LDFLAGS    = --strip-debug -r
+-
+-# Setup the list of files to be included in a distribution
+-DIST_FILES = CHANGELOG \
+-             README \
+-             Makefile \
+-             drivers/usb/Config.in \
+-             drivers/usb/spcadecoder.c \
+-             drivers/usb/spcadecoder.h \
+-             drivers/usb/jpeg_header.h \
+-           drivers/usb/jpeg_qtables.h \
+-           drivers/usb/spcagamma.h \
+-           drivers/usb/spcaCompat.h \
+-           drivers/usb/spcausb.h \
+-             drivers/usb/spca500_init.h \
+-             drivers/usb/spca501_init.h \
+-           drivers/usb/sp5xxfw2.dat \
+-             drivers/usb/sp5xxfw2.h \
+-             drivers/usb/spca505_init.h \
+-             drivers/usb/spca506.h \
+-             drivers/usb/spca508_init.h \
+-           drivers/usb/spca561.h \
+-           drivers/usb/sonix.h \
+-             drivers/usb/cs2102.h \
+-             drivers/usb/hv7131b.h \
+-           drivers/usb/icm105a.h \
+-             drivers/usb/hv7131c.h \
+-           drivers/usb/hdcs2020.h \
+-             drivers/usb/pb0330.h \
+-           drivers/usb/tas5130c.h \
+-           drivers/usb/zc3xx.h\
+-           drivers/usb/tv8532.h\
+-           drivers/usb/cxlib.h\
+-           drivers/usb/sn9cxxx.h\
+-           drivers/usb/cx11646.h\
+-           drivers/usb/pac207.h\
+-           drivers/usb/spca5xx.c \
+-             drivers/usb/spca5xx.h 
+-
+-OBJS       = drivers/usb/spcadecoder.o \
+-             drivers/usb/spca5xx.o
+-
+-BINARY     = spca5xx.o
+-
+-###
+-# Targets follow here
+-
+-binary:       $(OBJS)
+-      @echo Linking $(BINARY)
+-      @$(LD) $(LDFLAGS) -o $(BINARY) $(OBJS)
+-
+-install: binary
+-      @echo Installing.. Your root password may be required.
+-      su -c "make install-root"
+-
+-install-root:
+-      @echo Installing..
+-      @mkdir -p /lib/modules/`uname -r`/kernel/drivers/usb
+-      @rm -f /lib/modules/`uname -r`/kernel/drivers/usb/spca50x.o
+-      @rm -f /lib/modules/`uname -r`/kernel/drivers/usb/et61x.o
+-      @cp spca5xx.o /lib/modules/`uname -r`/kernel/drivers/usb/spca5xx.o
+-      @/sbin/depmod
+-
+-dist: clean binary
+-      @echo Making distributable archives
+-      @rm -f spca5xx-src-$(VERSION).tar.gz
+-      @tar zcf spca5xx-src-$(VERSION).tar.gz $(DIST_FILES)
+-      @rm -f spca5xx-module-$(VERSION).tar.gz
+-      @cp $(BINARY) spca5xx-$(VERSION).o
+-      @tar zcf spca5xx-module-$(VERSION).tar.gz spca5xx-$(VERSION).o README
+-      @rm spca5xx-$(VERSION).o
+-
+-.c.o: Makefile $*.c
+-      @echo Compiling $*.c
+-      @$(CC) $(CFLAGS) $(WARNINGS) $(DEFINES) -c $*.c -o $*.o
+-
+-###
+-# Dependencies follow here
+-
+-drivers/usb/spca5xx.o: drivers/usb/spca5xx.h \
+-                     drivers/usb/spcaCompat.h \
+-                     drivers/usb/spcausb.h \
+-                     drivers/usb/sonix.h \
+-                       drivers/usb/spca500_init.h \
+-                       drivers/usb/spca501_init.h \
+-                     drivers/usb/sp5xxfw2.h \
+-                       drivers/usb/spca505_init.h \
+-                     drivers/usb/spca506.h \
+-                       drivers/usb/spca508_init.h \
+-                     drivers/usb/spca561.h \
+-                     drivers/usb/zc3xx.h\
+-                     drivers/usb/tv8532.h\
+-                     drivers/usb/cx11646.h\
+-                     drivers/usb/mr97311.h\
+-                     drivers/usb/sn9cxxx.h\
+-                     drivers/usb/pac207.h\
+-                       
+-
+-drivers/usb/spcadecoder.o: drivers/usb/spcadecoder.h \
+-                         drivers/usb/spcagamma.h \
+-                           drivers/usb/jpeg_header.h
++EXTRA_CFLAGS += $(DEFINES) 
+-endif  # End kernel version test
++spca5xx-objs := drivers/usb/spca5xx.o drivers/usb/spcadecoder.o 
++
++obj-m += spca5xx.o
++obj-y := $(spca5xx-objs)
++
++O_TARGET := $(obj-m)
++-include $(TOPDIR)/Rules.make
++
++endif  # End kernel version test
+ ############################################################################## 
+ # OTHER TARGETS