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(-)
@@ -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;
}
@@ -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;
}
@@ -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);
@@ -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);
/*