]> git.proxmox.com Git - mirror_edk2.git/blobdiff - PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtcEntry.c
PcAtChipsetPkg/Rtc: Fix a UEFI Win7 boot hang issue
[mirror_edk2.git] / PcAtChipsetPkg / PcatRealTimeClockRuntimeDxe / PcRtcEntry.c
index 9cf3988705503dfe9188dd932ee581f8caa7c4ec..6f2a987f22043715df96b359f948c89ec7907047 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Provides Set/Get time operations.\r
 \r
-Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
 This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -14,11 +14,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 #include "PcRtc.h"\r
 \r
-PC_RTC_MODULE_GLOBALS  mModuleGlobal;\r
+PC_RTC_MODULE_GLOBALS  mModuleGlobal = { 0 };\r
 \r
 EFI_HANDLE             mHandle = NULL;\r
 \r
-\r
 /**\r
   Returns the current time and date information, and the time-keeping capabilities\r
   of the hardware platform.\r
@@ -133,11 +132,32 @@ InitializePcRtc (
   )\r
 {\r
   EFI_STATUS  Status;\r
+  EFI_EVENT   Event;\r
 \r
   EfiInitializeLock (&mModuleGlobal.RtcLock, TPL_CALLBACK);\r
 \r
   Status = PcRtcInit (&mModuleGlobal);\r
   ASSERT_EFI_ERROR (Status);\r
+  \r
+  Status = gBS->CreateEventEx (\r
+                  EVT_NOTIFY_SIGNAL,\r
+                  TPL_CALLBACK,\r
+                  PcRtcAcpiTableChangeCallback,\r
+                  NULL,\r
+                  &gEfiAcpi10TableGuid,\r
+                  &Event\r
+                  );\r
+  ASSERT_EFI_ERROR (Status);\r
+  \r
+  Status = gBS->CreateEventEx (\r
+                  EVT_NOTIFY_SIGNAL,\r
+                  TPL_CALLBACK,\r
+                  PcRtcAcpiTableChangeCallback,\r
+                  NULL,\r
+                  &gEfiAcpiTableGuid,\r
+                  &Event\r
+                  );\r
+  ASSERT_EFI_ERROR (Status);\r
 \r
   gRT->GetTime       = PcRtcEfiGetTime;\r
   gRT->SetTime       = PcRtcEfiSetTime;\r