video: Add video_is_active function
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Mon, 15 Nov 2021 15:32:20 +0000 (16:32 +0100)
committerPatrice Chotard <patrice.chotard@foss.st.com>
Tue, 30 Nov 2021 15:43:28 +0000 (16:43 +0100)
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>
drivers/video/video-uclass.c
include/video.h

index 9f8cf6e..43ebb3c 100644 (file)
@@ -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);
index f14fb15..5ac1387 100644 (file)
@@ -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 */