@@ -48,6 +48,16 @@ int video_bridge_check_attached(struct udevice *dev)
return ops->check_attached(dev);
}
+int video_bridge_check_timing(struct udevice *dev, struct display_timing *timing)
+{
+ struct video_bridge_ops *ops = video_bridge_get_ops(dev);
+
+ if (ops->check_timing)
+ return ops->check_timing(dev, timing);
+
+ return 0;
+}
+
int video_bridge_read_edid(struct udevice *dev, u8 *buf, int buf_size)
{
struct video_bridge_ops *ops = video_bridge_get_ops(dev);
@@ -44,6 +44,17 @@ struct video_bridge_ops {
*/
int (*check_attached)(struct udevice *dev);
+ /**
+ * check_timing() - check if the timing need update after the bridge device attached
+ *
+ * This method is optional - if not provided then return 0
+ *
+ * @dev: Device to check
+ * @active: The timing to be checked and updated
+ * Return: 0 if OK, -ve on error
+ */
+ int (*check_timing)(struct udevice *dev, struct display_timing *timing);
+
/**
* set_backlight() - Set the backlight brightness
*
@@ -98,6 +109,15 @@ int video_bridge_set_active(struct udevice *dev, bool active);
*/
int video_bridge_check_attached(struct udevice *dev);
+/**
+ * check_timing() - check if the timing need update after the bridge device attached
+ *
+ * @dev: Device to check
+ * @active: The timing to be checked and updated
+ * Return: 0 if OK, -ve on error
+ */
+int video_bridge_check_timing(struct udevice *dev, struct display_timing *timing);
+
/**
* video_bridge_read_edid() - Read information from EDID
*