Binary files sn9c1xx-1.50.orig/.sn9c102.h.swp and sn9c1xx-1.50/.sn9c102.h.swp differ Binary files sn9c1xx-1.50.orig/.sn9c102_core.c.swp and sn9c1xx-1.50/.sn9c102_core.c.swp differ diff -uriN sn9c1xx-1.50.orig/Kbuild sn9c1xx-1.50/Kbuild --- sn9c1xx-1.50.orig/Kbuild 2008-01-18 09:38:32.000000000 -0600 +++ sn9c1xx-1.50/Kbuild 2016-01-31 09:59:33.000000000 -0600 @@ -33,6 +33,3 @@ sensors/sn9c102_tas5110c1b.o \ sensors/sn9c102_tas5110d.o \ sensors/sn9c102_tas5130d1b.o - -# Enable the /sysfs interface overriding the kernel configuration option -EXTRA_CFLAGS := -DCONFIG_VIDEO_ADV_DEBUG diff -uriN sn9c1xx-1.50.orig/sn9c102.h sn9c1xx-1.50/sn9c102.h --- sn9c1xx-1.50.orig/sn9c102.h 2008-06-07 08:16:16.000000000 -0500 +++ sn9c1xx-1.50/sn9c102.h 2016-01-31 11:41:36.000000000 -0600 @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -185,7 +186,7 @@ # define V4LDBG(level, name, cmd) \ do { \ if (debug >= (level)) \ - v4l_print_ioctl(name, cmd); \ + v4l_printk_ioctl(name, cmd); \ } while (0) # define KDBG(level, fmt, args...) \ do { \ diff -uriN sn9c1xx-1.50.orig/sn9c102_core.c sn9c1xx-1.50/sn9c102_core.c --- sn9c1xx-1.50.orig/sn9c102_core.c 2008-06-07 08:19:21.000000000 -0500 +++ sn9c1xx-1.50/sn9c102_core.c 2016-01-31 12:39:18.000000000 -0600 @@ -50,6 +50,13 @@ #define SN9C102_MODULE_VERSION "1:1.50" #define SN9C102_MODULE_VERSION_CODE KERNEL_VERSION(1, 1, 50) +/* +https://forums.opensuse.org/showthread.php/481597-warning-kernel-3-7-1-1-breaks-fglrx-12-6-legacy-driver + */ +#ifndef VM_RESERVED +#define VM_RESERVED (VM_DONTEXPAND | VM_DONTDUMP) +#endif + /*****************************************************************************/ MODULE_DEVICE_TABLE(usb, sn9c102_id_table); @@ -2185,7 +2192,7 @@ strlcpy(cap.card, cam->v4ldev->name, sizeof(cap.card)); if (usb_make_path(cam->usbdev, cap.bus_info, sizeof(cap.bus_info)) < 0) - strlcpy(cap.bus_info, cam->usbdev->dev.bus_id, + strlcpy(cap.bus_info, dev_name(&cam->usbdev->dev), sizeof(cap.bus_info)); if (copy_to_user(arg, &cap, sizeof(cap))) @@ -3286,9 +3293,9 @@ .owner = THIS_MODULE, .open = sn9c102_open, .release = sn9c102_release, - .ioctl = sn9c102_ioctl, + .unlocked_ioctl = sn9c102_ioctl, #ifdef CONFIG_COMPAT - .compat_ioctl = v4l_compat_ioctl32, + .compat_ioctl = v4l2_compat_ioctl32, #endif .read = sn9c102_read, .poll = sn9c102_poll, @@ -3386,13 +3393,18 @@ } strcpy(cam->v4ldev->name, "SN9C1xx PC Camera"); - cam->v4ldev->owner = THIS_MODULE; - cam->v4ldev->type = VID_TYPE_CAPTURE | VID_TYPE_SCALES; + cam->v4ldev->cdev->owner = THIS_MODULE; +#if 0 + /* hardware is neither fefined in struct video_device, struct cdev or struct device + * and it's being initialized as 0 + * so we might just ignore it */ cam->v4ldev->hardware = 0; +#endif cam->v4ldev->fops = &sn9c102_fops; cam->v4ldev->minor = video_nr[dev_nr]; cam->v4ldev->release = video_device_release; - cam->v4ldev->dev = &udev->dev; + memcpy(&cam->v4ldev->dev, &udev->dev, sizeof(struct device)); + cam->v4ldev->dev.type = V4L2_CAP_VIDEO_CAPTURE ; init_completion(&cam->probe);