summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2022-10-06 17:36:13 +0300
committerAnatolij Gustschin <agust@denx.de>2022-10-30 22:01:40 +0300
commit518d844a5e5032dacfc73271dacc9bce497a1f46 (patch)
tree2c22f208ecaed59e308d4bcb625154a70783348b /drivers
parent39fa02d95504b9743aea7c789b1ba11aff19bae7 (diff)
downloadu-boot-518d844a5e5032dacfc73271dacc9bce497a1f46.tar.xz
video: Add a function to select the truetype metrics
Move this code into a function so we can call it later when we want to change the font. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/console_truetype.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c
index 6ef3fae8a3..5fc737a9ff 100644
--- a/drivers/video/console_truetype.c
+++ b/drivers/video/console_truetype.c
@@ -624,10 +624,25 @@ static int vidconsole_add_metrics(struct udevice *dev, const char *font_name,
return priv->num_metrics++;
}
-static int console_truetype_probe(struct udevice *dev)
+static void select_metrics(struct udevice *dev, struct console_tt_metrics *met)
{
struct vidconsole_priv *vc_priv = dev_get_uclass_priv(dev);
struct console_tt_priv *priv = dev_get_priv(dev);
+ struct udevice *vid_dev = dev_get_parent(dev);
+ struct video_priv *vid_priv = dev_get_uclass_priv(vid_dev);
+
+ priv->cur_met = met;
+ vc_priv->x_charsize = met->font_size;
+ vc_priv->y_charsize = met->font_size;
+ vc_priv->xstart_frac = VID_TO_POS(2);
+ vc_priv->cols = vid_priv->xsize / met->font_size;
+ vc_priv->rows = vid_priv->ysize / met->font_size;
+ vc_priv->tab_width_frac = VID_TO_POS(met->font_size) * 8 / 2;
+}
+
+static int console_truetype_probe(struct udevice *dev)
+{
+ struct console_tt_priv *priv = dev_get_priv(dev);
struct udevice *vid_dev = dev->parent;
struct video_priv *vid_priv = dev_get_uclass_priv(vid_dev);
struct font_info *tab;
@@ -650,12 +665,7 @@ static int console_truetype_probe(struct udevice *dev)
return log_msg_ret("add", ret);
priv->cur_met = &priv->metrics[ret];
- vc_priv->x_charsize = font_size;
- vc_priv->y_charsize = font_size;
- vc_priv->xstart_frac = VID_TO_POS(2);
- vc_priv->cols = vid_priv->xsize / font_size;
- vc_priv->rows = vid_priv->ysize / font_size;
- vc_priv->tab_width_frac = VID_TO_POS(font_size) * 8 / 2;
+ select_metrics(dev, &priv->metrics[ret]);
debug("%s: ready\n", __func__);