Skip to content

Commit 35ba982

Browse files
mniestrojfabiobaltieri
authored andcommitted
wifi: esp32: make ethernet carrier on after ESP32_WIFI_EVENT_STA_START
Driver is not ready to handle NET_REQUEST_WIFI_CONNECT wifi_mgmt events before ESP32_WIFI_EVENT_STA_START event is received. Revert back to setting NET_IF_NO_AUTO_START flag for interface and call net_eth_carrier_on() after ESP32_WIFI_EVENT_STA_START event is received. This makes it possible for an application to wait for network interface to be ready, e.g. with: while (!net_if_is_up(iface)) { k_sleep(K_MSEC(100)); } before making a connect request with: net_mgmt(NET_REQUEST_WIFI_CONNECT, iface ...). Fixes: 7d9edc8 ("wifi: esp32: add support to wifi api mgmt") Signed-off-by: Marcin Niestroj <[email protected]>
1 parent 5a89ec2 commit 35ba982

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

drivers/wifi/esp32/src/esp_wifi_drv.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -236,11 +236,11 @@ static void esp_wifi_event_task(void)
236236
switch (evt.event_id) {
237237
case ESP32_WIFI_EVENT_STA_START:
238238
esp32_data.state = ESP32_STA_STARTED;
239-
net_if_up(esp32_wifi_iface);
239+
net_eth_carrier_on(esp32_wifi_iface);
240240
break;
241241
case ESP32_WIFI_EVENT_STA_STOP:
242242
esp32_data.state = ESP32_STA_STOPPED;
243-
net_if_down(esp32_wifi_iface);
243+
net_eth_carrier_off(esp32_wifi_iface);
244244
break;
245245
case ESP32_WIFI_EVENT_STA_CONNECTED:
246246
esp_wifi_handle_connect_event();
@@ -429,8 +429,7 @@ static void esp32_wifi_init(struct net_if *iface)
429429
net_if_set_link_addr(iface, dev_data->mac_addr, 6, NET_LINK_ETHERNET);
430430

431431
ethernet_init(iface);
432-
433-
net_eth_carrier_on(esp32_wifi_iface);
432+
net_if_flag_set(iface, NET_IF_NO_AUTO_START);
434433

435434
esp_wifi_internal_reg_rxcb(ESP_IF_WIFI_STA, eth_esp32_rx);
436435
}

0 commit comments

Comments
 (0)