Fix bug that when we do full calibration init data bin is not used

This commit is contained in:
Jack
2018-01-04 11:48:24 +08:00
parent eb659e401d
commit 11c0daef62
2 changed files with 15 additions and 9 deletions

View File

@@ -266,17 +266,17 @@ void esp_phy_load_cal_and_init(void)
abort();
}
#ifdef CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE
esp_phy_calibration_mode_t calibration_mode = PHY_RF_CAL_PARTIAL;
if (rtc_get_reset_reason(0) == DEEPSLEEP_RESET) {
calibration_mode = PHY_RF_CAL_NONE;
}
const esp_phy_init_data_t* init_data = esp_phy_get_init_data();
if (init_data == NULL) {
ESP_LOGE(TAG, "failed to obtain PHY init data");
abort();
}
#ifdef CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE
esp_phy_calibration_mode_t calibration_mode = PHY_RF_CAL_PARTIAL;
if (rtc_get_reset_reason(0) == DEEPSLEEP_RESET) {
calibration_mode = PHY_RF_CAL_NONE;
}
esp_err_t err = esp_phy_load_cal_data_from_nvs(cal_data);
if (err != ESP_OK) {
ESP_LOGW(TAG, "failed to load RF calibration data (0x%x), falling back to full calibration", err);
@@ -290,11 +290,12 @@ void esp_phy_load_cal_and_init(void)
} else {
err = ESP_OK;
}
esp_phy_release_init_data(init_data);
#else
esp_phy_rf_init(NULL, PHY_RF_CAL_FULL, cal_data);
esp_phy_rf_init(init_data, PHY_RF_CAL_FULL, cal_data);
#endif
esp_phy_release_init_data(init_data);
free(cal_data); // PHY maintains a copy of calibration data, so we can free this
}