From e8183a6c6238a192fba32ac47d75fd076ca487a6 Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Wed, 19 Jan 2011 17:51:37 +0900 Subject: [PATCH] serial: sh-sci: Fix up ioremap handling. We were using an IS_ERR() check for the ioremap case, presumably because this matched the old custom ioremap call that sh64 was providing. Now that all ioremap() implementations trap the IS_ERR case and hand back a NULL, check for that instead. Signed-off-by: Paul Mundt --- drivers/serial/sh-sci.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c index 31ac092b16d8..44d5bd10702b 100644 --- a/drivers/serial/sh-sci.c +++ b/drivers/serial/sh-sci.c @@ -1482,6 +1482,7 @@ static unsigned int sci_scbrr_calc(unsigned int algo_id, unsigned int bps, /* Warn, but use a safe default */ WARN_ON(1); + return ((freq + 16 * bps) / (32 * bps) - 1); } @@ -1517,6 +1518,7 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios, sci_out(port, SCFCR, scfcr | SCFCR_RFRST | SCFCR_TFRST); smr_val = sci_in(port, SCSMR) & 3; + if ((termios->c_cflag & CSIZE) == CS7) smr_val |= 0x40; if (termios->c_cflag & PARENB) @@ -1612,8 +1614,7 @@ static void sci_config_port(struct uart_port *port, int flags) if (port->flags & UPF_IOREMAP) { port->membase = ioremap_nocache(port->mapbase, 0x40); - - if (IS_ERR(port->membase)) + if (unlikely(!port->membase)) dev_err(port->dev, "can't remap port#%d\n", port->line); } else { /*