diff --git a/wiseconnect/components/device/silabs/si91x/wireless/src/sl_rsi_utility.c b/wiseconnect/components/device/silabs/si91x/wireless/src/sl_rsi_utility.c index 647a97534..82e4a5478 100644 --- a/wiseconnect/components/device/silabs/si91x/wireless/src/sl_rsi_utility.c +++ b/wiseconnect/components/device/silabs/si91x/wireless/src/sl_rsi_utility.c @@ -1839,7 +1839,7 @@ uint32_t sli_si91x_wait_for_event(uint32_t event_mask, uint32_t timeout) uint32_t si91x_host_wait_for_bus_event(uint32_t event_mask, uint32_t timeout) { - uint32_t result = osEventFlagsWait(si91x_bus_events, event_mask, osFlagsWaitAny, timeout); + uint32_t result = osEventFlagsWait(si91x_bus_events, event_mask, osFlagsWaitAny | osFlagsNoClear, timeout); if (result == (uint32_t)osErrorTimeout || result == (uint32_t)osErrorResource) { return 0; diff --git a/wiseconnect/components/sli_wifi_command_engine/src/sli_wifi_command_engine.c b/wiseconnect/components/sli_wifi_command_engine/src/sli_wifi_command_engine.c index 4d156a350..34ef26ced 100644 --- a/wiseconnect/components/sli_wifi_command_engine/src/sli_wifi_command_engine.c +++ b/wiseconnect/components/sli_wifi_command_engine/src/sli_wifi_command_engine.c @@ -45,6 +45,7 @@ * Variable Definitions ******************************************************/ static osThreadId_t command_engine_ID = 0; +extern osEventFlagsId_t si91x_bus_events; /****************************************************** * Function Declarations @@ -117,6 +118,7 @@ void sli_wifi_command_engine(void *args) events_received |= sli_wifi_command_engine_wait_for_event(events_to_wait_on, wait_time); + osEventFlagsClear(si91x_bus_events, events_received); if (events_received & SLI_WLAN_TERMINATE_THREAD_EVENT) { // Clear the termination event flag events_received &= ~SLI_WLAN_TERMINATE_THREAD_EVENT;