serial: ucc_uart: limit brg-frequency workaround to PPC32
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Thu, 28 Nov 2019 14:55:38 +0000 (15:55 +0100)
committerLi Yang <leoyang.li@nxp.com>
Mon, 9 Dec 2019 19:54:35 +0000 (13:54 -0600)
According to Timur Tabi

    This bug in older U-Boots is definitely PowerPC-specific

So before allowing this driver to be built for platforms other than
PPC32, make sure that we don't accept malformed device trees on those
other platforms.

Suggested-by: Timur Tabi <timur@kernel.org>
Reviewed-by: Timur Tabi <timur@kernel.org>
Acked-by: Timur Tabi <timur@kernel.org>
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Li Yang <leoyang.li@nxp.com>
drivers/tty/serial/ucc_uart.c

index c055abf..9436b93 100644 (file)
@@ -1392,6 +1392,13 @@ static int ucc_uart_probe(struct platform_device *ofdev)
        if (val)
                qe_port->port.uartclk = val;
        else {
+               if (!IS_ENABLED(CONFIG_PPC32)) {
+                       dev_err(&ofdev->dev,
+                               "invalid brg-frequency in device tree\n");
+                       ret = -EINVAL;
+                       goto out_np;
+               }
+
                /*
                 * Older versions of U-Boot do not initialize the brg-frequency
                 * property, so in this case we assume the BRG frequency is