mirror of
https://github.com/espressif/esp-idf.git
synced 2025-10-02 18:10:57 +02:00
Merge branch 'bugfix/fix_esp32_bt_sw_intr_v5.3' into 'release/v5.3'
fix(bt): fixed sw_intr issue with BT register or trigger error core on ESP32 (v5.3) See merge request espressif/esp-idf!41635
This commit is contained in:
@@ -882,9 +882,22 @@ static int IRAM_ATTR cause_sw_intr_to_core_wrapper(int core_id, int intr_no)
|
|||||||
#if CONFIG_FREERTOS_UNICORE
|
#if CONFIG_FREERTOS_UNICORE
|
||||||
cause_sw_intr((void *)intr_no);
|
cause_sw_intr((void *)intr_no);
|
||||||
#else /* CONFIG_FREERTOS_UNICORE */
|
#else /* CONFIG_FREERTOS_UNICORE */
|
||||||
|
#if CONFIG_FREERTOS_SMP
|
||||||
|
uint32_t state = portDISABLE_INTERRUPTS();
|
||||||
|
#else
|
||||||
|
uint32_t state = portSET_INTERRUPT_MASK_FROM_ISR();
|
||||||
|
#endif
|
||||||
if (xPortGetCoreID() == core_id) {
|
if (xPortGetCoreID() == core_id) {
|
||||||
cause_sw_intr((void *)intr_no);
|
cause_sw_intr((void *)intr_no);
|
||||||
|
#if CONFIG_FREERTOS_SMP
|
||||||
|
portRESTORE_INTERRUPTS(state);
|
||||||
} else {
|
} else {
|
||||||
|
portRESTORE_INTERRUPTS(state);
|
||||||
|
#else
|
||||||
|
portCLEAR_INTERRUPT_MASK_FROM_ISR(state);
|
||||||
|
} else {
|
||||||
|
portCLEAR_INTERRUPT_MASK_FROM_ISR(state);
|
||||||
|
#endif
|
||||||
err = esp_ipc_call(core_id, cause_sw_intr, (void *)intr_no);
|
err = esp_ipc_call(core_id, cause_sw_intr, (void *)intr_no);
|
||||||
}
|
}
|
||||||
#endif /* !CONFIG_FREERTOS_UNICORE */
|
#endif /* !CONFIG_FREERTOS_UNICORE */
|
||||||
@@ -1505,11 +1518,7 @@ static void hli_queue_setup_pinned_to_core(int core_id)
|
|||||||
#if CONFIG_FREERTOS_UNICORE
|
#if CONFIG_FREERTOS_UNICORE
|
||||||
hli_queue_setup_cb(NULL);
|
hli_queue_setup_cb(NULL);
|
||||||
#else /* CONFIG_FREERTOS_UNICORE */
|
#else /* CONFIG_FREERTOS_UNICORE */
|
||||||
if (xPortGetCoreID() == core_id) {
|
esp_ipc_call_blocking(core_id, hli_queue_setup_cb, NULL);
|
||||||
hli_queue_setup_cb(NULL);
|
|
||||||
} else {
|
|
||||||
esp_ipc_call(core_id, hli_queue_setup_cb, NULL);
|
|
||||||
}
|
|
||||||
#endif /* !CONFIG_FREERTOS_UNICORE */
|
#endif /* !CONFIG_FREERTOS_UNICORE */
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_BTDM_CTRL_HLI */
|
#endif /* CONFIG_BTDM_CTRL_HLI */
|
||||||
|
Reference in New Issue
Block a user