summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorraywu <raywu@aaeon.com>2018-07-13 11:46:20 +0800
committerraywu <raywu@aaeon.com>2018-07-13 11:46:20 +0800
commit7222ac35cdb155b7881a64ff64f03e2edc17add8 (patch)
tree1cb6f0e6bd4440672d26709a6f6a59dee6b4da00
parent8bc1f035af82a00ae00a671c552b2a3ad72d293a (diff)
downloadzprj-7222ac35cdb155b7881a64ff64f03e2edc17add8.tar.xz
Support S3/S4 PS2 Keyboard/Mouse Wake
-rw-r--r--Chipset/SB/SBCspLib.h1
-rw-r--r--Chipset/SB/SBGeneric.c5
-rw-r--r--Chipset/SB/SleepSmi.c3
3 files changed, 9 insertions, 0 deletions
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);
+}
//<AMI_PHDR_START>
//----------------------------------------------------------------------------
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;
}