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

Merge branch 'bugfix/i2s_return_error_code' into 'master'

i2s: revert the reading/writing can return timeout error

Closes IDFGH-6464

See merge request espressif/esp-idf!16546
Kevin (Lao Kaiyao) 4 лет назад
Родитель
Сommit
cc3adce8d7
1 измененных файлов с 4 добавлено и 10 удалено
  1. 4 10
      components/driver/i2s.c

+ 4 - 10
components/driver/i2s.c

@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
+ * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
  *
  * SPDX-License-Identifier: Apache-2.0
  */
@@ -1989,7 +1989,6 @@ esp_err_t i2s_driver_uninstall(i2s_port_t i2s_num)
  */
 esp_err_t i2s_write(i2s_port_t i2s_num, const void *src, size_t size, size_t *bytes_written, TickType_t ticks_to_wait)
 {
-    esp_err_t ret = ESP_OK;
     char *data_ptr, *src_byte;
     size_t bytes_can_write;
     *bytes_written = 0;
@@ -2003,7 +2002,6 @@ esp_err_t i2s_write(i2s_port_t i2s_num, const void *src, size_t size, size_t *by
     while (size > 0) {
         if (p_i2s[i2s_num]->tx->rw_pos == p_i2s[i2s_num]->tx->buf_size || p_i2s[i2s_num]->tx->curr_ptr == NULL) {
             if (xQueueReceive(p_i2s[i2s_num]->tx->queue, &p_i2s[i2s_num]->tx->curr_ptr, ticks_to_wait) == pdFALSE) {
-                ret = ESP_ERR_TIMEOUT;
                 break;
             }
             p_i2s[i2s_num]->tx->rw_pos = 0;
@@ -2025,7 +2023,7 @@ esp_err_t i2s_write(i2s_port_t i2s_num, const void *src, size_t size, size_t *by
     esp_pm_lock_release(p_i2s[i2s_num]->pm_lock);
 #endif
     xSemaphoreGive(p_i2s[i2s_num]->tx->mux);
-    return ret;
+    return ESP_OK;
 }
 
 /**
@@ -2050,7 +2048,6 @@ esp_err_t i2s_write(i2s_port_t i2s_num, const void *src, size_t size, size_t *by
  */
 esp_err_t i2s_write_expand(i2s_port_t i2s_num, const void *src, size_t size, size_t src_bits, size_t aim_bits, size_t *bytes_written, TickType_t ticks_to_wait)
 {
-    esp_err_t ret = ESP_OK;
     char *data_ptr;
     int bytes_can_write, tail;
     int src_bytes, aim_bytes, zero_bytes;
@@ -2085,7 +2082,6 @@ esp_err_t i2s_write_expand(i2s_port_t i2s_num, const void *src, size_t size, siz
     while (size > 0) {
         if (p_i2s[i2s_num]->tx->rw_pos == p_i2s[i2s_num]->tx->buf_size || p_i2s[i2s_num]->tx->curr_ptr == NULL) {
             if (xQueueReceive(p_i2s[i2s_num]->tx->queue, &p_i2s[i2s_num]->tx->curr_ptr, ticks_to_wait) == pdFALSE) {
-                ret = ESP_ERR_TIMEOUT;
                 break;
             }
             p_i2s[i2s_num]->tx->rw_pos = 0;
@@ -2109,7 +2105,7 @@ esp_err_t i2s_write_expand(i2s_port_t i2s_num, const void *src, size_t size, siz
         p_i2s[i2s_num]->tx->rw_pos += bytes_can_write;
     }
     xSemaphoreGive(p_i2s[i2s_num]->tx->mux);
-    return ret;
+    return ESP_OK;
 }
 
 /**
@@ -2128,7 +2124,6 @@ esp_err_t i2s_write_expand(i2s_port_t i2s_num, const void *src, size_t size, siz
  */
 esp_err_t i2s_read(i2s_port_t i2s_num, void *dest, size_t size, size_t *bytes_read, TickType_t ticks_to_wait)
 {
-    esp_err_t ret = ESP_OK;
     char *data_ptr, *dest_byte;
     int bytes_can_read;
     *bytes_read = 0;
@@ -2142,7 +2137,6 @@ esp_err_t i2s_read(i2s_port_t i2s_num, void *dest, size_t size, size_t *bytes_re
     while (size > 0) {
         if (p_i2s[i2s_num]->rx->rw_pos == p_i2s[i2s_num]->rx->buf_size || p_i2s[i2s_num]->rx->curr_ptr == NULL) {
             if (xQueueReceive(p_i2s[i2s_num]->rx->queue, &p_i2s[i2s_num]->rx->curr_ptr, ticks_to_wait) == pdFALSE) {
-                ret = ESP_ERR_TIMEOUT;
                 break;
             }
             p_i2s[i2s_num]->rx->rw_pos = 0;
@@ -2163,7 +2157,7 @@ esp_err_t i2s_read(i2s_port_t i2s_num, void *dest, size_t size, size_t *bytes_re
     esp_pm_lock_release(p_i2s[i2s_num]->pm_lock);
 #endif
     xSemaphoreGive(p_i2s[i2s_num]->rx->mux);
-    return ret;
+    return ESP_OK;
 }
 
 esp_err_t i2s_priv_register_object(void *driver_obj, int port_id)