Skip 6E180015072901 at HAL.
This is required to FIX a CTS Test failure.
When CTS Test is run, SR2XX FW seems to treat this
as an invalid/unsupported packet and it returns a
failure NTF to upper layer.
This NTF has to be masked by Hal and must not be
sent to upper layers.
Bug: 381330041
Test: atest android.uwb.cts.UwbManagerTest#testSendVendorUciMessageWithMessageType android.uwb.cts.UwbManagerTest#testSendVendorUciMessageVendorGid
Change-Id: I5d27789b7c9cf4c0c46706844ff99be6d1737a74
diff --git a/halimpl/hal/phNxpUciHal.cc b/halimpl/hal/phNxpUciHal.cc
index af5b78e..376432f 100644
--- a/halimpl/hal/phNxpUciHal.cc
+++ b/halimpl/hal/phNxpUciHal.cc
@@ -137,6 +137,36 @@
rx_handlers.clear();
}
+
+bool nxp_properitory_ntf_skip_cb(size_t data_len, const uint8_t *p_data) {
+ bool is_handled = false;
+ const uint8_t mt = (p_data[0] & UCI_MT_MASK) >> UCI_MT_SHIFT;
+ const uint8_t gid = p_data[0] & UCI_GID_MASK;
+ const uint8_t oid = p_data[1] & UCI_OID_MASK;
+ if (mt == UCI_MT_NTF) { // must be true.
+ if (gid == UCI_GID_PROPRIETARY
+ && oid == EXT_UCI_PROP_GEN_DEBUG_NTF_0x18
+ && data_len == 9
+ && p_data[4] == 0x07
+ && p_data[5] == 0x29
+ && p_data[6] == 0x01
+ ) {
+ // 0 1 2 3 4 5 6 7 8
+ // 6E 18 00 05 07 29 01 00 64.
+ // b/381330041
+ NXPLOG_UCIHAL_D("%s: Skip 6E180015072901.... packet", __FUNCTION__);
+ is_handled = true;
+ }
+ }
+ else
+ {
+ // Not possible. We registered only for NTF
+ NXPLOG_UCIHAL_E("%s: Wrong MT: %d", __FUNCTION__, mt);
+ }
+ return is_handled;
+};
+
+
/******************************************************************************
* Function phNxpUciHal_client_thread
*
@@ -340,6 +370,10 @@
phNxpUciHal_rx_handler_add(UCI_MT_RSP, UCI_GID_CORE, UCI_MSG_CORE_GET_CAPS_INFO,
false, phNxpUciHal_handle_get_caps_info);
+
+ phNxpUciHal_rx_handler_add(UCI_MT_NTF, UCI_GID_PROPRIETARY, EXT_UCI_PROP_GEN_DEBUG_NTF_0x18, false,
+ nxp_properitory_ntf_skip_cb);
+
/* Call open complete */
nxpucihal_ctrl.pClientMq->send(std::make_shared<phLibUwb_Message>(UCI_HAL_OPEN_CPLT_MSG));
diff --git a/halimpl/hal/phNxpUciHal_ext.h b/halimpl/hal/phNxpUciHal_ext.h
index bff986e..cde383f 100644
--- a/halimpl/hal/phNxpUciHal_ext.h
+++ b/halimpl/hal/phNxpUciHal_ext.h
@@ -35,6 +35,8 @@
#define UCI_EXT_PARAM_TX_PULSE_SHAPE_CONFIG 0x28
#define UCI_EXT_PARAM_CLK_CONFIG_CTRL 0x30
+#define EXT_UCI_PROP_GEN_DEBUG_NTF_0x18 0x18
+
#define UCI_PARAM_ID_LOW_POWER_MODE 0x01
/* customer specific calib params */