From: Simon Glass <sjg@chromium.org>
Date: Wed, 21 Aug 2024 16:18:55 +0000 (-0600)
Subject: video: Add a function to obtain the framebuffer address
X-Git-Tag: v2025.01-rc5-pxa1908~170^2~69^2~35
X-Git-Url: http://git.dujemihanovic.xyz/repo?a=commitdiff_plain;h=b5c5923e4e4d526055c559e9bf644c2669335730;p=u-boot.git

video: Add a function to obtain the framebuffer address

Add a new function which returns the framebuffer address of the first
video device. This will allow the global_data field top be dropped.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
index a5aa8dd529..e358a7949e 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
@@ -152,6 +152,20 @@ int video_reserve(ulong *addrp)
 	return 0;
 }
 
+ulong video_get_fb(void)
+{
+	struct udevice *dev;
+
+	uclass_find_first_device(UCLASS_VIDEO, &dev);
+	if (dev) {
+		const struct video_uc_plat *uc_plat = dev_get_uclass_plat(dev);
+
+		return uc_plat->base;
+	}
+
+	return 0;
+}
+
 int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend,
 		    int yend, u32 colour)
 {
diff --git a/include/video.h b/include/video.h
index 4013a94998..606c8a37fb 100644
--- a/include/video.h
+++ b/include/video.h
@@ -420,4 +420,15 @@ int bmp_info(ulong addr);
  */
 int video_reserve_from_bloblist(struct video_handoff *ho);
 
+/**
+ * video_get_fb() - Get the first framebuffer address
+ *
+ * This function does not probe video devices, so can only be used after a video
+ * device has been activated.
+ *
+ * Return: address of the framebuffer of the first video device found, or 0 if
+ * there is no device
+ */
+ulong video_get_fb(void);
+
 #endif