ar71xx: bump to v4.14
[openwrt/staging/blogic.git] / target / linux / ar71xx / patches-4.14 / 702-MIPS-ath79-fixup-routerboot-board-parameter.patch
diff --git a/target/linux/ar71xx/patches-4.14/702-MIPS-ath79-fixup-routerboot-board-parameter.patch b/target/linux/ar71xx/patches-4.14/702-MIPS-ath79-fixup-routerboot-board-parameter.patch
new file mode 100644 (file)
index 0000000..b8715bb
--- /dev/null
@@ -0,0 +1,43 @@
+From: Gabor Juhos <juhosg@freemail.hu>
+Date: Sat, 2 Dec 2017 19:15:29 +0100
+Subject: [PATCH] MIPS: ath79: fix board detection with newer RouterBOOT versions
+
+Recent RouterBOOT version (at least version 3.41 on RB911G-5HPacD)
+use "Board=" kernel parameter instead of "board=" to pass the board
+name to the kernel. Due to this change the board detection code is
+not working on the devices shipped with the new RouterBOOT version.
+Because the kernel is unable to identify these boards they become
+unusable despite that they are supported by the current code.
+
+Update the prom_init code to convert the 'Board' kernel parameter to
+'board'. After this change, the board detection works also with the
+new RouterBOOT versions.
+
+Signed-off-by: Gabor Juhos <juhosg@freemail.hu>
+---
+--- a/arch/mips/ath79/prom.c
++++ b/arch/mips/ath79/prom.c
+@@ -104,6 +104,7 @@ static int __init ath79_prom_init_myload
+ void __init prom_init(void)
+ {
+       const char *env;
++      char *c;
+       if (ath79_prom_init_myloader())
+               return;
+@@ -137,6 +138,15 @@ void __init prom_init(void)
+       }
+ #endif
++      /*
++       * RouterBOOT uses "Board" kernel parameter instead of "board" since
++       * version 3.41 (or so). Replace the first character of the parameter
++       * to keep board detection working.
++       */
++      c = strstr(arcs_cmdline, "Board=");
++      if (c)
++              c[0] = 'b';
++
+       if (strstr(arcs_cmdline, "board=750Gr3") ||
+           strstr(arcs_cmdline, "board=750i") ||
+           strstr(arcs_cmdline, "board=750-hb") ||