Skip to content

Commit 28be221

Browse files
ArunmaniAlagarsamy2710kartben
authored andcommitted
drivers: wifi: siwx91x: Correct handling of BSSID in interface status
This commit resolves incorrect results in the interface status response. The parameter for `sl_wifi_get_wireless_info` has changed following the HAL Silabs update to version 3.5.0. In AP mode, the implementation now correctly uses the `mac_address` variable instead of `bssid`. Signed-off-by: Arunmani Alagarsamy <arunmani.a@silabs.com>
1 parent de6395d commit 28be221

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

drivers/wifi/siwx91x/siwx91x_wifi.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ static unsigned int siwx91x_on_join(sl_wifi_event_t event,
481481
static int siwx91x_status(const struct device *dev, struct wifi_iface_status *status)
482482
{
483483
sl_wifi_interface_t interface = sl_wifi_get_default_interface();
484-
sl_si91x_rsp_wireless_info_t wlan_info = { };
484+
sl_wifi_wireless_info_t wlan_info = { };
485485
struct siwx91x_dev *sidev = dev->data;
486486
uint8_t join_config;
487487
int32_t rssi;
@@ -504,7 +504,6 @@ static int siwx91x_status(const struct device *dev, struct wifi_iface_status *st
504504

505505
strncpy(status->ssid, wlan_info.ssid, WIFI_SSID_MAX_LEN);
506506
status->ssid_len = strlen(status->ssid);
507-
memcpy(status->bssid, wlan_info.bssid, WIFI_MAC_ADDR_LEN);
508507
status->wpa3_ent_type = WIFI_WPA3_ENTERPRISE_NA;
509508

510509
if (interface & SL_WIFI_2_4GHZ_INTERFACE) {
@@ -555,6 +554,7 @@ static int siwx91x_status(const struct device *dev, struct wifi_iface_status *st
555554

556555
status->beacon_interval = sys_get_le16(operational_statistics.beacon_interval);
557556
status->dtim_period = operational_statistics.dtim_period;
557+
memcpy(status->bssid, wlan_info.bssid, WIFI_MAC_ADDR_LEN);
558558
} else if (FIELD_GET(SIWX91X_INTERFACE_MASK, interface) == SL_WIFI_AP_INTERFACE) {
559559
sl_wifi_ap_configuration_t sl_ap_cfg = { };
560560

@@ -571,6 +571,7 @@ static int siwx91x_status(const struct device *dev, struct wifi_iface_status *st
571571
status->beacon_interval = sl_ap_cfg.beacon_interval;
572572
status->dtim_period = sl_ap_cfg.dtim_beacon_count;
573573
wlan_info.sec_type = (uint8_t)sl_ap_cfg.security;
574+
memcpy(status->bssid, wlan_info.mac_address, WIFI_MAC_ADDR_LEN);
574575
} else {
575576
status->link_mode = WIFI_LINK_MODE_UNKNOWN;
576577
status->iface_mode = WIFI_MODE_UNKNOWN;

0 commit comments

Comments
 (0)