This is an automated email from the ASF dual-hosted git repository.

jerpelea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 70f070fa1c riscv/esp32c6: Fix issue related esp32c6 usbserial driver.
70f070fa1c is described below

commit 70f070fa1c271c466a1c0eabc6dcbe56498118ef
Author: Felipe Moura <moura....@gmail.com>
AuthorDate: Sun Feb 23 20:24:34 2025 -0300

    riscv/esp32c6: Fix issue related esp32c6 usbserial driver.
    
    This commit disables optimization that alters ESP32C6 interrupt registers.
    Without this optimization, the USB serial driver does not work properly.
    This is a temporary workaround until a proper fix is found.
    
    Signed-off-by: Felipe Moura de Oliveira <moura....@gmail.com>
---
 arch/risc-v/src/common/espressif/esp_usbserial.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/risc-v/src/common/espressif/esp_usbserial.c 
b/arch/risc-v/src/common/espressif/esp_usbserial.c
index 8a25e590d2..b64136e3da 100644
--- a/arch/risc-v/src/common/espressif/esp_usbserial.c
+++ b/arch/risc-v/src/common/espressif/esp_usbserial.c
@@ -216,6 +216,12 @@ static void esp_shutdown(struct uart_dev_s *dev)
  *
  ****************************************************************************/
 
+/* Workaround: This function does not work when optimization is different
+ * from O0. This modification will be removed once a final solution is
+ * implemented.
+ */
+
+__attribute__((optimize("O0")))
 static void esp_txint(struct uart_dev_s *dev, bool enable)
 {
   if (enable)

Reply via email to