  			break;
  		}
  	}
+@@ -2133,6 +2145,7 @@ static const struct v4l2_ioctl_ops soc_camera_ioctl_ops = {
+ 	.vidioc_s_selection	 = soc_camera_s_selection,
+ 	.vidioc_g_parm		 = soc_camera_g_parm,
+ 	.vidioc_s_parm		 = soc_camera_s_parm,
++	.vidioc_g_edid		 = soc_camera_g_edid,
+ };
+ 
+ static int video_dev_create(struct soc_camera_device *icd)
 diff --git a/drivers/media/platform/soc_camera/soc_mediabus.c b/drivers/media/platform/soc_camera/soc_mediabus.c
 index e3e665e..84754a4 100644
 --- a/drivers/media/platform/soc_camera/soc_mediabus.c

 
 	match = of_match_device(of_match_ptr(rcar_vin_of_table), &pdev->dev);
 
@@ -2686,13 +2727,17 @@ static int rcar_vin_probe(struct platform_device *pdev)
 		dev_dbg(&pdev->dev, "node name:%s\n",
 			of_node_full_name(ren->parent));
 

 	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

