Hi Fabio,
Am 24.03.23 um 16:00 schrieb Stefan Wahren:
Hi Fabio,
Am 24.03.23 um 13:57 schrieb Fabio Estevam:
Hi Stefan,
On Fri, Mar 24, 2023 at 8:48 AM Ilpo Järvinen
<ilpo.jarvinen@xxxxxxxxxxxxxxx> wrote:
This has come up earlier, see e.g.:
https://lore.kernel.org/linux-serial/20221003110850.GA28338@xxxxxxxxxxxxxxxxxxxxxxxxxxxx/
My somewhat uninformed suggestion: if the overrun problems mostly
show up
with console ports, maybe the trigger level could depend on the port
being a console or not?
Does the change below help? Taking Ilpo's suggestion into account:
this breaks the boot / debug console completely, but i got the idea.
based on your patch, i successfully tested this:
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index f07c4f9ff13c..1aacaa637ede 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -1277,6 +1277,7 @@ static void imx_uart_clear_rx_errors(struct
imx_port *sport)
}
#define TXTL_DEFAULT 2 /* reset default */
+#define RXTL_DEFAULT_CONSOLE 1 /* reset default */
#define RXTL_DEFAULT 8 /* 8 characters or aging timer */
#define TXTL_DMA 8 /* DMA burst setting */
#define RXTL_DMA 9 /* DMA burst setting */
@@ -1286,6 +1287,9 @@ static void imx_uart_setup_ufcr(struct imx_port
*sport,
{
unsigned int val;
+ if (uart_console(&sport->port))
+ rxwl = RXTL_DEFAULT_CONSOLE; // fallback
+
/* set receiver / transmitter trigger level */
val = imx_uart_readl(sport, UFCR) & (UFCR_RFDIV | UFCR_DCEDTE);
val |= txwl << UFCR_TXTL_SHF | rxwl;