UDOOboard / linux_kernel

Kernel Linux Repository for UDOO
Other
38 stars 43 forks source link

Avoid UART6 Rx FIFO overrun issue by disabling DMA while in low-latency mode. #16

Closed bander9289 closed 8 years ago

bander9289 commented 8 years ago

Based on:

http://forum.embeddedarm.com/showthread.php?1170-UART-Rx-Fifo-Overrun-Error

bander9289 commented 8 years ago

@fmntf Interesting ... This change was required for UART6 to work for both myself and 1chi. 1chi wasn't fully supportive of the implementation, but he recognized that this change made it work, as at least one other forum member noted as well.

Which kernel release did you see it working out of the box on? If I was building out of the incorrect branch, which is the correct branch? The '3.14-1.0.x-udoo' branch is what is specified on the wiki:

http://www.udoo.org/docs-neo/Kernel_Hacking/Get_the_sources.html

fmntf commented 8 years ago

Hi. Yes, 3.14-1.0.x-udoo is the right branch. Please note there are some changes on the kernel (mostly on the defconfig) between the latest December release and the current branch. I have tested UART6 today and it works without this patch. I double tested it by putting printk in both the branches of the if.

bander9289 commented 8 years ago

Good. I'm glad it works without this patch. I didn't realize that you were talking about changes made since December.

fmntf commented 8 years ago

Actually I don't know if the commits in December-January fixed the serial port or not. I did not try to build an older version, today I just tried to build the kernel and found the serial working.

Could you please confirm that it is working for you too?

modjo756 commented 8 years ago

Hi Francesco, with udoobuntu2Rc2 it's necessary to add this patch to have Rx functional (tested last week with a fresh install)

fmntf commented 8 years ago

Which patch? The one in this pull request or the one from @graugans? @ektor5 , since you are mantaining this kernel, please have a look and fix this.

graugans commented 8 years ago

The patch is not from me. I have to check when back home

modjo756 commented 8 years ago

This is the patch that i use with yocto that working fine :

Index:

git/drivers/tty/serial/imx.c

--- git.orig/drivers/tty/serial/imx.c 2016-05-12 15:30:47.840863698 +0200 +++ git/drivers/tty/serial/imx.c 2016-05-12 15:35:28.120858578 +0200 @@ -1221,7 +1221,8 @@

/* Can we enable the DMA support? */
if (is_imx6q_uart(sport) && !uart_console(port)
fmntf commented 8 years ago

The if is_imx6q_uart fails on imx6sx. (Try to put a printk inside the if.) This patch is worthless for UDOO Neo, isn't it?

modjo756 commented 8 years ago

If is_imx6q_uart fails on imx6sx, what is the good instruction ?

fmntf commented 8 years ago

That's not the point. This pull requests is about fixing UART6 on Neo, using code that will not be executed on Neo. I tested UART6 (after exporting it in the device tree editor) and it works for me.

I will definitely close this pull request (because is worthless on Neo). If you find other issues on UART6, please open a separate bug with instructions on how to reproduce it. Thank you!