  	SOC_MBUS_PACKING_EXTEND16,
  	SOC_MBUS_PACKING_VARIABLE,
  	SOC_MBUS_PACKING_1_5X8,
+diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h
+index 97aa133..8f9da7e 100644
+--- a/include/media/soc_camera.h
++++ b/include/media/soc_camera.h
+@@ -128,6 +128,7 @@ struct soc_camera_host_ops {
+ 	int (*set_parm)(struct soc_camera_device *, struct v4l2_streamparm *);
+ 	int (*enum_framesizes)(struct soc_camera_device *, struct v4l2_frmsizeenum *);
+ 	unsigned int (*poll)(struct file *, poll_table *);
++	int (*get_edid)(struct soc_camera_device *, struct v4l2_edid *);
+ };
+ 
+ #define SOCAM_SENSOR_INVERT_PCLK	(1 << 0)
 -- 
 1.9.1
 

 obj-$(CONFIG_SOC_CAMERA_MT9T031)	+= mt9t031.o
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..82d3f9c
--- /dev/null
+++ b/drivers/media/i2c/soc_camera/max9286_max9271.c
@@ -0,0 +1,467 @@

+};
+
+static const struct v4l2_subdev_pad_ops ov10635_subdev_pad_ops = {
+	.get_edid	= ov10635_get_edid,
+	.enum_mbus_code	= ov10635_enum_mbus_code,
+	.get_fmt	= ov10635_get_fmt,
+	.set_fmt	= ov10635_set_fmt,
