  drivers/media/i2c/soc_camera/ti964_ti913.c       |  356 +++++++
  drivers/media/i2c/soc_camera/ti964_ti913.h       |  109 +++
  drivers/media/platform/soc_camera/rcar_csi2.c    |  249 +++--
- drivers/media/platform/soc_camera/rcar_vin.c     |  142 ++-
+ drivers/media/platform/soc_camera/rcar_vin.c     |  159 ++-
  drivers/media/platform/soc_camera/soc_camera.c   |   17 +-
  drivers/media/platform/soc_camera/soc_mediabus.c |   16 +
  include/media/drv-intf/soc_mediabus.h            |    3 +
  include/media/soc_camera.h                       |    1 +
- 21 files changed, 5659 insertions(+), 106 deletions(-)
+ 21 files changed, 5675 insertions(+), 107 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/ov10635.c

 static int rcar_vin_add_device(struct soc_camera_device *icd)
 {
 	struct soc_camera_host *ici = to_soc_camera_host(icd->parent);
@@ -1328,7 +1369,8 @@ static int rcar_vin_add_device(struct soc_camera_device *icd)
 
 	if (priv->chip == RCAR_H3 || priv->chip == RCAR_M3) {
 		struct v4l2_subdev *csi2_sd = find_csi2(priv);

 	default:
 		can_scale = false;
 		break;
@@ -2556,7 +2641,8 @@ static int rcar_vin_try_fmt(struct soc_camera_device *icd,
 	/* odd number clipping by pixel post clip processing, */
 	/* it is outputted to a memory per even pixels. */
 	if ((pixfmt == V4L2_PIX_FMT_NV16) || (pixfmt == V4L2_PIX_FMT_NV12) ||
-		(pixfmt == V4L2_PIX_FMT_YUYV) || (pixfmt == V4L2_PIX_FMT_UYVY))
+		(pixfmt == V4L2_PIX_FMT_YUYV) || (pixfmt == V4L2_PIX_FMT_UYVY) ||
+		(pixfmt == V4L2_PIX_FMT_GREY))
 		v4l_bound_align_image(&pix->width, 5, priv->max_width, 1,
 				      &pix->height, 2, priv->max_height, 0, 0);
 	else
@@ -2722,6 +2808,19 @@ static int rcar_vin_cropcap(struct soc_camera_device *icd,
 	return 0;
 }
 
