diff options
Diffstat (limited to 'drivers/firmware/efi/sysfb_efi.c')
| -rw-r--r-- | drivers/firmware/efi/sysfb_efi.c | 13 | 
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/firmware/efi/sysfb_efi.c b/drivers/firmware/efi/sysfb_efi.c index f06fdacc9bc8..456d0e5eaf78 100644 --- a/drivers/firmware/efi/sysfb_efi.c +++ b/drivers/firmware/efi/sysfb_efi.c @@ -272,6 +272,14 @@ static const struct dmi_system_id efifb_dmi_swap_width_height[] __initconst = {  					"IdeaPad Duet 3 10IGL5"),  		},  	}, +	{ +		/* Lenovo Yoga Book X91F / X91L */ +		.matches = { +			DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"), +			/* Non exact match to match F + L versions */ +			DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X91"), +		}, +	},  	{},  }; @@ -341,7 +349,7 @@ static const struct fwnode_operations efifb_fwnode_ops = {  #ifdef CONFIG_EFI  static struct fwnode_handle efifb_fwnode; -__init void sysfb_apply_efi_quirks(struct platform_device *pd) +__init void sysfb_apply_efi_quirks(void)  {  	if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI ||  	    !(screen_info.capabilities & VIDEO_CAPABILITY_SKIP_QUIRKS)) @@ -355,7 +363,10 @@ __init void sysfb_apply_efi_quirks(struct platform_device *pd)  		screen_info.lfb_height = temp;  		screen_info.lfb_linelength = 4 * screen_info.lfb_width;  	} +} +__init void sysfb_set_efifb_fwnode(struct platform_device *pd) +{  	if (screen_info.orig_video_isVGA == VIDEO_TYPE_EFI && IS_ENABLED(CONFIG_PCI)) {  		fwnode_init(&efifb_fwnode, &efifb_fwnode_ops);  		pd->dev.fwnode = &efifb_fwnode;  |