AnsweredAssumed Answered

MAX14830:Set RxFIFO trigger level

Question asked by Surendra Dhobale on Jun 21, 2017
Latest reply on Jun 21, 2017 by Yuri Muhin

Hello,

   I am facing the problem of the RX overrun in the max14830. I was trying to set the RxFIFO level to one value ( say 32 word), the value is set properly. Also enable the MAX310X_IRQ_RXFIFO_BIT and MAX310X_IRQ_TXFIFO_BIT.

i.e in drivers/tty/serial/max310x.c

/* Enable RX, TX, CTS change interrupts */ 
 val = MAX310X_IRQ_RXEMPTY_BIT | MAX310X_IRQ_TXEMPTY_BIT | MAX310X_IRQ_RXFIFO_BIT | MAX310X_IRQ_TXFIFO_BIT;
 max310x_port_write(port, MAX310X_IRQEN_REG, val | MAX310X_IRQ_CTS_BIT);

 

also added the trigger level,

max310x_port_write(port, MAX310X_FIFOTRIGLVL_REG,
                      MAX310X_FIFOTRIGLVL_RX(32) | MAX310X_FIFOTRIGLVL_TX(2));

Now when the rxdata reach the value , interrupt gerenated. But its only once. After that data is receieved more than the trigger level value, interrupt is not generate.

RXFIFO keep increasing data and once 128 word inside the FIFO, its RX overrun error occurs.

 

This overrun issue is not come in 9600 baud rate. But higher baud rate. I have checked this on kernel 3.14 and 4.1 kernel.

 

Why could be the issue ? How we can handle this ?

 

Thanks for the support !!

 

Regards,

Surendra

Outcomes