summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux/include/media/v4l2-i2c-drv-legacy.h12
-rw-r--r--linux/include/media/v4l2-i2c-drv.h11
2 files changed, 23 insertions, 0 deletions
diff --git a/linux/include/media/v4l2-i2c-drv-legacy.h b/linux/include/media/v4l2-i2c-drv-legacy.h
index 39e8f3b1b..7494bdcc3 100644
--- a/linux/include/media/v4l2-i2c-drv-legacy.h
+++ b/linux/include/media/v4l2-i2c-drv-legacy.h
@@ -168,6 +168,14 @@ static struct i2c_driver v4l2_i2c_driver = {
};
#endif
+
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 26)
+static int compat_legacy_probe(struct i2c_client *client)
+{
+ return v4l2_i2c_data.probe(client, NULL);
+}
+#endif
+
static int __init v4l2_i2c_drv_init(void)
{
int err;
@@ -198,7 +206,11 @@ static int __init v4l2_i2c_drv_init(void)
v4l2_i2c_driver.driver.name = v4l2_i2c_data.name;
v4l2_i2c_driver.id = v4l2_i2c_data.driverid;
v4l2_i2c_driver.command = v4l2_i2c_data.command;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)
v4l2_i2c_driver.probe = v4l2_i2c_data.probe;
+#else
+ v4l2_i2c_driver.probe = compat_legacy_probe;
+#endif
v4l2_i2c_driver.remove = v4l2_i2c_data.remove;
err = i2c_add_driver(&v4l2_i2c_driver);
if (err)
diff --git a/linux/include/media/v4l2-i2c-drv.h b/linux/include/media/v4l2-i2c-drv.h
index ed1a752bd..5b4959620 100644
--- a/linux/include/media/v4l2-i2c-drv.h
+++ b/linux/include/media/v4l2-i2c-drv.h
@@ -45,6 +45,13 @@ struct v4l2_i2c_driver_data {
static struct v4l2_i2c_driver_data v4l2_i2c_data;
static struct i2c_driver v4l2_i2c_driver;
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 26)
+static int compat_legacy_probe(struct i2c_client *client)
+{
+ return v4l2_i2c_data.probe(client, NULL);
+}
+#endif
+
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
/* Bus-based I2C implementation for kernels >= 2.6.22 */
@@ -54,7 +61,11 @@ static int __init v4l2_i2c_drv_init(void)
v4l2_i2c_driver.driver.name = v4l2_i2c_data.name;
v4l2_i2c_driver.id = v4l2_i2c_data.driverid;
v4l2_i2c_driver.command = v4l2_i2c_data.command;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 26)
v4l2_i2c_driver.probe = v4l2_i2c_data.probe;
+#else
+ v4l2_i2c_driver.probe = compat_legacy_probe;
+#endif
v4l2_i2c_driver.remove = v4l2_i2c_data.remove;
v4l2_i2c_driver.suspend = v4l2_i2c_data.suspend;
v4l2_i2c_driver.resume = v4l2_i2c_data.resume;