i2c: Acquire PM lock after acquiring mutex

This commit is contained in:
Sachin Parekh 2020-12-22 00:47:30 +05:30
parent 29e69a12d3
commit 25147f2560

View File

@ -1284,12 +1284,12 @@ esp_err_t i2c_master_cmd_begin(i2c_port_t i2c_num, i2c_cmd_handle_t cmd_handle,
i2c_obj_t* p_i2c = p_i2c_obj[i2c_num]; i2c_obj_t* p_i2c = p_i2c_obj[i2c_num];
portTickType ticks_start = xTaskGetTickCount(); portTickType ticks_start = xTaskGetTickCount();
portBASE_TYPE res = xSemaphoreTake(p_i2c->cmd_mux, ticks_to_wait); portBASE_TYPE res = xSemaphoreTake(p_i2c->cmd_mux, ticks_to_wait);
#ifdef CONFIG_PM_ENABLE
esp_pm_lock_acquire(p_i2c->pm_lock);
#endif
if (res == pdFALSE) { if (res == pdFALSE) {
return ESP_ERR_TIMEOUT; return ESP_ERR_TIMEOUT;
} }
#ifdef CONFIG_PM_ENABLE
esp_pm_lock_acquire(p_i2c->pm_lock);
#endif
xQueueReset(p_i2c->cmd_evt_queue); xQueueReset(p_i2c->cmd_evt_queue);
if (p_i2c->status == I2C_STATUS_TIMEOUT if (p_i2c->status == I2C_STATUS_TIMEOUT
|| I2C[i2c_num]->status_reg.bus_busy == 1) { || I2C[i2c_num]->status_reg.bus_busy == 1) {