aboutsummaryrefslogtreecommitdiff
path: root/system/ov51x-jpeg
diff options
context:
space:
mode:
authormarkus reichelt <slackbuilds@mareichelt.de>2011-07-20 11:12:30 -0300
committerRobby Workman <rworkman@slackbuilds.org>2011-07-21 22:52:14 -0500
commit9958df5cad404ee9ba3e5c6c48d6ae0393c8f302 (patch)
tree4a7dae8bb839ab5c01b05d882ca33ca00a7e1896 /system/ov51x-jpeg
parent17904ae9c5407dc5dd3e57be81a61136d978c155 (diff)
system/ov51x-jpeg: Added (kernel module for ov51x webcams)
Signed-off-by: Niels Horn <niels.horn@slackbuilds.org>
Diffstat (limited to 'system/ov51x-jpeg')
-rw-r--r--system/ov51x-jpeg/README5
-rw-r--r--system/ov51x-jpeg/README.SLACKWARE12
-rw-r--r--system/ov51x-jpeg/doinst.sh2
-rw-r--r--system/ov51x-jpeg/ov51x-jpeg.SlackBuild73
-rw-r--r--system/ov51x-jpeg/ov51x-jpeg.diff298
-rw-r--r--system/ov51x-jpeg/ov51x-jpeg.info10
-rw-r--r--system/ov51x-jpeg/slack-desc19
7 files changed, 419 insertions, 0 deletions
diff --git a/system/ov51x-jpeg/README b/system/ov51x-jpeg/README
new file mode 100644
index 0000000000000..20dec54cf8cd6
--- /dev/null
+++ b/system/ov51x-jpeg/README
@@ -0,0 +1,5 @@
+A GPL-licensed kernel module with support for ov51x webcams,
+including Sony eyeToy
+
+Because this installs a kernel module, you will need to
+rebuild the package if you change kernels.
diff --git a/system/ov51x-jpeg/README.SLACKWARE b/system/ov51x-jpeg/README.SLACKWARE
new file mode 100644
index 0000000000000..b01d2481df8a8
--- /dev/null
+++ b/system/ov51x-jpeg/README.SLACKWARE
@@ -0,0 +1,12 @@
+README.SLACKWARE for ov51x-jpeg
+
+You might want to adapt some files in /etc/modprobe.d/ accordingly:
+
+blacklist.conf:
+# blacklisting these modules will allow the ov51x-jpeg module to load
+blacklist gspca_ov519
+blacklist ov511
+
+ov51x-jpeg.conf:
+# I'm happy with these options, YMMV
+options ov51x-jpeg led=0 force_palette=15 autobright=1 autoexp=1
diff --git a/system/ov51x-jpeg/doinst.sh b/system/ov51x-jpeg/doinst.sh
new file mode 100644
index 0000000000000..f786c22372411
--- /dev/null
+++ b/system/ov51x-jpeg/doinst.sh
@@ -0,0 +1,2 @@
+chroot . /sbin/depmod -a @KERNEL@
+
diff --git a/system/ov51x-jpeg/ov51x-jpeg.SlackBuild b/system/ov51x-jpeg/ov51x-jpeg.SlackBuild
new file mode 100644
index 0000000000000..2eb5704e6968a
--- /dev/null
+++ b/system/ov51x-jpeg/ov51x-jpeg.SlackBuild
@@ -0,0 +1,73 @@
+#!/bin/sh
+
+# Slackware build script for ov51x-jpeg
+
+# Copyright 2011 Markus Reichelt, Aachen, DE
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# markus reichelt, slackbuilds@mareichelt.de, 0xCCEEF115
+# 2011 Jun 25 - initial release
+
+PRGNAM=ov51x-jpeg
+VERSION=1.5.9
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+ARCH=$(uname -m)
+KERNEL=${KERNEL:-"$(uname -r)"}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+patch -p1 < $CWD/ov51x-jpeg.diff
+
+make KDIR=/lib/modules/${KERNEL}/build
+
+mkdir -p $PKG/lib/modules/${KERNEL}/extra
+install -m 0644 ov51x-jpeg.ko $PKG/lib/modules/${KERNEL}/extra
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a ChangeLog $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a $CWD/README.SLACKWARE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+sed "s%@KERNEL@%$KERNEL%" $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/system/ov51x-jpeg/ov51x-jpeg.diff b/system/ov51x-jpeg/ov51x-jpeg.diff
new file mode 100644
index 0000000000000..cf45dff487209
--- /dev/null
+++ b/system/ov51x-jpeg/ov51x-jpeg.diff
@@ -0,0 +1,298 @@
+diff -Naur ov51x-jpeg-1.5.9.orig/ov511-decomp.c ov51x-jpeg-1.5.9/ov511-decomp.c
+--- ov51x-jpeg-1.5.9.orig/ov511-decomp.c 2008-09-28 12:58:09.000000000 +0200
++++ ov51x-jpeg-1.5.9/ov511-decomp.c 2011-06-25 14:40:22.180000231 +0200
+@@ -22,7 +22,7 @@
+ * Free Software Foundation; version 2 of the License.
+ */
+
+-#include <linux/autoconf.h>
++#include <generated/autoconf.h>
+ #include <linux/version.h>
+
+ #include "ov51x-jpeg.h"
+@@ -508,6 +508,5 @@
+ struct ov51x_decomp_ops ov511_decomp_ops = {
+ .decomp_400 = Decompress400,
+ .decomp_420 = Decompress420,
+- .owner = THIS_MODULE,
+ };
+
+diff -Naur ov51x-jpeg-1.5.9.orig/ov518-decomp.c ov51x-jpeg-1.5.9/ov518-decomp.c
+--- ov51x-jpeg-1.5.9.orig/ov518-decomp.c 2008-09-28 12:58:09.000000000 +0200
++++ ov51x-jpeg-1.5.9/ov518-decomp.c 2011-06-25 14:40:22.180000231 +0200
+@@ -25,7 +25,7 @@
+ * Free Software Foundation; version 2 of the License.
+ */
+
+-#include <linux/autoconf.h>
++#include <generated/autoconf.h>
+ #include <linux/version.h>
+
+ #include "ov51x-jpeg.h"
+@@ -1488,6 +1488,5 @@
+ struct ov51x_decomp_ops ov518_decomp_ops = {
+ .decomp_400 = Decompress400,
+ .decomp_420 = Decompress420,
+- .owner = THIS_MODULE,
+ };
+
+diff -Naur ov51x-jpeg-1.5.9.orig/ov519-decomp.c ov51x-jpeg-1.5.9/ov519-decomp.c
+--- ov51x-jpeg-1.5.9.orig/ov519-decomp.c 2008-09-28 12:58:09.000000000 +0200
++++ ov51x-jpeg-1.5.9/ov519-decomp.c 2011-06-25 14:40:22.180000231 +0200
+@@ -24,7 +24,7 @@
+ * See: http://zc0302.sourceforge.net/zc0302.php
+ */
+
+-#include <linux/autoconf.h>
++#include <generated/autoconf.h>
+ #include <linux/version.h>
+
+ #include "ov51x-jpeg.h"
+@@ -1534,7 +1534,6 @@
+ struct ov51x_decomp_ops ov519_decomp_ops = {
+ .decomp_400 = Decompress400,
+ .decomp_420 = Decompress420,
+- .owner = THIS_MODULE,
+ };
+
+
+diff -Naur ov51x-jpeg-1.5.9.orig/ov51x-jpeg-core.c ov51x-jpeg-1.5.9/ov51x-jpeg-core.c
+--- ov51x-jpeg-1.5.9.orig/ov51x-jpeg-core.c 2008-09-28 12:58:09.000000000 +0200
++++ ov51x-jpeg-1.5.9/ov51x-jpeg-core.c 2011-06-25 14:40:48.720000244 +0200
+@@ -12,6 +12,9 @@
+ * To support OV7670 sensors as found in Creative Live! Vista IM webcam
+ * With reference to One Laptop Per Child sourced kernel patches in 2.6.20 kernel
+ * contributed to kernel by Jonathan Corbet.
++*
++* Modified to work with 2.6.29 kernels by Onur Küçük <onur@pardus.org.tr>
++*
+ */
+
+
+@@ -84,7 +87,7 @@
+ * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+-#include <linux/autoconf.h>
++#include <generated/autoconf.h>
+
+ #define OV51x_JPEG_VERSION "1.5.9"
+
+@@ -534,13 +537,13 @@
+ static int sensor_get_picture(struct usb_ov511 *, struct video_picture *);
+ static int sensor_get_exposure(struct usb_ov511 *, unsigned char *);
+ static int ov51x_check_snapshot(struct usb_ov511 *);
+-static int ov51x_control_ioctl(struct inode *, struct file *, unsigned int,
++static long ov51x_control_ioctl(struct inode *, struct file *, unsigned int,
+ unsigned long);
+
+ static struct file_operations ov511_control_fops = {
+- .ioctl = ov51x_control_ioctl,
++ .unlocked_ioctl = ov51x_control_ioctl,
+ #ifdef CONFIG_COMPAT
+- .compat_ioctl = v4l_compat_ioctl32,
++ .compat_ioctl = v4l2_compat_ioctl32,
+ #endif
+ };
+
+@@ -678,7 +681,6 @@
+ ov->proc_devdir = create_proc_entry(dirname, S_IFDIR, ov51x_jpeg_proc_entry);
+ if (!ov->proc_devdir)
+ return;
+- ov->proc_devdir->owner = THIS_MODULE;
+
+ /* Create "info" entry (human readable device information) */
+ PDEBUG(4, "creating /proc/ov51x-jpeg/ov51x/%s/info", dirname);
+@@ -686,7 +688,6 @@
+ ov->proc_devdir, ov511_read_proc_info, ov);
+ if (!ov->proc_info)
+ return;
+- ov->proc_info->owner = THIS_MODULE;
+
+ /* Don't create it if old snapshot mode on (would cause race cond.) */
+ if (!snapshot) {
+@@ -697,7 +698,6 @@
+ ov511_read_proc_button, ov);
+ if (!ov->proc_button)
+ return;
+- ov->proc_button->owner = THIS_MODULE;
+ }
+
+ /* Create "control" entry (ioctl() interface) */
+@@ -709,7 +709,6 @@
+ unlock_kernel();
+ return;
+ }
+- ov->proc_control->owner = THIS_MODULE;
+ ov->proc_control->data = ov;
+ ov->proc_control->proc_fops = &ov511_control_fops;
+ unlock_kernel();
+@@ -762,9 +761,7 @@
+ */
+
+ ov51x_jpeg_proc_entry = create_proc_entry("ov51x-jpeg", S_IFDIR, &proc_root);
+- if (ov51x_jpeg_proc_entry)
+- ov51x_jpeg_proc_entry->owner = THIS_MODULE;
+- else
++ if (!ov51x_jpeg_proc_entry)
+ err("Unable to create /proc/ov51x-jpeg");
+
+ }
+@@ -5733,7 +5730,7 @@
+ {
+ #else
+ static int
+-ov51x_v4l1_open(struct inode *inode, struct file *file)
++ov51x_v4l1_open(struct file *file)
+ {
+ struct video_device *vdev = video_devdata(file);
+ #endif
+@@ -5804,7 +5801,7 @@
+ {
+ #else
+ static int
+-ov51x_v4l1_close(struct inode *inode, struct file *file)
++ov51x_v4l1_close(struct file *file)
+ {
+ struct video_device *vdev = file->private_data;
+ #endif
+@@ -5850,13 +5847,14 @@
+ }
+
+ /* Do not call this function directly! */
+-static int
+ #ifdef OV511_OLD_V4L
++static long
+ ov51x_v4l1_ioctl_internal(struct usb_ov511 *ov, unsigned int cmd,
+ void *arg)
+ {
+ #else
+-ov51x_v4l1_ioctl_internal(struct inode *inode, struct file *file,
++static long
++ov51x_v4l1_ioctl_internal(struct file *file,
+ unsigned int cmd, void *arg)
+ {
+ struct video_device *vdev = file->private_data;
+@@ -6355,7 +6353,7 @@
+ return err;
+ }
+
+-static int
++static long
+ ov51x_v4l1_ioctl(struct video_device *vdev, unsigned int cmd, void *arg)
+ {
+ struct usb_ov511 *ov = vdev->priv;
+@@ -6372,8 +6370,8 @@
+
+ #else /* If new V4L API */
+
+-static int
+-ov51x_v4l1_ioctl(struct inode *inode, struct file *file,
++static long
++ov51x_v4l1_ioctl(struct file *file,
+ unsigned int cmd, unsigned long arg)
+ {
+ struct video_device *vdev = file->private_data;
+@@ -6383,7 +6381,7 @@
+ if (down_interruptible(&ov->lock))
+ return -EINTR;
+
+- rc = video_usercopy(inode, file, cmd, arg, ov51x_v4l1_ioctl_internal);
++ rc = video_usercopy(file, cmd, arg, ov51x_v4l1_ioctl_internal);
+
+ up(&ov->lock);
+ return rc;
+@@ -6609,7 +6607,6 @@
+
+ #ifdef OV511_OLD_V4L
+ static struct video_device vdev_template = {
+- .owner = THIS_MODULE,
+ .name = "OV511 USB Camera",
+ .type = VID_TYPE_CAPTURE,
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)
+@@ -6624,22 +6621,19 @@
+
+ #else /* New V4L API */
+
+-static struct file_operations ov511_fops = {
+- .owner = THIS_MODULE,
++static struct v4l2_file_operations ov511_fops = {
+ .open = ov51x_v4l1_open,
+ .release = ov51x_v4l1_close,
+ .read = ov51x_v4l1_read,
+ .mmap = ov51x_v4l1_mmap,
+ .ioctl = ov51x_v4l1_ioctl,
+-#ifdef CONFIG_COMPAT
+- .compat_ioctl = v4l_compat_ioctl32,
+-#endif
+- .llseek = no_llseek,
++/*#ifdef CONFIG_COMPAT
++ .compat_ioctl = v4l2_compat_ioctl32,
++#endif*/
+ };
+
+ static struct video_device vdev_template = {
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)
+- .owner = THIS_MODULE,
+ #endif
+ .name = "OV51x USB Camera",
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)
+@@ -6654,7 +6648,7 @@
+ };
+ #endif /* OV511_OLD_V4L */
+
+-static int
++static long
+ ov51x_control_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
+ unsigned long ularg)
+ {
+@@ -8304,11 +8298,11 @@
+
+ init_waitqueue_head(&ov->wq);
+
+- init_MUTEX(&ov->lock); /* to 1 == available */
+- init_MUTEX(&ov->buf_lock);
+- init_MUTEX(&ov->param_lock);
+- init_MUTEX(&ov->i2c_lock);
+- init_MUTEX(&ov->cbuf_lock);
++ sema_init(&ov->lock,1); /* to 1 == available */
++ sema_init(&ov->buf_lock,1);
++ sema_init(&ov->param_lock,1);
++ sema_init(&ov->i2c_lock,1);
++ sema_init(&ov->cbuf_lock,1);
+
+ ov->buf_state = BUF_NOT_ALLOCATED;
+
+@@ -8374,7 +8368,7 @@
+
+ memcpy(ov->vdev, &vdev_template, sizeof(*ov->vdev));
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
+- ov->vdev->dev = dev->dev;
++ ov->vdev->parent = &dev->dev;
+ #else
+ ov->vdev->dev = &dev->dev;
+ #endif
+diff -Naur ov51x-jpeg-1.5.9.orig/ov51x-jpeg.h ov51x-jpeg-1.5.9/ov51x-jpeg.h
+--- ov51x-jpeg-1.5.9.orig/ov51x-jpeg.h 2008-09-28 12:58:09.000000000 +0200
++++ ov51x-jpeg-1.5.9/ov51x-jpeg.h 2011-06-25 14:40:15.801000231 +0200
+@@ -63,6 +63,12 @@
+ #include <media/v4l2-ioctl.h>
+ #endif
+
++/* Add missing info and warn macros by hand for new kernels */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28)
++#define info(args...) printk(KERN_INFO KBUILD_MODNAME args)
++#define warn(args...) printk(KERN_WARNING KBUILD_MODNAME args)
++#endif
++
+ /* --------------------------------- */
+ /* DEFINES FOR OV511 AND OTHER CHIPS */
+ /* --------------------------------- */
+@@ -582,7 +588,6 @@
+ int, int, int);
+ int (*decomp_422)(unsigned char *, unsigned char *, unsigned char *,
+ int, int, int);
+- struct module *owner;
+ };
+
+ extern struct ov51x_decomp_ops ov511_decomp_ops;
diff --git a/system/ov51x-jpeg/ov51x-jpeg.info b/system/ov51x-jpeg/ov51x-jpeg.info
new file mode 100644
index 0000000000000..0b115ddd27d16
--- /dev/null
+++ b/system/ov51x-jpeg/ov51x-jpeg.info
@@ -0,0 +1,10 @@
+PRGNAM="ov51x-jpeg"
+VERSION="1.5.9"
+HOMEPAGE="http://www.rastageeks.org/ov51x-jpeg/index.php/Main_Page"
+DOWNLOAD="http://www.rastageeks.org/downloads/ov51x-jpeg/ov51x-jpeg-1.5.9.tar.gz"
+MD5SUM="95041de8e908f1548df3d4e1f6ed2a94"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="markus reichelt"
+EMAIL="slackbuilds@mareichelt.de"
+APPROVED="Niels Horn"
diff --git a/system/ov51x-jpeg/slack-desc b/system/ov51x-jpeg/slack-desc
new file mode 100644
index 0000000000000..d214da1f07f55
--- /dev/null
+++ b/system/ov51x-jpeg/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+ov51x-jpeg: ov51x-jpeg (a kernel module with support for ov51x webcams)
+ov51x-jpeg:
+ov51x-jpeg:
+ov51x-jpeg:
+ov51x-jpeg:
+ov51x-jpeg:
+ov51x-jpeg:
+ov51x-jpeg:
+ov51x-jpeg: Homepage: http://www.rastageeks.org/ov51x-jpeg/
+ov51x-jpeg:
+ov51x-jpeg: