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> Reviewed-on: http://review.coreboot.org/3347 Tested-by: build bot (Jenkins) Reviewed-by: Dave Frodin <dave.frodin@se-eng.com> Reviewed-by: Marc Jones <marc.jones@se-eng.com> Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
parent
d189229b45
commit
0390112407
|
@ -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) */
|
||||
|
||||
|
|
Loading…
Reference in New Issue