[Concept,24/36] video: Pass context to vidconsole_set_bitmap_font()

Message ID 20260120231814.2033069-25-sjg@u-boot.org
State New
Headers
Series video: Add multiple-context support to vidconsole (part F) |

Commit Message

Simon Glass Jan. 20, 2026, 11:17 p.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

Update vidconsole_set_bitmap_font() to take a context parameter so it
can set font properties for a specific context rather than always using
the default.

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

 drivers/video/console_core.c      | 2 +-
 drivers/video/console_truetype.c  | 2 +-
 drivers/video/vidconsole-uclass.c | 4 +---
 include/video_console.h           | 3 ++-
 4 files changed, 5 insertions(+), 6 deletions(-)
  

Patch

diff --git a/drivers/video/console_core.c b/drivers/video/console_core.c
index dba47af4eb5..ff5d9f5964a 100644
--- a/drivers/video/console_core.c
+++ b/drivers/video/console_core.c
@@ -25,7 +25,7 @@  static int console_set_font(struct udevice *dev, struct video_fontdata *fontdata
 	struct console_simple_priv *priv = dev_get_priv(dev);
 
 	priv->fontdata = fontdata;
-	vidconsole_set_bitmap_font(dev, fontdata);
+	vidconsole_set_bitmap_font(dev, vidconsole_ctx(dev), fontdata);
 
 	return 0;
 }
diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c
index 9b835437031..7a5588bf419 100644
--- a/drivers/video/console_truetype.c
+++ b/drivers/video/console_truetype.c
@@ -908,7 +908,7 @@  static void set_bitmap_font(struct udevice *dev,
 	ctx->cur_fontdata = fontdata;
 	ctx->cur_met = NULL;
 
-	vidconsole_set_bitmap_font(dev, fontdata);
+	vidconsole_set_bitmap_font(dev, com, fontdata);
 
 	com->tab_width_frac = VID_TO_POS(fontdata->width) * 8 / 2;
 }
diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
index c0eee7d75fd..b5a129d82b7 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
@@ -981,11 +981,9 @@  void vidconsole_set_quiet(struct udevice *dev, bool quiet)
 	priv->quiet = quiet;
 }
 
-void vidconsole_set_bitmap_font(struct udevice *dev,
+void vidconsole_set_bitmap_font(struct udevice *dev, struct vidconsole_ctx *ctx,
 				struct video_fontdata *fontdata)
 {
-	struct vidconsole_priv *vc_priv = dev_get_uclass_priv(dev);
-	struct vidconsole_ctx *ctx = vidconsole_ctx_from_priv(vc_priv);
 	struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent);
 
 	log_debug("console_simple: setting %s font\n", fontdata->name);
diff --git a/include/video_console.h b/include/video_console.h
index c5fc0577670..500a5974a57 100644
--- a/include/video_console.h
+++ b/include/video_console.h
@@ -860,9 +860,10 @@  void vidconsole_set_quiet(struct udevice *dev, bool quiet);
  * vidconsole_set_bitmap_font() - prepare vidconsole for chosen bitmap font
  *
  * @dev		vidconsole device
+ * @ctx		vidconsole context
  * @fontdata	pointer to font data struct
  */
-void vidconsole_set_bitmap_font(struct udevice *dev,
+void vidconsole_set_bitmap_font(struct udevice *dev, struct vidconsole_ctx *ctx,
 				struct video_fontdata *fontdata);
 
 /*