Here is a patch that works with the most recent kernel (2.6.21) as of 2007-04-27.

P.S.

Latest SVN version may also work, but I stuck with 0.10.1 for now, so hope this helps to anyone else as well.
diff -u -r 0.10.1/driver/ivtv-ioctl.c 0.10.1p/driver/ivtv-ioctl.c
--- 0.10.1/driver/ivtv-ioctl.c  2007-02-18 04:34:16.000000000 -0500
+++ 0.10.1p/driver/ivtv-ioctl.c 2007-04-27 13:37:55.000000000 -0400
@@ -556,8 +556,8 @@
        /* ioctls to allow direct access to the encoder registers for testing */
        case VIDIOC_INT_G_REGISTER:
                IVTV_DEBUG_IOCTL("VIDIOC_INT_G_REGISTER\n");
-               if (reg->i2c_id)
-                       return ivtv_i2c_id(itv, reg->i2c_id, cmd, reg);
+               if (reg->match_type == V4L2_CHIP_MATCH_I2C_DRIVER)
+                       return ivtv_i2c_id(itv, reg->match_chip, cmd, reg);
                return ivtv_itvc(itv, cmd, arg);
 
        case VIDIOC_INT_S_REGISTER:
@@ -566,8 +566,8 @@
                cmd = VIDIOC_INT_S_REGISTER;
 #endif
                IVTV_DEBUG_IOCTL("VIDIOC_INT_S_REGISTER\n");
-               if (reg->i2c_id)
-                       return ivtv_i2c_id(itv, reg->i2c_id, cmd, reg);
+               if (reg->match_type == V4L2_CHIP_MATCH_I2C_DRIVER)
+                       return ivtv_i2c_id(itv, reg->match_chip, cmd, reg);
                return ivtv_itvc(itv, cmd, arg);
 
        case VIDIOC_INT_S_AUDIO_ROUTING: {
diff -u -r 0.10.1/i2c-drivers/saa717x.c 0.10.1p/i2c-drivers/saa717x.c
--- 0.10.1/i2c-drivers/saa717x.c        2006-11-24 08:48:32.000000000 -0500
+++ 0.10.1p/i2c-drivers/saa717x.c       2007-04-27 14:02:55.000000000 -0400
@@ -62,6 +62,11 @@
 #include <linux/i2c.h>
 #include <media/v4l2-common.h>
 
+#ifdef VIDIOC_DBG_S_REGISTER
+#define VIDIOC_INT_S_REGISTER VIDIOC_DBG_S_REGISTER
+#define VIDIOC_INT_G_REGISTER VIDIOC_DBG_G_REGISTER
+#endif
+
 MODULE_DESCRIPTION("Philips SAA717x video decoder driver");
 MODULE_AUTHOR("Kevin Thayer, K. Ohta");
 MODULE_LICENSE("GPL");
@@ -1257,7 +1262,7 @@
        {
                struct v4l2_register *reg = arg;
 
-               if (reg->i2c_id != I2C_DRIVERID_SAA717X)
+               if (reg->match_type == V4L2_CHIP_MATCH_I2C_DRIVER && 
reg->match_chip != I2C_DRIVERID_SAA717X)
                        return -EINVAL;
                reg->val = saa717x_read(client, reg->reg);
                break;
@@ -1269,7 +1274,7 @@
                u16 addr = reg->reg & 0xffff;
                u8 val = reg->val & 0xff;
 
-               if (reg->i2c_id != I2C_DRIVERID_SAA717X)
+               if (reg->match_type == V4L2_CHIP_MATCH_I2C_DRIVER && 
reg->match_chip != I2C_DRIVERID_SAA717X)
                        return -EINVAL;
                if (!capable(CAP_SYS_ADMIN))
                        return -EPERM;
_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to