Package: ov511-source
Version: 2.32-3
Severity: normal
Tags: patch
Hi,
Current package does not build against linux kernel 2.6.19.
Please find attached a patch fixing major issues (replacing use of
linux/config.h by linux/autotconf.h
for kernels >= 2.6.18 and patch from http://lkml.org/lkml/2006/10/14/65).
There are still a lot of warnings when building the module.
Cheers,
Julien
-- System Information:
Debian Release: 4.0
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-3-686
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Versions of packages ov511-source depends on:
ii bzip2 1.0.3-6 high-quality block-sorting file co
ii debhelper 5.0.42 helper programs for debian/rules
ii module-assistant 0.10.9 tool to make module package creati
ov511-source recommends no packages.
-- no debconf information
diff -uN ov511.orig/ov511_core.c ov511/ov511_core.c
--- ov511.orig/ov511_core.c 2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov511_core.c 2007-01-13 11:03:10.000000000 +0100
@@ -26,9 +26,14 @@
* option) any later version. NO WARRANTY OF ANY KIND is expressed or implied.
*/
-#include <linux/config.h>
#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
/* 2.6 Doesn't support /proc/video, but this is still defined somewhere */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
# undef CONFIG_VIDEO_PROC_FS
@@ -5632,17 +5637,48 @@
}
static CLASS_DEVICE_ATTR(exposure, S_IRUGO, show_exposure, NULL);
-static void ov_create_sysfs(struct video_device *vdev)
+static int ov_create_sysfs(struct video_device *vdev)
{
- video_device_create_file(vdev, &class_device_attr_custom_id);
- video_device_create_file(vdev, &class_device_attr_model);
- video_device_create_file(vdev, &class_device_attr_bridge);
- video_device_create_file(vdev, &class_device_attr_sensor);
- video_device_create_file(vdev, &class_device_attr_brightness);
- video_device_create_file(vdev, &class_device_attr_saturation);
- video_device_create_file(vdev, &class_device_attr_contrast);
- video_device_create_file(vdev, &class_device_attr_hue);
- video_device_create_file(vdev, &class_device_attr_exposure);
+ int rc;
+ rc = video_device_create_file(vdev, &class_device_attr_custom_id);
+ if (rc) goto err;
+ rc = video_device_create_file(vdev, &class_device_attr_model);
+ if (rc) goto err_id;
+ rc = video_device_create_file(vdev, &class_device_attr_bridge);
+ if (rc) goto err_model;
+ rc = video_device_create_file(vdev, &class_device_attr_sensor);
+ if (rc) goto err_bridge;
+ rc = video_device_create_file(vdev, &class_device_attr_brightness);
+ if (rc) goto err_sensor;
+ rc = video_device_create_file(vdev, &class_device_attr_saturation);
+ if (rc) goto err_bright;
+ rc = video_device_create_file(vdev, &class_device_attr_contrast);
+ if (rc) goto err_sat;
+ rc = video_device_create_file(vdev, &class_device_attr_hue);
+ if (rc) goto err_contrast;
+ rc = video_device_create_file(vdev, &class_device_attr_exposure);
+ if (rc) goto err_hue;
+
+ return 0;
+
+err_hue:
+ video_device_remove_file(vdev, &class_device_attr_hue);
+err_contrast:
+ video_device_remove_file(vdev, &class_device_attr_contrast);
+err_sat:
+ video_device_remove_file(vdev, &class_device_attr_saturation);
+err_bright:
+ video_device_remove_file(vdev, &class_device_attr_brightness);
+err_sensor:
+ video_device_remove_file(vdev, &class_device_attr_sensor);
+err_bridge:
+ video_device_remove_file(vdev, &class_device_attr_bridge);
+err_model:
+ video_device_remove_file(vdev, &class_device_attr_model);
+err_id:
+ video_device_remove_file(vdev, &class_device_attr_custom_id);
+err:
+ return rc;
}
#endif
@@ -5863,7 +5899,10 @@
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
usb_set_intfdata(intf, ov);
- ov_create_sysfs(ov->vdev);
+ if (ov_create_sysfs(ov->vdev)) {
+ err("ov_create_sysfs failed");
+ goto error;
+ }
#endif
ov->present = 1;
diff -uN ov511.orig/ov511_decomp.c ov511/ov511_decomp.c
--- ov511.orig/ov511_decomp.c 2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov511_decomp.c 2007-01-13 10:57:56.000000000 +0100
@@ -13,9 +13,14 @@
#define __NO_VERSION__
-#include <linux/config.h>
#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
#include "ov511.h"
/* Variables in ov511.c: */
diff -uN ov511.orig/ov511.h ov511/ov511.h
--- ov511.orig/ov511.h 2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov511.h 2007-01-13 10:58:10.000000000 +0100
@@ -14,7 +14,11 @@
#define HAVE_V4L2
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
#include <linux/config.h>
+#endif
#include <asm/uaccess.h>
#include <linux/videodev.h>
#include <linux/smp_lock.h>
diff -uN ov511.orig/ov518_decomp.c ov511/ov518_decomp.c
--- ov511.orig/ov518_decomp.c 2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov518_decomp.c 2007-01-13 10:58:24.000000000 +0100
@@ -14,9 +14,14 @@
#define __NO_VERSION__
-#include <linux/config.h>
#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
#include "ov511.h"
/******************************************************************************
diff -uN ov511.orig/ov6x20.c ov511/ov6x20.c
--- ov511.orig/ov6x20.c 2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov6x20.c 2007-01-13 10:58:37.000000000 +0100
@@ -12,8 +12,14 @@
/* This file is not a module yet */
#define __NO_VERSION__
-#include <linux/config.h>
#include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
#include <linux/slab.h>
#include "ovcamchip_priv.h"
diff -uN ov511.orig/ov6x30.c ov511/ov6x30.c
--- ov511.orig/ov6x30.c 2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov6x30.c 2007-01-13 10:58:48.000000000 +0100
@@ -12,8 +12,14 @@
/* This file is not a module yet */
#define __NO_VERSION__
-#include <linux/config.h>
#include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
#include <linux/slab.h>
#include "ovcamchip_priv.h"
diff -uN ov511.orig/ov76be.c ov511/ov76be.c
--- ov511.orig/ov76be.c 2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov76be.c 2007-01-13 10:58:59.000000000 +0100
@@ -12,8 +12,14 @@
/* This file is not a module yet */
#define __NO_VERSION__
-#include <linux/config.h>
#include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
#include <linux/slab.h>
#include "ovcamchip_priv.h"
diff -uN ov511.orig/ov7x10.c ov511/ov7x10.c
--- ov511.orig/ov7x10.c 2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov7x10.c 2007-01-13 10:59:35.000000000 +0100
@@ -14,8 +14,14 @@
/* This file is not a module yet */
#define __NO_VERSION__
-#include <linux/config.h>
#include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
#include <linux/slab.h>
#include "ovcamchip_priv.h"
diff -uN ov511.orig/ov7x20.c ov511/ov7x20.c
--- ov511.orig/ov7x20.c 2006-11-01 16:38:26.000000000 +0100
+++ ov511/ov7x20.c 2007-01-13 10:59:45.000000000 +0100
@@ -14,8 +14,14 @@
/* This file is not a module yet */
#define __NO_VERSION__
-#include <linux/config.h>
#include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
#include <linux/slab.h>
#include "ovcamchip_priv.h"
diff -uN ov511.orig/ovcamchip_core.c ov511/ovcamchip_core.c
--- ov511.orig/ovcamchip_core.c 2006-11-01 16:38:26.000000000 +0100
+++ ov511/ovcamchip_core.c 2007-01-13 11:00:01.000000000 +0100
@@ -9,8 +9,14 @@
* option) any later version. NO WARRANTY OF ANY KIND is expressed or implied.
*/
-#include <linux/config.h>
#include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
#include <linux/init.h>
#include <linux/module.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 0)
diff -uN ov511.orig/ovfx2.c ov511/ovfx2.c
--- ov511.orig/ovfx2.c 2006-11-01 16:38:26.000000000 +0100
+++ ov511/ovfx2.c 2007-01-13 10:59:11.000000000 +0100
@@ -21,9 +21,14 @@
* option) any later version. NO WARRANTY OF ANY KIND is expressed or implied.
*/
-#include <linux/config.h>
#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
/* 2.6 Doesn't support /proc/video, but this is still defined somewhere */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
# undef CONFIG_VIDEO_PROC_FS
diff -uN ov511.orig/ovfx2.h ov511/ovfx2.h
--- ov511.orig/ovfx2.h 2006-11-01 16:38:26.000000000 +0100
+++ ov511/ovfx2.h 2007-01-13 10:59:20.000000000 +0100
@@ -14,7 +14,12 @@
#define HAVE_V4L2
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
#include <linux/config.h>
+#endif
+
#include <asm/uaccess.h>
#include <linux/videodev.h>
#include <linux/smp_lock.h>
diff -uN ov511.orig/saa7111-new.c ov511/saa7111-new.c
--- ov511.orig/saa7111-new.c 2006-11-01 16:38:26.000000000 +0100
+++ ov511/saa7111-new.c 2007-01-13 11:00:10.000000000 +0100
@@ -22,8 +22,14 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <linux/config.h>
#include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/autoconf.h>
+#else
+#include <linux/config.h>
+#endif
+
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>