Commit ecf53091 authored by Arvind Sankar's avatar Arvind Sankar Committed by Ard Biesheuvel
Browse files

efi/gop: Factor out locating the gop into a function



Move the loop to find a gop into its own function.

Signed-off-by: default avatarArvind Sankar <nivedita@alum.mit.edu>
Link: https://lore.kernel.org/r/20200320020028.1936003-5-nivedita@alum.mit.edu


Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent 6327e6d0
Loading
Loading
Loading
Loading
+17 −6
Original line number Diff line number Diff line
@@ -85,19 +85,17 @@ setup_pixel_info(struct screen_info *si, u32 pixels_per_scan_line,
	}
}

static efi_status_t setup_gop(struct screen_info *si, efi_guid_t *proto,
			      unsigned long size, void **handles)
static efi_graphics_output_protocol_t *
find_gop(efi_guid_t *proto, unsigned long size, void **handles)
{
	efi_graphics_output_protocol_t *gop, *first_gop;
	efi_graphics_output_protocol_mode_t *mode;
	efi_graphics_output_mode_info_t *info = NULL;
	efi_physical_addr_t fb_base;
	efi_status_t status;
	efi_handle_t h;
	int i;

	first_gop = NULL;
	gop = NULL;

	for_each_efi_handle(h, handles, size, i) {
		efi_guid_t conout_proto = EFI_CONSOLE_OUT_DEVICE_GUID;
@@ -134,12 +132,25 @@ static efi_status_t setup_gop(struct screen_info *si, efi_guid_t *proto,
		}
	}

	return first_gop;
}

static efi_status_t setup_gop(struct screen_info *si, efi_guid_t *proto,
			      unsigned long size, void **handles)
{
	efi_graphics_output_protocol_t *gop;
	efi_graphics_output_protocol_mode_t *mode;
	efi_graphics_output_mode_info_t *info = NULL;
	efi_physical_addr_t fb_base;

	gop = find_gop(proto, size, handles);

	/* Did we find any GOPs? */
	if (!first_gop)
	if (!gop)
		return EFI_NOT_FOUND;

	/* EFI framebuffer */
	mode = efi_table_attr(first_gop, mode);
	mode = efi_table_attr(gop, mode);
	info = efi_table_attr(mode, info);

	si->orig_video_isVGA = VIDEO_TYPE_EFI;