Merge branch 'bugfix/delete_i2c_cmd_mux_semaphore_more_cleanly_v4.3' into 'release/v4.3'

driver/i2c: delete i2c cmd_mux semaphore more cleanly (backport 4.3)

See merge request espressif/esp-idf!13400
This commit is contained in:
Michael (XIAO Xufeng)
2021-07-02 10:58:38 +00:00
3 changed files with 6 additions and 0 deletions

View File

@@ -400,7 +400,9 @@ esp_err_t i2c_driver_delete(i2c_port_t i2c_num)
p_i2c->intr_handle = NULL;
if (p_i2c->cmd_mux) {
// Let any command in progress finish.
xSemaphoreTake(p_i2c->cmd_mux, portMAX_DELAY);
xSemaphoreGive(p_i2c->cmd_mux);
vSemaphoreDelete(p_i2c->cmd_mux);
}
if (p_i2c_obj[i2c_num]->cmd_evt_queue) {

View File

@@ -67,6 +67,9 @@ esp_err_t i2c_driver_install(i2c_port_t i2c_num, i2c_mode_t mode, size_t slv_rx_
/**
* @brief I2C driver delete
*
* @note This function does not guarantee thread safety.
* Please make sure that no thread will continuously hold semaphores before calling the delete function.
*
* @param i2c_num I2C port number
*
* @return