From 7222ac35cdb155b7881a64ff64f03e2edc17add8 Mon Sep 17 00:00:00 2001 From: raywu Date: Fri, 13 Jul 2018 11:46:20 +0800 Subject: Support S3/S4 PS2 Keyboard/Mouse Wake --- Chipset/SB/SBCspLib.h | 1 + Chipset/SB/SBGeneric.c | 5 +++++ Chipset/SB/SleepSmi.c | 3 +++ 3 files changed, 9 insertions(+) diff --git a/Chipset/SB/SBCspLib.h b/Chipset/SB/SBCspLib.h index e16cf63..b037e88 100644 --- a/Chipset/SB/SBCspLib.h +++ b/Chipset/SB/SBCspLib.h @@ -325,6 +325,7 @@ VOID SBLib_Shutdown ( VOID ); VOID GbES0ToS1Workaround(VOID); VOID GbES0ToSxWorkaround(VOID); VOID Enable_GbE_PME(VOID); +VOID EnablePs2KeyboardMousePme(VOID); VOID ClearMeWakeSts(VOID); VOID EHCIAdditionalRequirement(VOID); diff --git a/Chipset/SB/SBGeneric.c b/Chipset/SB/SBGeneric.c index efdedd4..097ce6f 100644 --- a/Chipset/SB/SBGeneric.c +++ b/Chipset/SB/SBGeneric.c @@ -1341,6 +1341,11 @@ VOID Enable_GbE_PME(VOID) } } +VOID EnablePs2KeyboardMousePme(VOID) +{ + WRITE_IO16_PM(ACPI_IOREG_GPE0_STS, BIT11); + SET_IO16_PM(ACPI_IOREG_GPE0_EN, BIT11); +} // //---------------------------------------------------------------------------- diff --git a/Chipset/SB/SleepSmi.c b/Chipset/SB/SleepSmi.c index 20408a1..6f17597 100644 --- a/Chipset/SB/SleepSmi.c +++ b/Chipset/SB/SleepSmi.c @@ -172,6 +172,7 @@ VOID S1SleepSmiOccurred ( #endif { // Porting required if any workaround is needed. + EnablePs2KeyboardMousePme(); return SMM_CHILD_DISPATCH_SUCCESS; } @@ -232,6 +233,7 @@ VOID S3SleepSmiOccurred ( } ProgramAfterG3Bit(); + EnablePs2KeyboardMousePme(); return SMM_CHILD_DISPATCH_SUCCESS; } @@ -268,6 +270,7 @@ VOID S4SleepSmiOccurred ( ClearMeWakeSts(); ProgramAfterG3Bit(); + EnablePs2KeyboardMousePme(); return SMM_CHILD_DISPATCH_SUCCESS; } -- cgit v1.2.3