aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2024-01-07 17:14:54 -0700
committerSimon Glass <sjg@chromium.org>2024-10-18 14:10:21 -0600
commit112eb85c5a23a0c4a3f14d7099f18fd3128996ec (patch)
tree6c5a6a6e2d30ad0eb902516731c728cd87fc5c63
parent8ab2178de069194d2eed8fe1b90db7e12cf032bb (diff)
downloadu-boot-112eb85c5a23a0c4a3f14d7099f18fd3128996ec.tar.gz
video: Allow querying the font size
All the font size to be queried using the 'font size' command. Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r--cmd/font.c17
-rw-r--r--doc/usage/cmd/font.rst6
-rw-r--r--test/cmd/font.c9
3 files changed, 22 insertions, 10 deletions
diff --git a/cmd/font.c b/cmd/font.c
index eb13fb12f79..36e41203654 100644
--- a/cmd/font.c
+++ b/cmd/font.c
@@ -55,9 +55,6 @@ static int do_font_size(struct cmd_tbl *cmdtp, int flag, int argc,
uint size;
int ret;
- if (argc != 2)
- return CMD_RET_USAGE;
-
if (uclass_first_device_err(UCLASS_VIDEO_CONSOLE, &dev))
return CMD_RET_FAILURE;
ret = vidconsole_get_font_size(dev, &font_name, &size);
@@ -66,12 +63,16 @@ static int do_font_size(struct cmd_tbl *cmdtp, int flag, int argc,
return CMD_RET_FAILURE;
}
- size = dectoul(argv[1], NULL);
+ if (argc < 2) {
+ printf("%d\n", size);
+ } else {
+ size = dectoul(argv[1], NULL);
- ret = vidconsole_select_font(dev, font_name, size);
- if (ret) {
- printf("Failed (error %d)\n", ret);
- return CMD_RET_FAILURE;
+ ret = vidconsole_select_font(dev, font_name, size);
+ if (ret) {
+ printf("Failed (error %d)\n", ret);
+ return CMD_RET_FAILURE;
+ }
}
return 0;
diff --git a/doc/usage/cmd/font.rst b/doc/usage/cmd/font.rst
index a8782546333..44a04f5d075 100644
--- a/doc/usage/cmd/font.rst
+++ b/doc/usage/cmd/font.rst
@@ -13,7 +13,7 @@ Synopsis
font list
font select <name> [<size>]
- font size <size>
+ font size [<size>]
Description
-----------
@@ -34,7 +34,7 @@ This selects a new font and optionally changes the size.
font size
~~~~~~~~~
-This changes the font size only.
+This changes the font size only. With no argument it shows the current size.
Examples
--------
@@ -44,6 +44,8 @@ Examples
=> font list
nimbus_sans_l_regular
cantoraone_regular
+ => font size
+ 30
=> font size 40
=> font select cantoraone_regular 20
=>
diff --git a/test/cmd/font.c b/test/cmd/font.c
index 25d365dedd2..2aea7b68c47 100644
--- a/test/cmd/font.c
+++ b/test/cmd/font.c
@@ -58,10 +58,19 @@ static int font_test_base(struct unit_test_state *uts)
ut_assertok(vidconsole_get_font_size(dev, &name, &size));
ut_asserteq_str("cantoraone_regular", name);
ut_asserteq(40, size);
+ ut_assertok(ut_check_console_end(uts));
+
+ ut_assertok(run_command("font size", 0));
+ ut_assert_nextline("40");
+ ut_assertok(ut_check_console_end(uts));
ut_assertok(run_command("font size 30", 0));
ut_assert_console_end();
+ ut_assertok(run_command("font size", 0));
+ ut_assert_nextline("30");
+ ut_assertok(ut_check_console_end(uts));
+
ut_assertok(vidconsole_get_font_size(dev, &name, &size));
ut_asserteq_str("cantoraone_regular", name);
ut_asserteq(30, size);