소스 검색

fix(wifi): fix some esp32c6 wifi bugs

xuxiao 2 년 전
부모
커밋
cb4b798867

+ 3 - 1
components/esp_wifi/include/esp_now.h

@@ -264,7 +264,9 @@ esp_err_t esp_now_mod_peer(const esp_now_peer_info_t *peer);
   *    - ESP_OK: succeed
   *    - others: failed
   */
-esp_err_t esp_wifi_config_espnow_rate(wifi_interface_t ifx, wifi_phy_rate_t rate);
+esp_err_t esp_wifi_config_espnow_rate(wifi_interface_t ifx, wifi_phy_rate_t rate)
+      __attribute__((deprecated("This API can be only used when rate is non-HE rate, \
+                                please use esp_now_set_peer_rate_config if you want full support of the rate.")));
 
 /**
   * @brief      Set ESPNOW rate config for each peer

+ 4 - 4
components/esp_wifi/include/esp_private/esp_wifi_he_types_private.h

@@ -235,10 +235,10 @@ typedef struct {
     int64_t tx_start_time;
     int64_t tx_seqno_time;
     int64_t tx_muedca_time;
-    int64_t tx_max_muedca_time;
-    int64_t tx_min_muedca_time;
-    int64_t tx_tot_muedca_time;
-    int64_t muedca_times;
+    uint32_t tx_max_muedca_time;
+    uint32_t tx_min_muedca_time;
+    uint32_t tx_tot_muedca_time;
+    uint32_t muedca_times;
     uint32_t tx_muedca_enable; /* count TX times within mu-timer working */
     uint32_t collision;
     uint32_t timeout;

+ 3 - 4
components/esp_wifi/include/esp_wifi_he_types.h

@@ -158,12 +158,11 @@ typedef struct {
     unsigned : 15;                                /**< reserved */
     unsigned : 2;                                 /**< reserved */
     unsigned noise_floor : 8;                     /**< the noise floor of the reception frame */
-    signed data_rssi : 8;                         /**< the RSSI of the DATA field */
-    unsigned : 8;                                 /**< reserved */
-    unsigned : 8;                                 /**< reserved */
     unsigned channel : 4;                         /**< the primary channel */
     unsigned second : 4;                          /**< the second channel if in HT40 */
-    unsigned : 24;                                /**< reserved */
+    unsigned : 8;                                 /**< reserved */
+    unsigned : 8;                                 /**< reserved */
+    unsigned : 32;                                /**< reserved */
     unsigned : 32;                                /**< reserved */
     unsigned : 2;                                 /**< reserved */
     unsigned : 4;                                 /**< reserved */

+ 1 - 1
components/esp_wifi/lib

@@ -1 +1 @@
-Subproject commit d5352da6c4f6e5d460a8f5af957b4e47420e7782
+Subproject commit 7759f9bdf087eb7fb31e4a612b4d310633fb4dcb

+ 1 - 1
examples/common_components/iperf/wifi_stats.c

@@ -210,7 +210,7 @@ int wifi_cmd_get_tx_statistics(int argc, char **argv)
                tx_stats.collision, tx_stats.timeout);
 
         float tot_rtt_ms = (float) tx_stats.tx_tot_rtt / (float) 1000;
-        printf("(test)aci:%" PRIu8 ", seqno_rtt[%" PRIu32 ",%" PRIu32 "], hw_rtt[%" PRIu32 ", %" PRIu32 "], muedca[enable:%" PRIu32 ", times:%" PRIi64 ", %.2f, %.2f, tot:%.2f], avg:%.3f ms, tot:%.3f secs\n",
+        printf("(test)aci:%" PRIu8 ", seqno_rtt[%" PRIu32 ",%" PRIu32 "], hw_rtt[%" PRIu32 ", %" PRIu32 "], muedca[enable:%" PRIu32 ", times:%" PRIu32 ", %.2f, %.2f, tot:%.2f], avg:%.3f ms, tot:%.3f secs\n",
                i,
                tx_stats.tx_seq_min_rtt,
                tx_stats.tx_seq_max_rtt,