 \ No newline at end of file
 diff --git a/drivers/media/i2c/soc_camera/max9286_max9271_ov10635.c b/drivers/media/i2c/soc_camera/max9286_max9271_ov10635.c
 new file mode 100644
-index 0000000..7ca3f3f
+index 0000000..e206800
 --- /dev/null
 +++ b/drivers/media/i2c/soc_camera/max9286_max9271_ov10635.c
-@@ -0,0 +1,606 @@
+@@ -0,0 +1,623 @@
 +/*
 + * MAXIM max9286-max9271 with OmniVision ov10635 sensor camera driver
 + *

 drivers/media/i2c/soc_camera/Makefile              |    4 +
 drivers/media/i2c/soc_camera/max9286_max9271.c     |  383 +++++++
 drivers/media/i2c/soc_camera/max9286_max9271.h     |  231 ++++
 .../media/i2c/soc_camera/max9286_max9271_ov10635.c |  615 +++++++++++
 .../media/i2c/soc_camera/max9286_max9271_ov10635.h | 1149 ++++++++++++++++++++
 .../media/i2c/soc_camera/max9286_max9271_ov106xx.c |  106 ++
 .../i2c/soc_camera/max9286_max9271_ov490_ov10640.c |  712 ++++++++++++
 .../i2c/soc_camera/max9286_max9271_ov490_ov10640.h |   35 +
 drivers/media/platform/soc_camera/rcar_csi2.c      |  106 +-
 drivers/media/platform/soc_camera/rcar_vin.c       |    4 +
 drivers/media/platform/soc_camera/soc_mediabus.c   |   16 +
 include/media/drv-intf/soc_mediabus.h              |    3 +
 13 files changed, 3327 insertions(+), 69 deletions(-)
 create mode 100644 drivers/media/i2c/soc_camera/max9286_max9271.c
 create mode 100644 drivers/media/i2c/soc_camera/max9286_max9271.h
 create mode 100644 drivers/media/i2c/soc_camera/max9286_max9271_ov10635.c

+	return 0;
+}
+
+static int ov490_s_crop(struct v4l2_subdev *sd, const struct v4l2_crop *a)
+{
+	struct v4l2_crop a_writable = *a;
+	struct v4l2_rect *rect = &a_writable.c;
+	struct i2c_client *client = v4l2_get_subdevdata(sd);
+	struct ov490_priv *priv = to_ov490(client);
+
+	rect->left = 0;
+	rect->top = 0;
+	rect->width = priv->width;
+	rect->height = priv->height;
+
+	return 0;
+}
+
+static int ov490_g_crop(struct v4l2_subdev *sd, struct v4l2_crop *a)
+{
+	struct i2c_client *client = v4l2_get_subdevdata(sd);
+	struct ov490_priv *priv = to_ov490(client);
+
+	a->c.left = 0;
+	a->c.top = 0;
+	a->c.width = priv->width;
+	a->c.height = priv->height;
+	a->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+
+	return 0;
+}
+
+static int ov490_cropcap(struct v4l2_subdev *sd, struct v4l2_cropcap *a)
+{
+	struct i2c_client *client = v4l2_get_subdevdata(sd);
+	struct ov490_priv *priv = to_ov490(client);
+
+	a->bounds.left = 0;
+	a->bounds.top = 0;
+	a->bounds.width = priv->width;
+	a->bounds.height = priv->height;
+	a->defrect = a->bounds;
+	a->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+
+	return 0;
+}
+
+static int ov490_g_mbus_config(struct v4l2_subdev *sd,
+			       struct v4l2_mbus_config *cfg)
+{
