efi/gop: Slightly re-arrange logic of find_gop
Small cleanup to get rid of conout_found. Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu> Link: https://lore.kernel.org/r/20200320020028.1936003-6-nivedita@alum.mit.edu Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
Родитель
ecf53091f3
Коммит
8e0a22e2b0
|
@ -99,7 +99,6 @@ find_gop(efi_guid_t *proto, unsigned long size, void **handles)
|
||||||
|
|
||||||
for_each_efi_handle(h, handles, size, i) {
|
for_each_efi_handle(h, handles, size, i) {
|
||||||
efi_guid_t conout_proto = EFI_CONSOLE_OUT_DEVICE_GUID;
|
efi_guid_t conout_proto = EFI_CONSOLE_OUT_DEVICE_GUID;
|
||||||
bool conout_found = false;
|
|
||||||
void *dummy = NULL;
|
void *dummy = NULL;
|
||||||
|
|
||||||
status = efi_bs_call(handle_protocol, h, proto, (void **)&gop);
|
status = efi_bs_call(handle_protocol, h, proto, (void **)&gop);
|
||||||
|
@ -111,25 +110,22 @@ find_gop(efi_guid_t *proto, unsigned long size, void **handles)
|
||||||
if (info->pixel_format == PIXEL_BLT_ONLY)
|
if (info->pixel_format == PIXEL_BLT_ONLY)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Systems that use the UEFI Console Splitter may
|
||||||
|
* provide multiple GOP devices, not all of which are
|
||||||
|
* backed by real hardware. The workaround is to search
|
||||||
|
* for a GOP implementing the ConOut protocol, and if
|
||||||
|
* one isn't found, to just fall back to the first GOP.
|
||||||
|
*
|
||||||
|
* Once we've found a GOP supporting ConOut,
|
||||||
|
* don't bother looking any further.
|
||||||
|
*/
|
||||||
status = efi_bs_call(handle_protocol, h, &conout_proto, &dummy);
|
status = efi_bs_call(handle_protocol, h, &conout_proto, &dummy);
|
||||||
if (status == EFI_SUCCESS)
|
if (status == EFI_SUCCESS)
|
||||||
conout_found = true;
|
return gop;
|
||||||
|
|
||||||
if (!first_gop || conout_found) {
|
if (!first_gop)
|
||||||
/*
|
|
||||||
* Systems that use the UEFI Console Splitter may
|
|
||||||
* provide multiple GOP devices, not all of which are
|
|
||||||
* backed by real hardware. The workaround is to search
|
|
||||||
* for a GOP implementing the ConOut protocol, and if
|
|
||||||
* one isn't found, to just fall back to the first GOP.
|
|
||||||
*
|
|
||||||
* Once we've found a GOP supporting ConOut,
|
|
||||||
* don't bother looking any further.
|
|
||||||
*/
|
|
||||||
first_gop = gop;
|
first_gop = gop;
|
||||||
if (conout_found)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return first_gop;
|
return first_gop;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче