Enable wake handshake for GNSS

Also disables hack for the lack of wake handshake.

Bug: 162433421
Test: Run GNSS world
Test: CHPP loopback test pass
Change-Id: Ie23bbcb6c91f809777b6e2c5e1b44fd823831a8e
diff --git a/chpp/platform/aoc/chpp_init.cc b/chpp/platform/aoc/chpp_init.cc
index 857c0f6..ada71ae 100644
--- a/chpp/platform/aoc/chpp_init.cc
+++ b/chpp/platform/aoc/chpp_init.cc
@@ -124,7 +124,7 @@
       Environment::Instance()->UART(UART_MAP::UART_MAP_GNSS),
       chpp::UartLinkManager::kGnssWakeOutGpioPinNumber,
       chpp::UartLinkManager::kGnssWakeInGpiNumber,
-      PREVENT_MONITOR_MODE_MASK_UART_1);
+      PREVENT_MONITOR_MODE_MASK_UART_1, true /* wakeHandshake */);
 
   gManagerList.emplace_back(
       &gChppTransportStateList[ChppLinkType::CHPP_LINK_TYPE_WWAN],
diff --git a/chpp/platform/aoc/chpp_uart_link_manager.cc b/chpp/platform/aoc/chpp_uart_link_manager.cc
index 229b3b5..dd76b3c 100644
--- a/chpp/platform/aoc/chpp_uart_link_manager.cc
+++ b/chpp/platform/aoc/chpp_uart_link_manager.cc
@@ -94,8 +94,6 @@
       mWakeHandshakeEnabled(wakeHandshakeEnable) {
   mWakeOutGpio.SetDirection(GPIO::DIRECTION::OUTPUT);
   mWakeOutGpio.Clear();
-
-  mGnssLinkHack = (wakeOutPinNumber == kGnssWakeOutGpioPinNumber);
 }
 
 void UartLinkManager::init(TaskHandle_t handle) {
@@ -161,8 +159,7 @@
   // transactions occur quickly one after another.
   void *timerHandle;
   mCoreMonitorRefCount.fetch_increment();
-  uint64_t suspendTimeoutNs =
-      mGnssLinkHack ? 100 * kSuspendTimeoutNs : kSuspendTimeoutNs;
+  uint64_t suspendTimeoutNs = kSuspendTimeoutNs;
   if (!setTimer(suspendTimeoutNs, callback, this, &timerHandle)) {
     CHPP_LOGE("Failed to set core monitor timer");
     // Enter critical section to avoid race conditions with timer interrupt.
@@ -260,9 +257,7 @@
     }
 
     completeTransaction();
-    if (!mGnssLinkHack) {
-      mWakeOutGpio.Clear();
-    }
+    mWakeOutGpio.Clear();
   }
 
   // Re-enable the interrupt to handle transaction requests.
@@ -297,9 +292,6 @@
   taskENTER_CRITICAL();
   if (mCoreMonitorRefCount.load() == 0 && !mTransactionPending.load()) {
     CoreMonitor::Instance()->Allow(mCoreMonitorMask);
-    if (mGnssLinkHack) {
-      mWakeOutGpio.Clear();
-    }
   }
   taskEXIT_CRITICAL();
 }
diff --git a/chpp/platform/aoc/include/chpp/platform/chpp_uart_link_manager.h b/chpp/platform/aoc/include/chpp/platform/chpp_uart_link_manager.h
index 6855bfa..8e10cf3 100644
--- a/chpp/platform/aoc/include/chpp/platform/chpp_uart_link_manager.h
+++ b/chpp/platform/aoc/include/chpp/platform/chpp_uart_link_manager.h
@@ -239,10 +239,6 @@
   //! early.
   chre::AtomicUint32 mCoreMonitorRefCount{0};
 
-  //! A temporary hack to make GNSS link work.
-  //! TODO(arthuri): Remove this once GNSS link works by default.
-  bool mGnssLinkHack = false;
-
   /**
    * @return if a TX packet is pending transmission.
    */