serial: imx: Add Rx Fifo overrun error message
This patch enables the overrun error (ORE) interrupt and increases the counter in case of overrun. Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
ea33640a93
commit
f1f836e420
@ -449,6 +449,13 @@ static void imx_start_tx(struct uart_port *port)
|
|||||||
temp &= ~(UCR1_RRDYEN);
|
temp &= ~(UCR1_RRDYEN);
|
||||||
writel(temp, sport->port.membase + UCR1);
|
writel(temp, sport->port.membase + UCR1);
|
||||||
}
|
}
|
||||||
|
/* Clear any pending ORE flag before enabling interrupt */
|
||||||
|
temp = readl(sport->port.membase + USR2);
|
||||||
|
writel(temp | USR2_ORE, sport->port.membase + USR2);
|
||||||
|
|
||||||
|
temp = readl(sport->port.membase + UCR4);
|
||||||
|
temp |= UCR4_OREN;
|
||||||
|
writel(temp, sport->port.membase + UCR4);
|
||||||
|
|
||||||
temp = readl(sport->port.membase + UCR1);
|
temp = readl(sport->port.membase + UCR1);
|
||||||
writel(temp | UCR1_TXMPTYEN, sport->port.membase + UCR1);
|
writel(temp | UCR1_TXMPTYEN, sport->port.membase + UCR1);
|
||||||
@ -582,6 +589,7 @@ static irqreturn_t imx_int(int irq, void *dev_id)
|
|||||||
{
|
{
|
||||||
struct imx_port *sport = dev_id;
|
struct imx_port *sport = dev_id;
|
||||||
unsigned int sts;
|
unsigned int sts;
|
||||||
|
unsigned int sts2;
|
||||||
|
|
||||||
sts = readl(sport->port.membase + USR1);
|
sts = readl(sport->port.membase + USR1);
|
||||||
|
|
||||||
@ -598,6 +606,13 @@ static irqreturn_t imx_int(int irq, void *dev_id)
|
|||||||
if (sts & USR1_AWAKE)
|
if (sts & USR1_AWAKE)
|
||||||
writel(USR1_AWAKE, sport->port.membase + USR1);
|
writel(USR1_AWAKE, sport->port.membase + USR1);
|
||||||
|
|
||||||
|
sts2 = readl(sport->port.membase + USR2);
|
||||||
|
if (sts2 & USR2_ORE) {
|
||||||
|
dev_err(sport->port.dev, "Rx FIFO overrun\n");
|
||||||
|
sport->port.icount.overrun++;
|
||||||
|
writel(sts2 | USR2_ORE, sport->port.membase + USR2);
|
||||||
|
}
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user