mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
i2c: Acquire PM lock after acquiring mutex
This commit is contained in:
parent
29e69a12d3
commit
25147f2560
@ -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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user