Siyuan Wang (wangsiyuanbuaa@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@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@amd.com Signed-off-by: Siyuan Wang wangsiyuanbuaa@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) */