Skip to content

Commit d8234fb

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 bd12c83 commit d8234fb

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
@@ -1781,7 +1781,7 @@ uint32_t sli_si91x_wait_for_event(uint32_t event_mask, uint32_t timeout)
17811781

17821782
uint32_t si91x_host_wait_for_bus_event(uint32_t event_mask, uint32_t timeout)
17831783
{
1784-
uint32_t result = osEventFlagsWait(si91x_bus_events, event_mask, osFlagsWaitAny, timeout);
1784+
uint32_t result = osEventFlagsWait(si91x_bus_events, event_mask, osFlagsWaitAny | osFlagsNoClear, timeout);
17851785

17861786
if (result == (uint32_t)osErrorTimeout || result == (uint32_t)osErrorResource) {
17871787
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)