 +static int ov10635_set_regs(struct i2c_client *client,
 +			    const struct ov10635_reg *regs, int nr_regs)
 +{
-+	int i, ret;
++	int i;
 +
 +	for (i = 0; i < nr_regs; i++) {
-+		ret = maxim_reg16_write(client, regs[i].reg, regs[i].val);
-+#if 0 /* Do not stop on write fail .... */
-+		if (ret)
-+			return ret;
-+#endif
++		if (maxim_reg16_write(client, regs[i].reg, regs[i].val)) {
++			usleep_range(100, 150); /* wait 100ns */
++			maxim_reg16_write(client, regs[i].reg, regs[i].val);
++		}
 +	}
 +
 +	return 0;

+#endif
diff --git a/drivers/media/i2c/soc_camera/max9271_ov490_ov10640.h b/drivers/media/i2c/soc_camera/max9271_ov490_ov10640.h
new file mode 100644
index 0000000..000407f
--- /dev/null
+++ b/drivers/media/i2c/soc_camera/max9271_ov490_ov10640.h
@@ -0,0 +1,35 @@
+/*
+ * OmniVision ov490-ov10640 sensor camera wizard 1280x1080@30/UYVY/BT601/8bit
+ *

+{0xfffe, 0x82},
+{0x0071, 0x11},
+{0x0075, 0x11},
+{0xfffe, 0x29},
+{0x6010, 0x01},
+{0x4017, 0x00},
+{0xfffe, 0x28},
+{0x6000, 0x04},
+{0x6004, 0x00},
+{0x6008, 0x01},
+{0xfffe, 0x80},
+{0x0091, 0x00},
+{0x00bb, 0x1d},
+};
diff --git a/drivers/media/i2c/soc_camera/max9286_max9271.c b/drivers/media/i2c/soc_camera/max9286_max9271.c
new file mode 100644
index 0000000..d734203
--- /dev/null
+++ b/drivers/media/i2c/soc_camera/max9286_max9271.c
@@ -0,0 +1,478 @@
+/*
+ * MAXIM max9286-max9271 GMSL driver
+ *
