summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/firmware/efi/sysfb_efi.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/firmware/efi/sysfb_efi.c b/drivers/firmware/efi/sysfb_efi.c
index 1d8b6966731c..60495eb3441c 100644
--- a/drivers/firmware/efi/sysfb_efi.c
+++ b/drivers/firmware/efi/sysfb_efi.c
@@ -357,8 +357,11 @@ __init void sysfb_apply_efi_quirks(void)
if (screen_info.orig_video_isVGA == VIDEO_TYPE_EFI &&
dmi_check_system(efifb_dmi_swap_width_height)) {
+ u32 bpp = __screen_info_lfb_bits_per_pixel(&screen_info);
+
swap(screen_info.lfb_width, screen_info.lfb_height);
- screen_info.lfb_linelength = 4 * screen_info.lfb_width;
+ screen_info.lfb_linelength = bpp * screen_info.lfb_width /
+ BITS_PER_BYTE;
}
}