bcm53xx: fix earlycon regression in kernel 4.14
authorRafał Miłecki <rafal@milecki.pl>
Thu, 29 Mar 2018 13:10:01 +0000 (15:10 +0200)
committerRafał Miłecki <rafal@milecki.pl>
Thu, 29 Mar 2018 13:10:19 +0000 (15:10 +0200)
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
target/linux/bcm53xx/patches-4.14/910-Revert-earlycon-initialise-baud-field-of-earlycon-de.patch [new file with mode: 0644]

diff --git a/target/linux/bcm53xx/patches-4.14/910-Revert-earlycon-initialise-baud-field-of-earlycon-de.patch b/target/linux/bcm53xx/patches-4.14/910-Revert-earlycon-initialise-baud-field-of-earlycon-de.patch
new file mode 100644 (file)
index 0000000..025781a
--- /dev/null
@@ -0,0 +1,33 @@
+From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
+Subject: [PATCH] Revert "earlycon: initialise baud field of earlycon device
+ structure"
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This reverts commit 31cb9a8575ca04f47ea113434d4782b695638b62.
+
+It broke earlycon on BCM5301X. Using:
+1) uartclk 1843200 (BASE_BAUD * 16)
+2) early_console_dev.baud 115200
+results in init_port() calculating UART divisor 1. That's a wrong value
+(default one is 54) that breaks serial console output.
+
+Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
+---
+
+--- a/drivers/tty/serial/earlycon.c
++++ b/drivers/tty/serial/earlycon.c
+@@ -283,12 +283,7 @@ int __init of_setup_earlycon(const struc
+               }
+       }
+-      val = of_get_flat_dt_prop(node, "current-speed", NULL);
+-      if (val)
+-              early_console_dev.baud = be32_to_cpu(*val);
+-
+       if (options) {
+-              early_console_dev.baud = simple_strtoul(options, NULL, 0);
+               strlcpy(early_console_dev.options, options,
+                       sizeof(early_console_dev.options));
+       }