 +		priv->pclk_rising_edge = true;
 +	if (of_property_read_bool(np, "maxim,pclk-falling-edge"))
 +		priv->pclk_rising_edge = false;
-+		if (of_property_read_u32(np, "maxim,timeout", &priv->timeout))
++	if (of_property_read_u32(np, "maxim,timeout", &priv->timeout))
 +		priv->timeout = 100;
 +
 +	dev_info(&client->dev, "LINKs=%d, LANES=%d, RESETB GPIO=%d, FSYNC mode=%s, FSYNC period=%d, PCLK edge=%s\n",

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

 			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
