mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 03:00:34 +03:00
esp_wifi: optimize WiFi TX performance
This commit is contained in:
@@ -58,6 +58,10 @@ static void wifi_start(void *esp_netif, esp_event_base_t base, int32_t event_id,
|
||||
}
|
||||
}
|
||||
|
||||
if ((ret = esp_wifi_internal_reg_netstack_buf_cb(esp_netif_netstack_buf_ref, esp_netif_netstack_buf_free)) != ESP_OK) {
|
||||
ESP_LOGE(TAG, "netstack cb reg failed with %d", ret);
|
||||
return;
|
||||
}
|
||||
esp_netif_set_mac(esp_netif, mac);
|
||||
esp_netif_action_start(esp_netif, base, event_id, data);
|
||||
}
|
||||
|
||||
@@ -50,6 +50,9 @@ uint64_t g_wifi_feature_caps =
|
||||
#if CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE
|
||||
CONFIG_FEATURE_WPA3_SAE_BIT |
|
||||
#endif
|
||||
#if (CONFIG_ESP32_SPIRAM_SUPPORT | CONFIG_ESP32S2_SPIRAM_SUPPORT)
|
||||
CONFIG_FEATURE_CACHE_TX_BUF_BIT |
|
||||
#endif
|
||||
0;
|
||||
|
||||
static const char* TAG = "wifi_init";
|
||||
|
||||
@@ -63,6 +63,16 @@ static esp_err_t wifi_transmit(void *h, void *buffer, size_t len)
|
||||
return esp_wifi_internal_tx(driver->wifi_if, buffer, len);
|
||||
}
|
||||
|
||||
static esp_err_t wifi_transmit_wrap(void *h, void *buffer, size_t len, void *netstack_buf)
|
||||
{
|
||||
wifi_netif_driver_t driver = h;
|
||||
#if (CONFIG_ESP32_SPIRAM_SUPPORT | CONFIG_ESP32S2_SPIRAM_SUPPORT)
|
||||
return esp_wifi_internal_tx_by_ref(driver->wifi_if, buffer, len, netstack_buf);
|
||||
#else
|
||||
return esp_wifi_internal_tx(driver->wifi_if, buffer, len);
|
||||
#endif
|
||||
}
|
||||
|
||||
static esp_err_t wifi_driver_start(esp_netif_t * esp_netif, void * args)
|
||||
{
|
||||
wifi_netif_driver_t driver = args;
|
||||
@@ -70,6 +80,7 @@ static esp_err_t wifi_driver_start(esp_netif_t * esp_netif, void * args)
|
||||
esp_netif_driver_ifconfig_t driver_ifconfig = {
|
||||
.handle = driver,
|
||||
.transmit = wifi_transmit,
|
||||
.transmit_wrap= wifi_transmit_wrap,
|
||||
.driver_free_rx_buffer = wifi_free
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user