Просмотр исходного кода

dreiver/i2c: delete i2c cmd_mux semaphore more cleanly

Merges https://github.com/espressif/esp-idf/pull/6847
Melissa LeBlanc-Williams 4 лет назад
Родитель
Сommit
59d08d4467
1 измененных файлов с 2 добавлено и 0 удалено
  1. 2 0
      components/driver/i2c.c

+ 2 - 0
components/driver/i2c.c

@@ -367,7 +367,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) {