From: Patrick Delaunay <patrick.delaunay@foss.st.com>
Date: Mon, 15 Nov 2021 15:32:20 +0000 (+0100)
Subject: video: Add video_is_active function
X-Git-Tag: v2025.01-rc5-pxa1908~1591^2~16^2~7
X-Git-Url: http://git.dujemihanovic.xyz/html/index.html?a=commitdiff_plain;h=2e2e6d8cacbc80f2da0ce8f1afca5ed24020b331;p=u-boot.git

video: Add video_is_active function

Add the helper function video_is_active() to test if one video device
is active.

This function can be used in board code to execute operation
only when the display is probed / really used.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
---

diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
index 9f8cf6ef2a..43ebb3c565 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
@@ -228,6 +228,20 @@ void video_sync_all(void)
 	}
 }
 
+bool video_is_active(void)
+{
+	struct udevice *dev;
+
+	for (uclass_find_first_device(UCLASS_VIDEO, &dev);
+	     dev;
+	     uclass_find_next_device(&dev)) {
+		if (device_active(dev))
+			return true;
+	}
+
+	return false;
+}
+
 int video_get_xsize(struct udevice *dev)
 {
 	struct video_priv *priv = dev_get_uclass_priv(dev);
diff --git a/include/video.h b/include/video.h
index f14fb15f84..5ac1387a39 100644
--- a/include/video.h
+++ b/include/video.h
@@ -276,6 +276,13 @@ static inline int video_sync_copy_all(struct udevice *dev)
 
 #endif
 
+/**
+ * video_is_active() - Test if one video device it active
+ *
+ * @return true if at least one video device is active, else false.
+ */
+bool video_is_active(void);
+
 #ifndef CONFIG_DM_VIDEO
 
 /* Video functions */