From 33e8d1e0b02b668a30e6de153a758ed904a8c7f2 Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Thu, 8 Apr 2021 14:28:26 -0700 Subject: [PATCH] dreiver/i2c: delete i2c cmd_mux semaphore more cleanly Merges https://github.com/espressif/esp-idf/pull/6848 --- components/driver/i2c.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/driver/i2c.c b/components/driver/i2c.c index 522555c866..584b5b3e8a 100644 --- a/components/driver/i2c.c +++ b/components/driver/i2c.c @@ -401,7 +401,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) {