Skip to content

Commit 8215c8a

Browse files
committed
wiseconnect: Resolved issues when multiple events are set in si91x bus events.
Modified the osEventFlagsWait call to include the osFlagsNoClear option, which ensures that the events are not cleared automatically. After the events are received, manually clear them. Upstream-status: Inappropriate [Zephyr specific workaround for osEventFlags] Signed-off-by: Rahul Gurram <[email protected]>
1 parent 764d915 commit 8215c8a

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

wiseconnect/components/device/silabs/si91x/wireless/src/sl_rsi_utility.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1816,7 +1816,7 @@ uint32_t sli_si91x_wait_for_event(uint32_t event_mask, uint32_t timeout)
18161816

18171817
uint32_t si91x_host_wait_for_bus_event(uint32_t event_mask, uint32_t timeout)
18181818
{
1819-
uint32_t result = osEventFlagsWait(si91x_bus_events, event_mask, osFlagsWaitAny, timeout);
1819+
uint32_t result = osEventFlagsWait(si91x_bus_events, event_mask, osFlagsWaitAny | osFlagsNoClear, timeout);
18201820

18211821
if (result == (uint32_t)osErrorTimeout || result == (uint32_t)osErrorResource) {
18221822
return 0;

wiseconnect/components/sli_wifi_command_engine/src/sli_wifi_command_engine.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
* Variable Definitions
4646
******************************************************/
4747
static osThreadId_t command_engine_ID = 0;
48+
extern osEventFlagsId_t si91x_bus_events;
4849

4950
/******************************************************
5051
* Function Declarations
@@ -117,6 +118,7 @@ void sli_wifi_command_engine(void *args)
117118

118119
events_received |= sli_wifi_command_engine_wait_for_event(events_to_wait_on, wait_time);
119120

121+
osEventFlagsClear(si91x_bus_events, events_received);
120122
if (events_received & SLI_WLAN_TERMINATE_THREAD_EVENT) {
121123
// Clear the termination event flag
122124
events_received &= ~SLI_WLAN_TERMINATE_THREAD_EVENT;

0 commit comments

Comments
 (0)