imx6: disable dma on uart
When this target got updated to 4.14, this patch got removed to re-evaluate if it was still needed. Extensive testing now shows this issue is still present. Let's re-add the patch to fix it for now. As the uart bus is very low bandwidth .. performance impact is negligible. Boot log: [ 22.513051] imx-uart 2020000.serial: DMA transaction error. [ 22.522721] imx-uart 2020000.serial: DMA transaction error. As a sidenote: The patch mentiones an issue with RS485, but the bootlog errors above were recorded with the uart ports in standard RS232 mode. Compile/Run-tested on imx6/GW5200 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
		 Koen Vandeputte
					Koen Vandeputte
				
			
				
					committed by
					
						 Felix Fietkau
						Felix Fietkau
					
				
			
			
				
	
			
			
			 Felix Fietkau
						Felix Fietkau
					
				
			
						parent
						
							aad1f11efe
						
					
				
				
					commit
					efb362cd93
				
			
							
								
								
									
										23
									
								
								target/linux/imx6/patches-4.14/210-disable-uart-dma.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								target/linux/imx6/patches-4.14/210-disable-uart-dma.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | Based on following upstream patch by Tim Harvey (Gateworks): | ||||||
|  |  | ||||||
|  | https://github.com/Gateworks/openwrt/commit/80a01b6582f94c4547f39d3a25e0a1e9b6eb9877 | ||||||
|  |  | ||||||
|  | TX complete DMA messages are getting missed. | ||||||
|  | This is also currently an issue in mainline. | ||||||
|  | For now we will disable DMA in serial/imx.c. | ||||||
|  |  | ||||||
|  | This resolves an issue encountered with RS485 transmit. | ||||||
|  |  | ||||||
|  | --- a/drivers/tty/serial/imx.c | ||||||
|  | +++ b/drivers/tty/serial/imx.c | ||||||
|  | @@ -1268,10 +1268,6 @@ static int imx_startup(struct uart_port | ||||||
|  |   | ||||||
|  |  	writel(temp & ~UCR4_DREN, sport->port.membase + UCR4); | ||||||
|  |   | ||||||
|  | -	/* Can we enable the DMA support? */ | ||||||
|  | -	if (!uart_console(port) && !sport->dma_is_inited) | ||||||
|  | -		imx_uart_dma_init(sport); | ||||||
|  | - | ||||||
|  |  	spin_lock_irqsave(&sport->port.lock, flags); | ||||||
|  |  	/* Reset fifo's and state machines */ | ||||||
|  |  	i = 100; | ||||||
		Reference in New Issue
	
	Block a user