From 521c7fb951312faf783c0a26c30f51a721751557 Mon Sep 17 00:00:00 2001 From: wuzhenghui Date: Wed, 6 Aug 2025 11:02:12 +0800 Subject: [PATCH] fix(hal): fix esp32c5 mac link bad trigger --- components/hal/esp32c5/include/hal/pau_ll.h | 27 +-------------------- components/hal/esp32c5/pau_hal.c | 13 +++++----- 2 files changed, 7 insertions(+), 33 deletions(-) diff --git a/components/hal/esp32c5/include/hal/pau_ll.h b/components/hal/esp32c5/include/hal/pau_ll.h index 2a6de7d704..afefc1757d 100644 --- a/components/hal/esp32c5/include/hal/pau_ll.h +++ b/components/hal/esp32c5/include/hal/pau_ll.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -57,31 +57,6 @@ static inline void pau_ll_set_regdma_entry_link_backup_start_disable(pau_dev_t * dev->regdma_conf.start = 0; } -static inline void pau_ll_set_regdma_select_wifimac_link(pau_dev_t *dev) -{ - dev->regdma_conf.sel_mac = 1; -} - -static inline void pau_ll_set_regdma_deselect_wifimac_link(pau_dev_t *dev) -{ - dev->regdma_conf.sel_mac = 0; -} - -static inline void pau_ll_set_regdma_wifimac_link_backup_direction(pau_dev_t *dev, bool to_mem) -{ - dev->regdma_conf.to_mem_mac = to_mem ? 1 : 0; -} - -static inline void pau_ll_set_regdma_wifimac_link_backup_start_enable(pau_dev_t *dev) -{ - dev->regdma_conf.start_mac = 1; -} - -static inline void pau_ll_set_regdma_wifimac_link_backup_start_disable(pau_dev_t *dev) -{ - dev->regdma_conf.start_mac = 0; -} - static inline uint32_t pau_ll_get_regdma_current_link_addr(pau_dev_t *dev) { return dev->regdma_current_link_addr.val; diff --git a/components/hal/esp32c5/pau_hal.c b/components/hal/esp32c5/pau_hal.c index da41160446..5579412b2f 100644 --- a/components/hal/esp32c5/pau_hal.c +++ b/components/hal/esp32c5/pau_hal.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -18,17 +18,16 @@ void pau_hal_set_regdma_entry_link_addr(pau_hal_context_t *hal, pau_regdma_link_ void IRAM_ATTR pau_hal_start_regdma_modem_link(pau_hal_context_t *hal, bool backup_or_restore) { pau_ll_clear_regdma_backup_done_intr_state(hal->dev); - pau_ll_set_regdma_select_wifimac_link(hal->dev); - pau_ll_set_regdma_wifimac_link_backup_direction(hal->dev, backup_or_restore); - pau_ll_set_regdma_wifimac_link_backup_start_enable(hal->dev); - + pau_ll_select_regdma_entry_link(hal->dev, SOC_PM_PAU_REGDMA_LINK_IDX_WIFIMAC); + pau_ll_set_regdma_entry_link_backup_direction(hal->dev, backup_or_restore); + pau_ll_set_regdma_entry_link_backup_start_enable(hal->dev); while (!(pau_ll_get_regdma_intr_raw_signal(hal->dev) & PAU_DONE_INT_RAW)); } void IRAM_ATTR pau_hal_stop_regdma_modem_link(pau_hal_context_t *hal) { - pau_ll_set_regdma_wifimac_link_backup_start_disable(hal->dev); - pau_ll_set_regdma_deselect_wifimac_link(hal->dev); + pau_ll_set_regdma_entry_link_backup_start_disable(hal->dev); + pau_ll_select_regdma_entry_link(hal->dev, 0); /* restore link select to default */ pau_ll_clear_regdma_backup_done_intr_state(hal->dev); }