[coreboot-gerrit] New patch to review for coreboot: 4857106 AMD Parmer: fix issue 'S3 fails to suspend after wake up from USB keyboard'

Siyuan Wang (wangsiyuanbuaa@gmail.com) gerrit at coreboot.org
Fri May 31 14:17:04 CEST 2013


Siyuan Wang (wangsiyuanbuaa at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3347

-gerrit

commit 48571067a93f5acbdafcb8e75bf7287a10f6fcf7
Author: Siyuan Wang <wangsiyuanbuaa at gmail.com>
Date:   Fri May 31 19:36:30 2013 +0800

    AMD Parmer: fix issue 'S3 fails to suspend after wake up from USB keyboard'
    
    This issue can be reproduced in Linux by the following steps:
    1) use pm-suspend to suspend.
    2) use USB keyboard to wake up.
    3) use pm-suspend to suspend. FAIL To SUSPEND.
    
    The cause of this issue is:
    USB devices use bit 11(0x0b) of GP0_STS represents S3 wake up event,
    but this bit is not clear after wake up. So OS thinks there is a
    wake up signal and wake up immediately.
    
    In this patch, I add AcpiGpe0Blk using MMIO access and write 1
    on bit 11. I have tested on Parmer.
    
    Change-Id: Iec3078bf29de99683e7cd3ef4e178fbeb4dc09c1
    Signed-off-by: Siyuan Wang <SiYuan.Wang at amd.com>
    Signed-off-by: Siyuan Wang <wangsiyuanbuaa at gmail.com>
---
 src/mainboard/amd/parmer/dsdt.asl | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/mainboard/amd/parmer/dsdt.asl b/src/mainboard/amd/parmer/dsdt.asl
index faf3ad7..3e408c8 100644
--- a/src/mainboard/amd/parmer/dsdt.asl
+++ b/src/mainboard/amd/parmer/dsdt.asl
@@ -202,6 +202,14 @@ DefinitionBlock (
 	/* PM1 Event Block
 	* First word is PM1_Status, Second word is PM1_Enable
 	*/
+
+	/* AcpiGpe0Blk */
+	OperationRegion(GP0B, SystemMemory, 0xfed80814, 0x04)
+		Field(GP0B, ByteAcc, NoLock, Preserve) {
+		, 11,
+		USBS, 1,
+	}
+
 	Scope(\_SB) {
 		/* PCIe Configuration Space for CONFIG_MMCONF_BUS_NUMBER busses */
 		OperationRegion(PCFG, SystemMemory, PCBA, PCLN)
@@ -844,6 +852,7 @@ DefinitionBlock (
 		*	Store(Arg0, Index(WKST,1))
 		* }
 		*/
+		Store(1, USBS)
 		Return(WKST)
 	} /* End Method(\_WAK) */
 



More information about the coreboot-gerrit mailing list