Thread (10 messages) 10 messages, 3 authors, 2012-12-11

Re: [PATCH v3] Enable A20 using KBC for some MSI laptops to fix S3 resume

From: "H. Peter Anvin" <hpa@zytor.com>
Date: 2012-12-11 20:37:15
Also in: lkml

On 12/11/2012 12:29 PM, Ondrej Zary wrote:
Something like this? (It works.)
Something like that.  We need to make sure we send the proper sequence,
though, or it might break some SMM firmware...
quoted hunk ↗ jump to hunk
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
index d6cc77a..0807ac7 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)
 	int retval;
 
 #ifdef CONFIG_X86
+	u8 a20_on = 0xdf;
 	/* Just return if pre-detection shows no i8042 controller exist */
 	if (!x86_platform.i8042_detect())
 		return -ENODEV;
@@ -960,6 +961,13 @@ static int __init i8042_platform_init(void)
 
 	if (dmi_check_system(i8042_dmi_dritek_table))
 		i8042_dritek = true;
+
+	/*
+	 * A20 was already enabled during early kernel init. But some buggy
+	 * BIOSes (in MSI Laptops) require A20 to be enabled using 8042 to
+	 * resume from S3. So we do it here and hope that nothing breaks.
+	 */
+	i8042_command(&a20_on, 0x10d1);
 #endif /* CONFIG_X86 */
 
 	return retval;
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help