diff options
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/serio/i8042-x86ia64io.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index d6cc77a53c7e..5f306f79da0c 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h | |||
@@ -921,6 +921,7 @@ static int __init i8042_platform_init(void) | |||
921 | int retval; | 921 | int retval; |
922 | 922 | ||
923 | #ifdef CONFIG_X86 | 923 | #ifdef CONFIG_X86 |
924 | u8 a20_on = 0xdf; | ||
924 | /* Just return if pre-detection shows no i8042 controller exist */ | 925 | /* Just return if pre-detection shows no i8042 controller exist */ |
925 | if (!x86_platform.i8042_detect()) | 926 | if (!x86_platform.i8042_detect()) |
926 | return -ENODEV; | 927 | return -ENODEV; |
@@ -960,6 +961,14 @@ static int __init i8042_platform_init(void) | |||
960 | 961 | ||
961 | if (dmi_check_system(i8042_dmi_dritek_table)) | 962 | if (dmi_check_system(i8042_dmi_dritek_table)) |
962 | i8042_dritek = true; | 963 | i8042_dritek = true; |
964 | |||
965 | /* | ||
966 | * A20 was already enabled during early kernel init. But some buggy | ||
967 | * BIOSes (in MSI Laptops) require A20 to be enabled using 8042 to | ||
968 | * resume from S3. So we do it here and hope that nothing breaks. | ||
969 | */ | ||
970 | i8042_command(&a20_on, 0x10d1); | ||
971 | i8042_command(NULL, 0x00ff); /* Null command for SMM firmware */ | ||
963 | #endif /* CONFIG_X86 */ | 972 | #endif /* CONFIG_X86 */ |
964 | 973 | ||
965 | return retval; | 974 | return retval; |