mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 23:13:01 +02:00
x86/efistub: Drop long obsolete UGA support
UGA is the EFI graphical output protocol that preceded GOP, and has been long obsolete. Drop support for it from the x86 implementation of the EFI stub - other architectures never bothered to implement it (save for ia64) Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
parent
ec4696925d
commit
144d52dd8f
|
@ -54,13 +54,11 @@
|
|||
#include <asm/uv/uv.h>
|
||||
|
||||
static unsigned long efi_systab_phys __initdata;
|
||||
static unsigned long uga_phys = EFI_INVALID_TABLE_ADDR;
|
||||
static unsigned long efi_runtime, efi_nr_tables;
|
||||
|
||||
unsigned long efi_fw_vendor, efi_config_table;
|
||||
|
||||
static const efi_config_table_type_t arch_tables[] __initconst = {
|
||||
{UGA_IO_PROTOCOL_GUID, &uga_phys, "UGA" },
|
||||
#ifdef CONFIG_X86_UV
|
||||
{UV_SYSTEM_TABLE_GUID, &uv_systab_phys, "UVsystab" },
|
||||
#endif
|
||||
|
@ -72,7 +70,6 @@ static const unsigned long * const efi_tables[] = {
|
|||
&efi.acpi20,
|
||||
&efi.smbios,
|
||||
&efi.smbios3,
|
||||
&uga_phys,
|
||||
#ifdef CONFIG_X86_UV
|
||||
&uv_systab_phys,
|
||||
#endif
|
||||
|
@ -891,13 +888,6 @@ bool efi_is_table_address(unsigned long phys_addr)
|
|||
return false;
|
||||
}
|
||||
|
||||
char *efi_systab_show_arch(char *str)
|
||||
{
|
||||
if (uga_phys != EFI_INVALID_TABLE_ADDR)
|
||||
str += sprintf(str, "UGA=0x%lx\n", uga_phys);
|
||||
return str;
|
||||
}
|
||||
|
||||
#define EFI_FIELD(var) efi_ ## var
|
||||
|
||||
#define EFI_ATTR_SHOW(name) \
|
||||
|
|
|
@ -148,9 +148,6 @@ static ssize_t systab_show(struct kobject *kobj,
|
|||
if (efi.smbios != EFI_INVALID_TABLE_ADDR)
|
||||
str += sprintf(str, "SMBIOS=0x%lx\n", efi.smbios);
|
||||
|
||||
if (IS_ENABLED(CONFIG_X86))
|
||||
str = efi_systab_show_arch(str);
|
||||
|
||||
return str - buf;
|
||||
}
|
||||
|
||||
|
|
|
@ -405,96 +405,13 @@ static void setup_quirks(struct boot_params *boot_params)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* See if we have Universal Graphics Adapter (UGA) protocol
|
||||
*/
|
||||
static efi_status_t
|
||||
setup_uga(struct screen_info *si, efi_guid_t *uga_proto, unsigned long size)
|
||||
{
|
||||
efi_status_t status;
|
||||
u32 width, height;
|
||||
void **uga_handle = NULL;
|
||||
efi_uga_draw_protocol_t *uga = NULL, *first_uga;
|
||||
efi_handle_t handle;
|
||||
int i;
|
||||
|
||||
status = efi_bs_call(allocate_pool, EFI_LOADER_DATA, size,
|
||||
(void **)&uga_handle);
|
||||
if (status != EFI_SUCCESS)
|
||||
return status;
|
||||
|
||||
status = efi_bs_call(locate_handle, EFI_LOCATE_BY_PROTOCOL,
|
||||
uga_proto, NULL, &size, uga_handle);
|
||||
if (status != EFI_SUCCESS)
|
||||
goto free_handle;
|
||||
|
||||
height = 0;
|
||||
width = 0;
|
||||
|
||||
first_uga = NULL;
|
||||
for_each_efi_handle(handle, uga_handle, size, i) {
|
||||
efi_guid_t pciio_proto = EFI_PCI_IO_PROTOCOL_GUID;
|
||||
u32 w, h, depth, refresh;
|
||||
void *pciio;
|
||||
|
||||
status = efi_bs_call(handle_protocol, handle, uga_proto,
|
||||
(void **)&uga);
|
||||
if (status != EFI_SUCCESS)
|
||||
continue;
|
||||
|
||||
pciio = NULL;
|
||||
efi_bs_call(handle_protocol, handle, &pciio_proto, &pciio);
|
||||
|
||||
status = efi_call_proto(uga, get_mode, &w, &h, &depth, &refresh);
|
||||
if (status == EFI_SUCCESS && (!first_uga || pciio)) {
|
||||
width = w;
|
||||
height = h;
|
||||
|
||||
/*
|
||||
* Once we've found a UGA supporting PCIIO,
|
||||
* don't bother looking any further.
|
||||
*/
|
||||
if (pciio)
|
||||
break;
|
||||
|
||||
first_uga = uga;
|
||||
}
|
||||
}
|
||||
|
||||
if (!width && !height)
|
||||
goto free_handle;
|
||||
|
||||
/* EFI framebuffer */
|
||||
si->orig_video_isVGA = VIDEO_TYPE_EFI;
|
||||
|
||||
si->lfb_depth = 32;
|
||||
si->lfb_width = width;
|
||||
si->lfb_height = height;
|
||||
|
||||
si->red_size = 8;
|
||||
si->red_pos = 16;
|
||||
si->green_size = 8;
|
||||
si->green_pos = 8;
|
||||
si->blue_size = 8;
|
||||
si->blue_pos = 0;
|
||||
si->rsvd_size = 8;
|
||||
si->rsvd_pos = 24;
|
||||
|
||||
free_handle:
|
||||
efi_bs_call(free_pool, uga_handle);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
static void setup_graphics(struct boot_params *boot_params)
|
||||
{
|
||||
efi_guid_t graphics_proto = EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID;
|
||||
struct screen_info *si;
|
||||
efi_guid_t uga_proto = EFI_UGA_PROTOCOL_GUID;
|
||||
efi_status_t status;
|
||||
unsigned long size;
|
||||
void **gop_handle = NULL;
|
||||
void **uga_handle = NULL;
|
||||
|
||||
si = &boot_params->screen_info;
|
||||
memset(si, 0, sizeof(*si));
|
||||
|
@ -505,13 +422,6 @@ static void setup_graphics(struct boot_params *boot_params)
|
|||
if (status == EFI_BUFFER_TOO_SMALL)
|
||||
status = efi_setup_gop(si, &graphics_proto, size);
|
||||
|
||||
if (status != EFI_SUCCESS) {
|
||||
size = 0;
|
||||
status = efi_bs_call(locate_handle, EFI_LOCATE_BY_PROTOCOL,
|
||||
&uga_proto, NULL, &size, uga_handle);
|
||||
if (status == EFI_BUFFER_TOO_SMALL)
|
||||
setup_uga(si, &uga_proto, size);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -363,7 +363,6 @@ void efi_native_runtime_setup(void);
|
|||
#define ACPI_20_TABLE_GUID EFI_GUID(0x8868e871, 0xe4f1, 0x11d3, 0xbc, 0x22, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81)
|
||||
#define SMBIOS_TABLE_GUID EFI_GUID(0xeb9d2d31, 0x2d88, 0x11d3, 0x9a, 0x16, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d)
|
||||
#define SMBIOS3_TABLE_GUID EFI_GUID(0xf2fd1544, 0x9794, 0x4a2c, 0x99, 0x2e, 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94)
|
||||
#define UGA_IO_PROTOCOL_GUID EFI_GUID(0x61a4d49e, 0x6f68, 0x4f1b, 0xb9, 0x22, 0xa8, 0x6e, 0xed, 0x0b, 0x07, 0xa2)
|
||||
#define EFI_GLOBAL_VARIABLE_GUID EFI_GUID(0x8be4df61, 0x93ca, 0x11d2, 0xaa, 0x0d, 0x00, 0xe0, 0x98, 0x03, 0x2b, 0x8c)
|
||||
#define UV_SYSTEM_TABLE_GUID EFI_GUID(0x3b13a7d4, 0x633e, 0x11dd, 0x93, 0xec, 0xda, 0x25, 0x56, 0xd8, 0x95, 0x93)
|
||||
#define LINUX_EFI_CRASH_GUID EFI_GUID(0xcfc8fc79, 0xbe2e, 0x4ddc, 0x97, 0xf0, 0x9f, 0x98, 0xbf, 0xe2, 0x98, 0xa0)
|
||||
|
@ -373,7 +372,6 @@ void efi_native_runtime_setup(void);
|
|||
#define EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID EFI_GUID(0x8b843e20, 0x8132, 0x4852, 0x90, 0xcc, 0x55, 0x1a, 0x4e, 0x4a, 0x7f, 0x1c)
|
||||
#define EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL_GUID EFI_GUID(0x05c99a21, 0xc70f, 0x4ad2, 0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e)
|
||||
#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID EFI_GUID(0x9042a9de, 0x23dc, 0x4a38, 0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a)
|
||||
#define EFI_UGA_PROTOCOL_GUID EFI_GUID(0x982c298b, 0xf4fa, 0x41cb, 0xb8, 0x38, 0x77, 0xaa, 0x68, 0x8f, 0xb8, 0x39)
|
||||
#define EFI_PCI_IO_PROTOCOL_GUID EFI_GUID(0x4cf5b200, 0x68b8, 0x4ca5, 0x9e, 0xec, 0xb2, 0x3e, 0x3f, 0x50, 0x02, 0x9a)
|
||||
#define EFI_FILE_INFO_ID EFI_GUID(0x09576e92, 0x6d3f, 0x11d2, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b)
|
||||
#define EFI_SYSTEM_RESOURCE_TABLE_GUID EFI_GUID(0xb122a263, 0x3661, 0x4f68, 0x99, 0x29, 0x78, 0xf8, 0xb0, 0xd6, 0x21, 0x80)
|
||||
|
@ -1286,8 +1284,6 @@ struct linux_efi_memreserve {
|
|||
|
||||
void __init efi_arch_mem_reserve(phys_addr_t addr, u64 size);
|
||||
|
||||
char *efi_systab_show_arch(char *str);
|
||||
|
||||
/*
|
||||
* The LINUX_EFI_MOK_VARIABLE_TABLE_GUID config table can be provided
|
||||
* to the kernel by an EFI boot loader. The table contains a packed
|
||||
|
|
Loading…
Reference in New Issue
Block a user