mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 23:22:31 +02:00
EFI fixes for v7.1 #2
- Permit ACPI PRM runtime firmware calls when acpi_init() runs - Add another Lenovo Ideapad framebuffer quirk - Cosmetic tweak -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQQQm/3uucuRGn1Dmh0wbglWLn0tXAUCag8IUwAKCRAwbglWLn0t XPsPAQDBYVNBZTQ+6X5m/G6VbMqZgm2p9TXcqN05UbkCIu6SFQD/cedFAI+MNSbM 7fog1OIWWr2VLiv425+79QRMcqNQNAg= =sZPl -----END PGP SIGNATURE----- Merge tag 'efi-fixes-for-v7.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi Pull EFI fixes from Ard Biesheuvel: - Permit ACPI PRM runtime firmware calls when acpi_init() runs - Add another Lenovo Ideapad framebuffer quirk - Cosmetic tweak * tag 'efi-fixes-for-v7.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi: efi: sysfb_efi: Extend quirk to cover IdeaPad Duet 3 10IGL5-LTE efi: efi.h: Remove extra semicolon efi: Allocate runtime workqueue before ACPI init
This commit is contained in:
commit
758c807bb9
|
|
@ -402,21 +402,11 @@ static void __init efi_debugfs_init(void)
|
|||
static inline void efi_debugfs_init(void) {}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* We register the efi subsystem with the firmware subsystem and the
|
||||
* efivars subsystem with the efi subsystem, if the system was booted with
|
||||
* EFI.
|
||||
*/
|
||||
static int __init efisubsys_init(void)
|
||||
static int __init efipostcore_init(void)
|
||||
{
|
||||
int error;
|
||||
|
||||
if (!efi_enabled(EFI_RUNTIME_SERVICES))
|
||||
efi.runtime_supported_mask = 0;
|
||||
|
||||
if (!efi_enabled(EFI_BOOT))
|
||||
return 0;
|
||||
|
||||
if (efi.runtime_supported_mask) {
|
||||
/*
|
||||
* Since we process only one efi_runtime_service() at a time, an
|
||||
|
|
@ -428,9 +418,23 @@ static int __init efisubsys_init(void)
|
|||
pr_err("Creating efi_rts_wq failed, EFI runtime services disabled.\n");
|
||||
clear_bit(EFI_RUNTIME_SERVICES, &efi.flags);
|
||||
efi.runtime_supported_mask = 0;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
postcore_initcall(efipostcore_init);
|
||||
|
||||
/*
|
||||
* We register the efi subsystem with the firmware subsystem and the
|
||||
* efivars subsystem with the efi subsystem, if the system was booted with
|
||||
* EFI.
|
||||
*/
|
||||
static int __init efisubsys_init(void)
|
||||
{
|
||||
int error;
|
||||
|
||||
if (!efi_enabled(EFI_BOOT))
|
||||
return 0;
|
||||
|
||||
if (efi_rt_services_supported(EFI_RT_SUPPORTED_TIME_SERVICES))
|
||||
platform_device_register_simple("rtc-efi", 0, NULL, 0);
|
||||
|
|
|
|||
|
|
@ -311,11 +311,14 @@ static const struct dmi_system_id efifb_dmi_swap_width_height[] __initconst = {
|
|||
.callback = efifb_swap_width_height,
|
||||
},
|
||||
{
|
||||
/* Lenovo IdeaPad Duet 3 10IGL5 with 1200x1920 portrait screen */
|
||||
/*
|
||||
* Lenovo IdeaPad Duet 3 10IGL5 and 10IGL5-LTE with
|
||||
* 1200x1920 portrait screen
|
||||
*/
|
||||
.matches = {
|
||||
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"),
|
||||
DMI_EXACT_MATCH(DMI_PRODUCT_VERSION,
|
||||
"IdeaPad Duet 3 10IGL5"),
|
||||
/* Non exact match to also match the LTE version */
|
||||
DMI_MATCH(DMI_PRODUCT_VERSION, "IdeaPad Duet 3 10IGL5"),
|
||||
},
|
||||
.callback = efifb_swap_width_height,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ typedef void *efi_handle_t;
|
|||
|
||||
/*
|
||||
* The UEFI spec and EDK2 reference implementation both define EFI_GUID as
|
||||
* struct { u32 a; u16; b; u16 c; u8 d[8]; }; and so the implied alignment
|
||||
* struct { u32 a; u16 b; u16 c; u8 d[8]; }; and so the implied alignment
|
||||
* is 32 bits not 8 bits like our guid_t. In some cases (i.e., on 32-bit ARM),
|
||||
* this means that firmware services invoked by the kernel may assume that
|
||||
* efi_guid_t* arguments are 32-bit aligned, and use memory accessors that
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user