serial: sh-sci: Change checking for error rate of HSCIF
authorNobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Wed, 19 Nov 2014 22:58:27 +0000 (07:58 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Nov 2014 01:06:38 +0000 (17:06 -0800)
This changes negative values of error rate to be checked, because these
values are valid as error rate. And this changes in the process of adopting
a value close to 0.

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/sh-sci.c

index eb17c7124e72e678f8ac447a9b001abe156cb993..fccebbdf449f4d93264ec07df749d522680ee241 100644 (file)
@@ -1812,9 +1812,6 @@ static void sci_baud_calc_hscif(unsigned int bps, unsigned long freq,
                        err = DIV_ROUND_CLOSEST(freq, ((br + 1) * bps * sr *
                                               (1 << (2 * c + 1)) / 1000)) -
                                               1000;
-                       if (err < 0)
-                               continue;
-
                        /* Calc recv margin
                         * M: Receive margin (%)
                         * N: Ratio of bit rate to clock (N = sampling rate)
@@ -1829,7 +1826,7 @@ static void sci_baud_calc_hscif(unsigned int bps, unsigned long freq,
                         */
                        recv_margin = abs((500 -
                                        DIV_ROUND_CLOSEST(1000, sr << 1)) / 10);
-                       if (min_err > err) {
+                       if (abs(min_err) > abs(err)) {
                                min_err = err;
                                recv_max_margin = recv_margin;
                        } else if ((min_err == err) &&