请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AM623 工具/软件:
UART DMA 功能对于行业应用非常重要、一些应用使用了所有 UART 端口、即使在高波特率下也是如此。
只要应用程序加载增加、就需要 DMA 进行卸载、否则会任意/偶尔丢弃数据。
由于有多个 UART DMA 问题、一些线程与其他问题混为一谈、为了更好地跟踪、请专门针对 UART DMA 问题启动一个新线程。
#1。 该线程报告了使用 DMA 的 UART 传输异常长、通过破解代码不将 DMA 用于 UART TX 来避免。 它可用于测试目的、而不是用于 SDK10.x 的 UART DMA 解决方案
diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c
index 0b9c47172bc8..0952f08622c9 100644
--- a/drivers/tty/serial/8250/8250_omap.c
+++ b/drivers/tty/serial/8250/8250_omap.c
@@ -1042,6 +1042,10 @@ static int omap_8250_tx_dma(struct uart_8250_port *p)
unsigned int skip_byte = 0;
int ret;
+ /* HACK: do not use DMA for TX */
+ ret = -EINVAL;
+ goto err;
+
if (dma->tx_running)
return 0;
if (uart_tx_stopped(&p->port) || uart_circ_empty(xmit)) {
#2. 另一个用例需要 SDK9.2支持 UART DMA。