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.
*/