Hi On Fri, Mar 18, 2016 at 5:47 PM, Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote: > This adds code to the ARM and arm64 EFI init routines to expose a platform > device of type 'efi-framebuffer' if struct screen_info has been populated > appropriately from the GOP protocol by the stub. Since the framebuffer may > potentially be located in system RAM, make sure that the region is reserved > and marked MEMBLOCK_NOMAP. > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> > --- > drivers/firmware/efi/arm-init.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/firmware/efi/arm-init.c b/drivers/firmware/efi/arm-init.c > index acd44de30504..f5f13b871d42 100644 > --- a/drivers/firmware/efi/arm-init.c > +++ b/drivers/firmware/efi/arm-init.c > @@ -19,6 +19,7 @@ > #include <linux/mm_types.h> > #include <linux/of.h> > #include <linux/of_fdt.h> > +#include <linux/platform_device.h> > #include <linux/screen_info.h> > > #include <asm/efi.h> > @@ -76,6 +77,10 @@ static void __init init_screen_info(void) > screen_info = *si; > early_memunmap(si, sizeof(*si)); > } > + > + if (screen_info.orig_video_isVGA == VIDEO_TYPE_EFI && > + memblock_is_map_memory(screen_info.lfb_base)) > + memblock_mark_nomap(screen_info.lfb_base, screen_info.lfb_size); > } > > static int __init uefi_init(void) > @@ -235,3 +240,16 @@ void __init efi_init(void) > > init_screen_info(); > } > + > +static int __init register_gop_device(void) > +{ > + void *pd; > + > + if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI) > + return 0; > + > + /* the efifb driver accesses screen_info directly, no need to pass it */ > + pd = platform_device_register_simple("efi-framebuffer", 0, NULL, 0); I'd really appreciate if you pass "screen_info" as data, just like x86 does. Sure, we still use the global screen_info variable from efifb, but we should try to reduce the number of global variables and rather make drivers use the platform-data of the platform device. Thanks David -- To unsubscribe from this list: send the line "unsubscribe linux-efi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html