efi/gop: Factor out locating the gop into a function
authorArvind Sankar <nivedita@alum.mit.edu>
Fri, 20 Mar 2020 02:00:18 +0000 (22:00 -0400)
committerArd Biesheuvel <ardb@kernel.org>
Thu, 23 Apr 2020 18:15:06 +0000 (20:15 +0200)
Move the loop to find a gop into its own function.

Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
Link: https://lore.kernel.org/r/20200320020028.1936003-5-nivedita@alum.mit.edu
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/libstub/gop.c

index d692b8c65813a31740bb557fddc9c314d9dcc860..92abcf55884593462bdb50eba14222d35a523d85 100644 (file)
@@ -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;