diff options
author | Tom Rini <trini@konsulko.com> | 2022-10-16 20:23:47 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-10-16 20:23:47 -0400 |
commit | e2ff1d0fa777b11ad6b26432cb7613ab433b15d6 (patch) | |
tree | 905752b31d7b4161ed2f166b3d1ab0d98c07333c /lib/efi_loader/efi_console.c | |
parent | 0e49f5c26caf9972137a474065afd4bdfe5ec062 (diff) | |
parent | 70089c13a73f58315547982573be2016e7a70958 (diff) |
Merge tag 'efi-2023-01-rc1-3' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request for efi-2023-01-rc1-3
UEFI:
* replace EFI_CALL() by internal functions
* delete loadfile2 handle by uninstalling all protocols
Other:
* Provide spi_set_speed() needed for implementation of
EFI SPI I/O protocol
Diffstat (limited to 'lib/efi_loader/efi_console.c')
-rw-r--r-- | lib/efi_loader/efi_console.c | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c index 3354b217a9a..ab83f8bf828 100644 --- a/lib/efi_loader/efi_console.c +++ b/lib/efi_loader/efi_console.c @@ -462,6 +462,20 @@ static efi_status_t EFIAPI efi_cout_set_attribute( /** * efi_cout_clear_screen() - clear screen + */ +static void efi_clear_screen(void) +{ + /* + * The Linux console wants both a clear and a home command. The video + * uclass does not support <ESC>[H without coordinates, yet. + */ + printf(ESC "[2J" ESC "[1;1H"); + efi_con_mode.cursor_column = 0; + efi_con_mode.cursor_row = 0; +} + +/** + * efi_cout_clear_screen() - clear screen * * This function implements the ClearScreen service of the simple text output * protocol. See the Unified Extensible Firmware Interface (UEFI) specification @@ -475,13 +489,7 @@ static efi_status_t EFIAPI efi_cout_clear_screen( { EFI_ENTRY("%p", this); - /* - * The Linux console wants both a clear and a home command. The video - * uclass does not support <ESC>[H without coordinates, yet. - */ - printf(ESC "[2J" ESC "[1;1H"); - efi_con_mode.cursor_column = 0; - efi_con_mode.cursor_row = 0; + efi_clear_screen(); return EFI_EXIT(EFI_SUCCESS); } @@ -510,7 +518,7 @@ static efi_status_t EFIAPI efi_cout_set_mode( return EFI_EXIT(EFI_UNSUPPORTED); efi_con_mode.mode = mode_number; - EFI_CALL(efi_cout_clear_screen(this)); + efi_clear_screen(); return EFI_EXIT(EFI_SUCCESS); } @@ -536,7 +544,7 @@ static efi_status_t EFIAPI efi_cout_reset( efi_con_mode.attribute = 0x07; printf(ESC "[0;37;40m"); /* Clear screen */ - EFI_CALL(efi_cout_clear_screen(this)); + efi_clear_screen(); return EFI_EXIT(EFI_SUCCESS); } @@ -1351,9 +1359,7 @@ efi_status_t efi_console_get_u16_string(struct efi_simple_text_input_protocol *c ANSI_CLEAR_LINE_TO_END ANSI_CURSOR_SHOW, row, col); - ret = EFI_CALL(cin->reset(cin, false)); - if (ret != EFI_SUCCESS) - return ret; + efi_cin_empty_buffer(); for (;;) { do { |