]> git.sur5r.net Git - u-boot/commitdiff
efi_loader: efi_gop: use efi_add_protocol
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Sun, 26 Nov 2017 13:05:14 +0000 (14:05 +0100)
committerAlexander Graf <agraf@suse.de>
Fri, 1 Dec 2017 12:36:49 +0000 (13:36 +0100)
Use efi_add_protocol to add protocol.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
lib/efi_loader/efi_gop.c

index 7370eeee37649b3f40b0fb1b7bc00f796619ed14..7b74d6ef330c2942109ca3246c22050a3d9f045f 100644 (file)
@@ -132,6 +132,7 @@ int efi_gop_register(void)
        u32 bpix, col, row;
        u64 fb_base, fb_size;
        void *fb;
+       efi_status_t ret;
 
 #ifdef CONFIG_DM_VIDEO
        struct udevice *vdev;
@@ -178,10 +179,17 @@ int efi_gop_register(void)
                return 1;
        }
 
+       /* Hook up to the device list */
+       list_add_tail(&gopobj->parent.link, &efi_obj_list);
+
        /* Fill in object data */
-       gopobj->parent.protocols[0].guid = &efi_gop_guid;
-       gopobj->parent.protocols[0].protocol_interface = &gopobj->ops;
        gopobj->parent.handle = &gopobj->ops;
+       ret = efi_add_protocol(gopobj->parent.handle, &efi_gop_guid,
+                              &gopobj->ops);
+       if (ret != EFI_SUCCESS) {
+               printf("ERROR: Out of memory\n");
+               return 1;
+       }
        gopobj->ops.query_mode = gop_query_mode;
        gopobj->ops.set_mode = gop_set_mode;
        gopobj->ops.blt = gop_blt;
@@ -210,8 +218,5 @@ int efi_gop_register(void)
        gopobj->bpix = bpix;
        gopobj->fb = fb;
 
-       /* Hook up to the device list */
-       list_add_tail(&gopobj->parent.link, &efi_obj_list);
-
        return 0;
 }