video: Allow syncing the entire framebuffer to the copy
authorSimon Glass <sjg@chromium.org>
Thu, 14 Jan 2021 03:29:46 +0000 (20:29 -0700)
committerTom Rini <trini@konsulko.com>
Wed, 27 Jan 2021 22:03:16 +0000 (17:03 -0500)
In some cases so much of the framebuffer is updated that it is not worth
copying the changes piece by piece to the copy framebuffer. Add a function
to copy the whole thing.

Signed-off-by: Simon Glass <sjg@chromium.org>
drivers/video/video-uclass.c
include/video.h

index a1d5275..91d078a 100644 (file)
@@ -290,6 +290,16 @@ int video_sync_copy(struct udevice *dev, void *from, void *to)
 
        return 0;
 }
+
+int video_sync_copy_all(struct udevice *dev)
+{
+       struct video_priv *priv = dev_get_uclass_priv(dev);
+
+       video_sync_copy(dev, priv->fb, priv->fb + priv->fb_size);
+
+       return 0;
+}
+
 #endif
 
 /* Set up the colour map */
index 74d822f..8277333 100644 (file)
@@ -246,11 +246,25 @@ void video_set_default_colors(struct udevice *dev, bool invert);
  *     frame buffer start
  */
 int video_sync_copy(struct udevice *dev, void *from, void *to);
+
+/**
+ * video_sync_copy_all() - Sync the entire framebuffer to the copy
+ *
+ * @dev: Vidconsole device being updated
+ * @return 0 (always)
+ */
+int video_sync_copy_all(struct udevice *dev);
 #else
 static inline int video_sync_copy(struct udevice *dev, void *from, void *to)
 {
        return 0;
 }
+
+static inline int video_sync_copy_all(struct udevice *dev)
+{
+       return 0;
+}
+
 #endif
 
 #ifndef CONFIG_DM_VIDEO