Преглед на файлове

Merge branch 'bugfix/phy_init_failed_when_wifi_deinit' into 'master'

bugfix for phy init failed when wifi deinit

Closes WIFI-4631

See merge request espressif/esp-idf!19127
Jiang Jiang Jian преди 3 години
родител
ревизия
080ba9a80e
променени са 1 файла, в които са добавени 5 реда и са изтрити 2 реда
  1. 5 2
      components/esp_phy/src/phy_init.c

+ 5 - 2
components/esp_phy/src/phy_init.c

@@ -59,6 +59,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;
 
@@ -213,12 +215,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);
     }
 }
@@ -325,7 +328,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;
     }