From eb8a4fe0dc5db5f586ae26d04aa132c76535b27c Mon Sep 17 00:00:00 2001 From: Vikas Manocha Date: Fri, 21 Nov 2014 10:34:23 -0800 Subject: [PATCH] serial: pl01x: avoid pl01x type check two times Signed-off-by: Vikas Manocha Acked-by: Simon Glass --- drivers/serial/serial_pl01x.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/drivers/serial/serial_pl01x.c b/drivers/serial/serial_pl01x.c index 2a6b61d40d..e1bf4965f9 100644 --- a/drivers/serial/serial_pl01x.c +++ b/drivers/serial/serial_pl01x.c @@ -72,22 +72,19 @@ static int pl01x_tstc(struct pl01x_regs *regs) static int pl01x_generic_serial_init(struct pl01x_regs *regs, enum pl01x_type type) { -#ifdef CONFIG_PL011_SERIAL_FLUSH_ON_INIT - if (type == TYPE_PL011) { - /* Empty RX fifo if necessary */ - if (readl(®s->pl011_cr) & UART_PL011_CR_UARTEN) { - while (!(readl(®s->fr) & UART_PL01x_FR_RXFE)) - readl(®s->dr); - } - } -#endif - switch (type) { case TYPE_PL010: /* disable everything */ writel(0, ®s->pl010_cr); break; case TYPE_PL011: +#ifdef CONFIG_PL011_SERIAL_FLUSH_ON_INIT + /* Empty RX fifo if necessary */ + if (readl(®s->pl011_cr) & UART_PL011_CR_UARTEN) { + while (!(readl(®s->fr) & UART_PL01x_FR_RXFE)) + readl(®s->dr); + } +#endif /* disable everything */ writel(0, ®s->pl011_cr); break;