[Concept,08/18] video: Add vidconsole_uc_plat for per-device platform data

Message ID 20260117005702.1684841-9-sjg@u-boot.org
State New
Headers
Series Refactor vidconsole context for dynamic allocation |

Commit Message

Simon Glass Jan. 17, 2026, 12:56 a.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

Add a new struct vidconsole_uc_plat to hold uclass platform data for
vidconsole devices. This includes ctx_size which allows drivers to
specify the size of context data they need.

This prepares for dynamic context allocation where drivers can have
different sized contexts.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
---

 drivers/video/vidconsole-uclass.c |  1 +
 include/video_console.h           | 13 +++++++++++++
 2 files changed, 14 insertions(+)
  

Patch

diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
index ed9311bd05e..1ac8e2ddf3c 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
@@ -928,6 +928,7 @@  UCLASS_DRIVER(vidconsole) = {
 	.post_probe	= vidconsole_post_probe,
 	.pre_remove	= vidconsole_pre_remove,
 	.per_device_auto	= sizeof(struct vidconsole_priv),
+	.per_device_plat_auto	= sizeof(struct vidconsole_uc_plat),
 };
 
 int vidconsole_clear_and_reset(struct udevice *dev)
diff --git a/include/video_console.h b/include/video_console.h
index d3e8b3f3c9f..72bc0e5b0db 100644
--- a/include/video_console.h
+++ b/include/video_console.h
@@ -136,6 +136,19 @@  struct vidconsole_ctx {
 	int xsize_frac;
 };
 
+/**
+ * struct vidconsole_uc_plat - uclass platform data for a vidconsole device
+ *
+ * This holds information that the uclass needs to know about each device. It
+ * is accessed using dev_get_uclass_plat(dev).
+ *
+ * @ctx_size: Size of context data needed by the driver, or 0 to use the
+ *	default (sizeof(struct vidconsole_ctx))
+ */
+struct vidconsole_uc_plat {
+	uint ctx_size;
+};
+
 /**
  * struct vidconsole_priv - uclass-private data about a console device
  *