Skip to content

Commit 5a5c004

Browse files
committed
Merge branch 'feature/optimize_coex_connectionless_pwr' into 'master'
feat(coex): optimize connectionless coexist pwr, optimize wifi pwr with BLE IDLE Closes WIFI-6693 and WIFI-6645 See merge request espressif/esp-idf!33437
2 parents 3c99557 + 8380991 commit 5a5c004

File tree

18 files changed

+31
-19
lines changed

18 files changed

+31
-19
lines changed

components/esp_coex/include/private/esp_coexist_internal.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,16 @@ typedef enum {
2828
COEX_SCHM_CALLBACK_TYPE_I154,
2929
} coex_schm_callback_type_t;
3030

31+
typedef enum {
32+
COEX_SCHM_ST_TYPE_WIFI = 0,
33+
COEX_SCHM_ST_TYPE_BLE,
34+
COEX_SCHM_ST_TYPE_BT,
35+
} coex_schm_st_type_t;
36+
37+
#define COEX_STATUS_GET_WIFI_BITMAP (1 << COEX_SCHM_ST_TYPE_WIFI)
38+
#define COEX_STATUS_GET_BLE_BITMAP (1 << COEX_SCHM_ST_TYPE_BLE)
39+
#define COEX_STATUS_GET_BT_BITMAP (1 << COEX_SCHM_ST_TYPE_BT)
40+
3141
typedef void (* coex_func_cb_t)(uint32_t event, int sched_cnt);
3242
typedef esp_err_t (* coex_set_lpclk_source_callback_t)(void);
3343
typedef void (* coex_wifi_channel_change_cb_t)(uint8_t primary, uint8_t secondary);
@@ -94,9 +104,11 @@ esp_err_t coex_preference_set(coex_prefer_t prefer);
94104

95105
/**
96106
* @brief Get software coexist status.
107+
*
108+
* @param bitmap : bitmap of the module getting status.
97109
* @return : software coexist status
98110
*/
99-
uint32_t coex_status_get(void);
111+
uint32_t coex_status_get(uint8_t bitmap);
100112

101113
/**
102114
* @brief WiFi requests coexistence.

components/esp_rom/esp32c2/ld/esp32c2.rom.eco4.ld

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,8 +1174,8 @@ hal_set_sta_tbtt = 0x40001e4c;
11741174
pm_set_sleep_type = 0x40001e54;
11751175
pm_tx_null_data_done_process = 0x40001eb0;
11761176
//pm_tx_data_process = 0x40001eb4;
1177-
pm_attach = 0x40001eb8;
1178-
pm_coex_schm_process = 0x40001ebc;
1177+
/*pm_attach = 0x40001eb8;*/
1178+
/*pm_coex_schm_process = 0x40001ebc;*/
11791179
pm_on_probe_resp_rx = 0x40001ecc;
11801180
pm_send_probe_stop = 0x40001edc;
11811181
hal_sniffer_rx_set_promis = 0x40001ef4;

components/esp_rom/esp32c2/ld/esp32c2.rom.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1903,7 +1903,7 @@ coex_hw_timer_set = 0x4000219c;
19031903
coex_schm_interval_set = 0x400021a0;
19041904
coex_schm_lock = 0x400021a4;
19051905
coex_schm_unlock = 0x400021a8;
1906-
coex_status_get = 0x400021ac;
1906+
/*coex_status_get = 0x400021ac;*/
19071907
coex_wifi_release = 0x400021b0;
19081908
esp_coex_ble_conn_dynamic_prio_get = 0x400021b4;
19091909
/*coex_hw_timer_tick_get = 0x400021b8;*/

components/esp_rom/esp32c3/ld/esp32c3.rom.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1772,7 +1772,7 @@ coex_hw_timer_set = 0x400018e0;
17721772
coex_schm_interval_set = 0x400018e4;
17731773
coex_schm_lock = 0x400018e8;
17741774
coex_schm_unlock = 0x400018ec;
1775-
coex_status_get = 0x400018f0;
1775+
/*coex_status_get = 0x400018f0;*/
17761776
coex_wifi_release = 0x400018f4;
17771777
esp_coex_ble_conn_dynamic_prio_get = 0x400018f8;
17781778
/* Data (.data, .bss, .rodata) */

components/esp_rom/esp32c5/ld/esp32c5.rom.coexist.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ coex_hw_timer_set = 0x40000afc;
3535
coex_schm_interval_set = 0x40000b00;
3636
coex_schm_lock = 0x40000b04;
3737
coex_schm_unlock = 0x40000b08;
38-
coex_status_get = 0x40000b0c;
38+
/*coex_status_get = 0x40000b0c;*/
3939
coex_wifi_release = 0x40000b10;
4040
esp_coex_ble_conn_dynamic_prio_get = 0x40000b14;
4141
/* Data (.data, .bss, .rodata) */

components/esp_rom/esp32c6/ld/esp32c6.rom.coexist.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ coex_hw_timer_set = 0x40000b30;
3535
coex_schm_interval_set = 0x40000b34;
3636
coex_schm_lock = 0x40000b38;
3737
coex_schm_unlock = 0x40000b3c;
38-
coex_status_get = 0x40000b40;
38+
/*coex_status_get = 0x40000b40;*/
3939
coex_wifi_release = 0x40000b44;
4040
esp_coex_ble_conn_dynamic_prio_get = 0x40000b48;
4141
/* Data (.data, .bss, .rodata) */

components/esp_rom/esp32c61/ld/esp32c61.rom.coexist.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ coex_hw_timer_set = 0x40000a64;
3535
coex_schm_interval_set = 0x40000a68;
3636
coex_schm_lock = 0x40000a6c;
3737
coex_schm_unlock = 0x40000a70;
38-
coex_status_get = 0x40000a74;
38+
/*coex_status_get = 0x40000a74;*/
3939
coex_wifi_release = 0x40000a78;
4040
esp_coex_ble_conn_dynamic_prio_get = 0x40000a7c;
4141
/* Data (.data, .bss, .rodata) */

components/esp_rom/esp32s3/ld/esp32s3.rom.ld

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2058,7 +2058,7 @@ coex_hw_timer_set = 0x40005c04;
20582058
coex_schm_interval_set = 0x40005c10;
20592059
coex_schm_lock = 0x40005c1c;
20602060
coex_schm_unlock = 0x40005c28;
2061-
coex_status_get = 0x40005c34;
2061+
/*coex_status_get = 0x40005c34;*/
20622062
coex_wifi_release = 0x40005c40;
20632063
esp_coex_ble_conn_dynamic_prio_get = 0x40005c4c;
20642064
/* Data (.data, .bss, .rodata) */

components/esp_wifi/esp32/esp_adapter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ static void coex_disable_wrapper(void)
452452
static IRAM_ATTR uint32_t coex_status_get_wrapper(void)
453453
{
454454
#if CONFIG_SW_COEXIST_ENABLE
455-
return coex_status_get();
455+
return coex_status_get(COEX_STATUS_GET_WIFI_BITMAP);
456456
#else
457457
return 0;
458458
#endif

0 commit comments

Comments
 (0)