mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-29 05:38:42 +00:00
esp32: fix some WiFi bugs
Fix following WiFi bugs: 1. Make smartconfig thread-safe 2. Fix WiFi stop/deinit memory leak 3. Refactor for WiFi init/deinit/ioctl etc 4. Add declaration for esp_wifi_internal_ioctl() 5. Fix the bug that WiFi stop leads to task watchdog
This commit is contained in:
@@ -1102,6 +1102,19 @@ esp_err_t esp_wifi_set_ant(const wifi_ant_config_t *config);
|
||||
*/
|
||||
esp_err_t esp_wifi_get_ant(wifi_ant_config_t *config);
|
||||
|
||||
/**
|
||||
* @brief A general API to set/get WiFi internal configuration, it's for debug only
|
||||
*
|
||||
* @param cmd : ioctl command type
|
||||
* @param cfg : configuration for the command
|
||||
*
|
||||
* @return
|
||||
* - ESP_OK: succeed
|
||||
* - others: failed
|
||||
*/
|
||||
esp_err_t esp_wifi_internal_ioctl(int cmd, wifi_ioctl_config_t *cfg);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -44,6 +44,7 @@ typedef struct {
|
||||
void (*_semphr_delete)(void *semphr);
|
||||
int32_t (*_semphr_take)(void *semphr, uint32_t block_time_tick);
|
||||
int32_t (*_semphr_give)(void *semphr);
|
||||
void *(*_wifi_thread_semphr_get)(void);
|
||||
void *(*_mutex_create)(void);
|
||||
void *(*_recursive_mutex_create)(void);
|
||||
void (*_mutex_delete)(void *mutex);
|
||||
|
@@ -492,6 +492,34 @@ typedef enum {
|
||||
WIFI_PHY_RATE_MAX,
|
||||
} wifi_phy_rate_t;
|
||||
|
||||
/**
|
||||
* @brief WiFi ioctl command type
|
||||
*
|
||||
*/
|
||||
typedef enum {
|
||||
WIFI_IOCTL_SET_STA_HT2040_COEX = 1, /**< Set the configuration of STA's HT2040 coexist management */
|
||||
WIFI_IOCTL_GET_STA_HT2040_COEX, /**< Get the configuration of STA's HT2040 coexist management */
|
||||
WIFI_IOCTL_MAX,
|
||||
} wifi_ioctl_cmd_t;
|
||||
|
||||
/**
|
||||
* @brief Configuration for STA's HT2040 coexist management
|
||||
*
|
||||
*/
|
||||
typedef struct {
|
||||
int enable; /**< Indicate whether STA's HT2040 coexist management is enabled or not */
|
||||
} wifi_ht2040_coex_t;
|
||||
|
||||
/**
|
||||
* @brief Configuration for WiFi ioctl
|
||||
*
|
||||
*/
|
||||
typedef struct {
|
||||
union {
|
||||
wifi_ht2040_coex_t ht2040_coex; /**< Configuration of STA's HT2040 coexist management */
|
||||
} data; /**< Configuration of ioctl command */
|
||||
} wifi_ioctl_config_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user