Skip to content

Commit bbb9d37

Browse files
[CSA-CP] Adds fix to support OPEN access point on SiWx917SoC (#272)
1 parent a4c3e47 commit bbb9d37

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

src/platform/silabs/wifi/SiWx/WifiInterface.cpp

+13-8
Original file line numberDiff line numberDiff line change
@@ -353,22 +353,27 @@ sl_status_t SetWifiConfigurations()
353353
sl_wifi_listen_interval_t sleep_interval = { .listen_interval =
354354
chip::ICDConfigurationData::GetInstance().GetSlowPollingInterval().count() };
355355
status = sl_wifi_set_listen_interval(SL_WIFI_CLIENT_INTERFACE, sleep_interval);
356-
VerifyOrReturnError(status == SL_STATUS_OK, status);
356+
VerifyOrReturnError(status == SL_STATUS_OK, status,
357+
ChipLogError(DeviceLayer, "sl_wifi_set_listen_interval failed: 0x%lx", status));
357358

358359
sl_wifi_advanced_client_configuration_t client_config = { .max_retry_attempts = 5 };
359360
status = sl_wifi_set_advanced_client_configuration(SL_WIFI_CLIENT_INTERFACE, &client_config);
360-
VerifyOrReturnError(status == SL_STATUS_OK, status);
361+
VerifyOrReturnError(status == SL_STATUS_OK, status,
362+
ChipLogError(DeviceLayer, "sl_wifi_set_advanced_client_configuration failed: 0x%lx", status));
361363

362364
// [sl-only] Required configuration for listen interval changes at runtime
363365
status = sl_si91x_set_join_configuration(
364366
SL_WIFI_CLIENT_INTERFACE, (SL_SI91X_JOIN_FEAT_LISTEN_INTERVAL_VALID | SL_SI91X_JOIN_FEAT_PS_CMD_LISTEN_INTERVAL_VALID));
365367
VerifyOrReturnError(status == SL_STATUS_OK, status);
366-
367368
#endif // CHIP_CONFIG_ENABLE_ICD_SERVER
368369

369-
status = sl_net_set_credential(SL_NET_DEFAULT_WIFI_CLIENT_CREDENTIAL_ID, SL_NET_WIFI_PSK, &wfx_rsi.sec.passkey[0],
370-
wfx_rsi.sec.passkey_length);
371-
VerifyOrReturnError(status == SL_STATUS_OK, status);
370+
if (wfx_rsi.sec.passkey_length != 0)
371+
{
372+
status = sl_net_set_credential(SL_NET_DEFAULT_WIFI_CLIENT_CREDENTIAL_ID, SL_NET_WIFI_PSK, &wfx_rsi.sec.passkey[0],
373+
wfx_rsi.sec.passkey_length);
374+
VerifyOrReturnError(status == SL_STATUS_OK, status,
375+
ChipLogError(DeviceLayer, "sl_net_set_credential failed: 0x%lx", status));
376+
}
372377

373378
sl_net_wifi_client_profile_t profile = {
374379
.config = {
@@ -384,7 +389,7 @@ sl_status_t SetWifiConfigurations()
384389
.bssid = {{0}},
385390
.bss_type = SL_WIFI_BSS_TYPE_INFRASTRUCTURE,
386391
.security = security,
387-
.encryption = SL_WIFI_NO_ENCRYPTION,
392+
.encryption = SL_WIFI_DEFAULT_ENCRYPTION,
388393
.client_options = SL_WIFI_JOIN_WITH_SCAN,
389394
.credential_id = SL_NET_DEFAULT_WIFI_CLIENT_CREDENTIAL_ID,
390395
},
@@ -399,7 +404,7 @@ sl_status_t SetWifiConfigurations()
399404
memcpy((char *) &profile.config.ssid.value, wfx_rsi.sec.ssid, wfx_rsi.sec.ssid_length);
400405

401406
status = sl_net_set_profile((sl_net_interface_t) SL_NET_WIFI_CLIENT_INTERFACE, SL_NET_DEFAULT_WIFI_CLIENT_PROFILE_ID, &profile);
402-
VerifyOrReturnError(status == SL_STATUS_OK, status, ChipLogError(DeviceLayer, "sl_net_set_profile Failed"));
407+
VerifyOrReturnError(status == SL_STATUS_OK, status, ChipLogError(DeviceLayer, "sl_net_set_profile failed: 0x%lx", status));
403408

404409
return status;
405410
}

0 commit comments

Comments
 (0)