bugfix for phy init failed when wifi deinit

This commit is contained in:
xueyunfei 2022-07-20 15:12:23 +08:00
parent af928313ab
commit 78ba8d406d

View File

@ -66,6 +66,8 @@ static DRAM_ATTR struct {
/* Indicate PHY is calibrated or not */
static bool s_is_phy_calibrated = false;
static bool s_is_phy_reg_stored = false;
/* Reference count of enabling PHY */
static uint8_t s_phy_access_ref = 0;
@ -220,12 +222,13 @@ static inline void phy_digital_regs_store(void)
{
if (s_phy_digital_regs_mem != NULL) {
phy_dig_reg_backup(true, s_phy_digital_regs_mem);
s_is_phy_reg_stored = true;
}
}
static inline void phy_digital_regs_load(void)
{
if (s_phy_digital_regs_mem != NULL) {
if (s_is_phy_reg_stored && s_phy_digital_regs_mem != NULL) {
phy_dig_reg_backup(false, s_phy_digital_regs_mem);
}
}
@ -328,7 +331,7 @@ void esp_phy_pd_mem_deinit(void)
s_phy_backup_mem_ref--;
if (s_phy_backup_mem_ref == 0) {
s_is_phy_calibrated = false;
s_is_phy_reg_stored = false;
free(s_phy_digital_regs_mem);
s_phy_digital_regs_mem = NULL;
}