On 15.10.22 12:15, Heinrich Schuchardt wrote: > Carve out function efi_clear_screen. > This does not motivate *why* you prefer to not use efi_cout_clear_screen anymore. A side effect of this is that the screen will not longer be filled with a new background color, leading to lines that are written with that new background but only for the actual text length. Attached a screenshot to visualize this. Was that intended? Not saying it's necessarily critical. Jan PS: This is with proper console scrolling in place to avoid overwriting. Will send an update of my related patch soon. > Signed-off-by: Heinrich Schuchardt > --- > lib/efi_loader/efi_console.c | 26 +++++++++++++++++--------- > 1 file changed, 17 insertions(+), 9 deletions(-) > > diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c > index 3354b217a9..6d4784e140 100644 > --- a/lib/efi_loader/efi_console.c > +++ b/lib/efi_loader/efi_console.c > @@ -460,6 +460,20 @@ static efi_status_t EFIAPI efi_cout_set_attribute( > return EFI_EXIT(EFI_SUCCESS); > } > > +/** > + * 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 [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 > * > @@ -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 [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); > } -- Siemens AG, Technology Competence Center Embedded Linux