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 | ||
