efi_loader: gop: Don't expose fb address
authorAlexander Graf <agraf@suse.de>
Wed, 18 May 2016 00:04:24 +0000 (02:04 +0200)
committerTom Rini <trini@konsulko.com>
Fri, 27 May 2016 19:39:57 +0000 (15:39 -0400)
Recently Linux is gaining support for efifb on AArch64 and that support actually
tries to make use of the frame buffer address we expose to it via gop.

While this wouldn't be bad in theory, in practice it means a few bad things

  1) We expose 16bit frame buffers as 32bit today
  2) Linux can't deal with overlapping non-PCI regions between efifb and
     a different frame buffer driver

For now, let's just disable exposure of the frame buffer address. Most OSs that
get booted will have a native driver for the GPU anyway.

Signed-off-by: Alexander Graf <agraf@suse.de>
[trini: Remove line_len entirely]
Signed-off-by: Tom Rini <trini@konsulko.com>
lib/efi_loader/efi_gop.c

index bdd62bc..dc6e261 100644 (file)
@@ -111,7 +111,6 @@ static efi_status_t EFIAPI gop_blt(struct efi_gop *this, void *buffer,
 int efi_gop_register(void)
 {
        struct efi_gop_obj *gopobj;
-       int line_len;
 
        switch (panel_info.vl_bpix) {
        case LCD_COLOR32:
@@ -136,8 +135,6 @@ int efi_gop_register(void)
        gopobj->mode.max_mode = 1;
        gopobj->mode.info = &gopobj->info;
        gopobj->mode.info_size = sizeof(gopobj->info);
-       gopobj->mode.fb_base = gd->fb_base;
-       gopobj->mode.fb_size = lcd_get_size(&line_len);
 
        gopobj->info.version = 0;
        gopobj->info.width = panel_info.vl_col;