Merge branch 'backport/52143-to-release-v6.1' into 'release/v6.1'

fix(wifi): fix wifi wakeup failed from modem state v6.1

See merge request espressif/esp-idf!52385
This commit is contained in:
Jiang Jiang Jian
2026-09-04 15:45:18 +08:00
5 changed files with 20 additions and 18 deletions
@@ -58,7 +58,8 @@ esp_err_t sleep_clock_modem_retention_init(void *arg)
[0] = { .config = REGDMA_LINK_WRITE_INIT(REGDMA_MODEMSYSCON_LINK(0), MODEM_SYSCON_DATE_REG, 0xf, 0xffffffff, 1, 0), .owner = ENTRY(0) | ENTRY(1) },
[1] = { .config = REGDMA_LINK_CONTINUOUS_INIT(REGDMA_MODEMSYSCON_LINK(1), MODEM_SYSCON_TEST_CONF_REG, MODEM_SYSCON_TEST_CONF_REG, N_REGS_SYSCON(), 0, 0), .owner = ENTRY(0) | ENTRY(1) }, /* MODEM SYSCON */
[2] = { .config = REGDMA_LINK_CONTINUOUS_INIT(REGDMA_MODEMLPCON_LINK(0), MODEM_LPCON_TEST_CONF_REG, MODEM_LPCON_TEST_CONF_REG, N_REGS_LPCON(), 0, 0), .owner = ENTRY(0) | ENTRY(1) }, /* MODEM SYSCON */
[3] = { .config = REGDMA_LINK_WRITE_INIT(REGDMA_CLOCK_ICG_LINK(0), HP_SYS_CLKRST_MODEM_CONF_REG, 0x3d, 0x3d, 1, 0), .owner = ENTRY(1)},
[3] = { .config = REGDMA_LINK_WRITE_INIT(REGDMA_CLOCK_ICG_LINK(0), HP_SYS_CLKRST_REF_160M_CTRL0_REG, HP_SYS_CLKRST_REG_REF_160M_CLK_EN, HP_SYS_CLKRST_REG_REF_160M_CLK_EN_M, 1, 0), .owner = ENTRY(1)},
[4] = { .config = REGDMA_LINK_WRITE_INIT(REGDMA_CLOCK_ICG_LINK(1), HP_SYS_CLKRST_MODEM_CONF_REG, 0x3d, 0x3d, 1, 0), .owner = ENTRY(1)},
};
esp_err_t err = sleep_retention_entries_create(modem_regs_retention, ARRAY_SIZE(modem_regs_retention), REGDMA_LINK_PRI_MODEM_CLK, SLEEP_RETENTION_MODULE_CLOCK_MODEM);
+2 -11
View File
@@ -43,9 +43,6 @@ examples/wifi/getting_started:
- if: IDF_TARGET in ["esp32p4", "esp32h2"]
temporary: true
reason: lack of runners
- if: IDF_TARGET in ["esp32s31"]
temporary: true
reason: lack of runners
depends_filepatterns:
- examples/wifi/getting_started/**/*
@@ -82,14 +79,8 @@ examples/wifi/itwt:
examples/wifi/power_save:
<<: *wifi_depends_default
disable:
- if: SOC_WIFI_SUPPORTED != 1
temporary: true
reason: requires hardware support
disable_test:
- if: IDF_TARGET in ["esp32s31"]
temporary: true
reason: lack of runners
enable:
- if: SOC_WIFI_SUPPORTED == 1
depends_components:
- *common_components
- esp_wifi
@@ -5,6 +5,7 @@ import os.path
import pytest
from pytest_embedded_idf.dut import IdfDut
from pytest_embedded_idf.utils import idf_parametrize
from pytest_embedded_idf.utils import soc_filtered_targets
# @pytest.mark.supported_targets
# This test should support all targets, even between different target types
@@ -33,7 +34,7 @@ from pytest_embedded_idf.utils import idf_parametrize
)
@idf_parametrize(
'target',
['esp32', 'esp32c3', 'esp32s2', 'esp32s3', 'esp32c5', 'esp32c6', 'esp32c61'],
soc_filtered_targets('SOC_WIFI_SUPPORTED == 1 and IDF_TARGET not in ["esp32c2"]'),
indirect=['target'],
)
def test_wifi_getting_started(dut: tuple[IdfDut, IdfDut]) -> None:
@@ -6,6 +6,7 @@ from collections.abc import Callable
import pytest
from pytest_embedded import Dut
from pytest_embedded_idf.utils import idf_parametrize
from pytest_embedded_idf.utils import soc_filtered_targets
# diff of esp32s2/esp32s3 ~45K, others ~50K
@@ -20,8 +21,7 @@ DIFF_THRESHOLD = {
@pytest.mark.parametrize('count, config, skip_autoflash', [(2, 'default|enable_softap', 'y')], indirect=True)
@idf_parametrize(
'target',
# esp32s31: no two_duts runner in CI (rev_default) yet
['esp32', 'esp32c2', 'esp32c3', 'esp32s2', 'esp32s3', 'esp32c5', 'esp32c6', 'esp32c61'],
soc_filtered_targets('SOC_WIFI_SUPPORTED == 1'),
indirect=['target'],
)
def test_wifi_sdkconfig_disable_softap_save_binary_size(
@@ -7,6 +7,7 @@ import pytest
from common_test_methods import get_env_config_variable
from pytest_embedded import Dut
from pytest_embedded_idf.utils import idf_parametrize
from pytest_embedded_idf.utils import soc_filtered_targets
bad_event_str = [
'bcn_timeout',
@@ -44,7 +45,7 @@ def _run_test(dut: Dut) -> None:
@pytest.mark.wifi_ap
@idf_parametrize(
'target',
['esp32', 'esp32c2', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c6', 'esp32c5', 'esp32c61'],
soc_filtered_targets('SOC_WIFI_SUPPORTED == 1'),
indirect=['target'],
)
def test_wifi_power_save(dut: Dut) -> None:
@@ -59,7 +60,11 @@ def test_wifi_power_save(dut: Dut) -> None:
],
indirect=True,
)
@idf_parametrize('target', ['esp32c6', 'esp32c5', 'esp32c61'], indirect=['target'])
@idf_parametrize(
'target',
soc_filtered_targets('SOC_WIFI_SUPPORTED == 1 and SOC_PM_SUPPORT_TOP_PD == 1'),
indirect=['target'],
)
def test_wifi_power_save_pd_top(dut: Dut) -> None:
_run_test(dut)
@@ -72,7 +77,11 @@ def test_wifi_power_save_pd_top(dut: Dut) -> None:
],
indirect=True,
)
@idf_parametrize('target', ['esp32c6', 'esp32c5', 'esp32c61'], indirect=['target'])
@idf_parametrize(
'target',
soc_filtered_targets('SOC_WIFI_SUPPORTED == 1 and SOC_PM_SUPPORT_PMU_MODEM_STATE == 1'),
indirect=['target'],
)
def test_wifi_power_save_pd_modem(dut: Dut) -> None:
_run_test(dut)