summaryrefslogtreecommitdiff
path: root/usr/src/boot/sys/boot/efi/loader/comconsole.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/boot/sys/boot/efi/loader/comconsole.c')
-rw-r--r--usr/src/boot/sys/boot/efi/loader/comconsole.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/usr/src/boot/sys/boot/efi/loader/comconsole.c b/usr/src/boot/sys/boot/efi/loader/comconsole.c
index 5c738ad013..c0f8669efe 100644
--- a/usr/src/boot/sys/boot/efi/loader/comconsole.c
+++ b/usr/src/boot/sys/boot/efi/loader/comconsole.c
@@ -676,16 +676,18 @@ comc_setup(struct console *cp)
if (EFI_ERROR(status))
return (false);
+ status = sp->sio->GetControl(sp->sio, &control);
+ if (EFI_ERROR(status))
+ return (false);
if (sp->rtsdtr_off) {
- status = sp->sio->GetControl(sp->sio, &control);
- if (EFI_ERROR(status))
- return (false);
control &= ~(EFI_SERIAL_REQUEST_TO_SEND |
EFI_SERIAL_DATA_TERMINAL_READY);
- status = sp->sio->SetControl(sp->sio, control);
- if (EFI_ERROR(status))
- return (false);
+ } else {
+ control |= EFI_SERIAL_REQUEST_TO_SEND;
}
+
+ (void) sp->sio->SetControl(sp->sio, control);
+
/* Mark this port usable. */
cp->c_flags |= (C_PRESENTIN | C_PRESENTOUT);
return (true);