diff options
-rw-r--r-- | arch/x86/boot/compressed/eboot.c | 2 | ||||
-rw-r--r-- | drivers/video/efifb.c | 4 | ||||
-rw-r--r-- | include/linux/screen_info.h | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c index d5e4044505d3..bbd83b9cb4da 100644 --- a/arch/x86/boot/compressed/eboot.c +++ b/arch/x86/boot/compressed/eboot.c | |||
@@ -379,6 +379,8 @@ static efi_status_t setup_gop(struct screen_info *si, efi_guid_t *proto, | |||
379 | si->rsvd_pos = 0; | 379 | si->rsvd_pos = 0; |
380 | } | 380 | } |
381 | 381 | ||
382 | si->capabilities |= VIDEO_CAPABILITY_SKIP_QUIRKS; | ||
383 | |||
382 | free_handle: | 384 | free_handle: |
383 | efi_call_phys1(sys_table->boottime->free_pool, gop_handle); | 385 | efi_call_phys1(sys_table->boottime->free_pool, gop_handle); |
384 | return status; | 386 | return status; |
diff --git a/drivers/video/efifb.c b/drivers/video/efifb.c index b4a632ada401..932abaa58a89 100644 --- a/drivers/video/efifb.c +++ b/drivers/video/efifb.c | |||
@@ -553,7 +553,9 @@ static int __init efifb_init(void) | |||
553 | int ret; | 553 | int ret; |
554 | char *option = NULL; | 554 | char *option = NULL; |
555 | 555 | ||
556 | dmi_check_system(dmi_system_table); | 556 | if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI || |
557 | !(screen_info.capabilities & VIDEO_CAPABILITY_SKIP_QUIRKS)) | ||
558 | dmi_check_system(dmi_system_table); | ||
557 | 559 | ||
558 | if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI) | 560 | if (screen_info.orig_video_isVGA != VIDEO_TYPE_EFI) |
559 | return -ENODEV; | 561 | return -ENODEV; |
diff --git a/include/linux/screen_info.h b/include/linux/screen_info.h index 899fbb487c94..fb3c5a8fef3d 100644 --- a/include/linux/screen_info.h +++ b/include/linux/screen_info.h | |||
@@ -68,6 +68,8 @@ struct screen_info { | |||
68 | 68 | ||
69 | #define VIDEO_FLAGS_NOCURSOR (1 << 0) /* The video mode has no cursor set */ | 69 | #define VIDEO_FLAGS_NOCURSOR (1 << 0) /* The video mode has no cursor set */ |
70 | 70 | ||
71 | #define VIDEO_CAPABILITY_SKIP_QUIRKS (1 << 0) | ||
72 | |||
71 | #ifdef __KERNEL__ | 73 | #ifdef __KERNEL__ |
72 | extern struct screen_info screen_info; | 74 | extern struct screen_info screen_info; |
73 | 75 | ||