--- /dev/null
+From a10093c198538aa7b413198661dd83ad06e81a54 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 10 Dec 2018 18:52:35 -0500
+Subject: arm64: dts: rockchip: remove vdd_log from rock960 to fix a stability
+ issues
+
+[ Upstream commit 13682e524167cbd7e2a26c5e91bec765f0f96273 ]
+
+When the performance governor is set as default, the rock960 hangs
+around one minute after booting, whatever the activity is (idle, key
+pressed, loaded, ...).
+
+Based on the commit log found at https://patchwork.kernel.org/patch/10092377/
+
+"vdd_log has no consumer and therefore will not be set to a specific
+voltage. Still the PWM output pin gets configured and thence the vdd_log
+output voltage will changed from it's default. Depending on the idle
+state of the PWM this will slightly over or undervoltage the logic supply
+of the RK3399 and cause instability with GbE (undervoltage) and PCIe
+(overvoltage). Since the default value set by a voltage divider is the
+correct supply voltage and we don't need to change it during runtime we
+remove the rail from the devicetree completely so the PWM pin will not
+be configured."
+
+After removing the vdd-log from the rock960's specific DT, the board
+does no longer hang and shows a stable behavior.
+
+Apply the same change for the rock960 by removing the vdd-log from the
+DT.
+
+Fixes: 874846f1fccd ("arm64: dts: rockchip: add 96boards RK3399 Ficus board")
+Cc: stable@vger.kernel.org
+Tested-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
+Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
+Signed-off-by: Heiko Stuebner <heiko@sntech.de>
+[sl: adjust filename for 4.19]
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/arm64/boot/dts/rockchip/rk3399-ficus.dts | 12 ------------
+ 1 file changed, 12 deletions(-)
+
+diff --git a/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts b/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
+index 8978d924eb83..85cf0b6bdda9 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
++++ b/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
+@@ -75,18 +75,6 @@
+ regulator-always-on;
+ vin-supply = <&vcc_sys>;
+ };
+-
+- vdd_log: vdd-log {
+- compatible = "pwm-regulator";
+- pwms = <&pwm2 0 25000 0>;
+- regulator-name = "vdd_log";
+- regulator-min-microvolt = <800000>;
+- regulator-max-microvolt = <1400000>;
+- regulator-always-on;
+- regulator-boot-on;
+- vin-supply = <&vcc_sys>;
+- };
+-
+ };
+
+ &cpu_l0 {
+--
+2.19.1
+
--- /dev/null
+From 5e266afea8fbd365236d2848d07e86d163f5a7ca Mon Sep 17 00:00:00 2001
+From: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
+Date: Fri, 26 Oct 2018 15:10:24 -0700
+Subject: Revert "x86/e820: put !E820_TYPE_RAM regions into memblock.reserved"
+
+[ Upstream commit 9fd61bc95130d4971568b89c9548b5e0a4e18e0e ]
+
+commit 124049decbb1 ("x86/e820: put !E820_TYPE_RAM regions into
+memblock.reserved") breaks movable_node kernel option because it changed
+the memory gap range to reserved memblock. So, the node is marked as
+Normal zone even if the SRAT has Hot pluggable affinity.
+
+ =====================================================================
+ kernel: BIOS-e820: [mem 0x0000180000000000-0x0000180fffffffff] usable
+ kernel: BIOS-e820: [mem 0x00001c0000000000-0x00001c0fffffffff] usable
+ ...
+ kernel: reserved[0x12]#011[0x0000181000000000-0x00001bffffffffff], 0x000003f000000000 bytes flags: 0x0
+ ...
+ kernel: ACPI: SRAT: Node 2 PXM 6 [mem 0x180000000000-0x1bffffffffff] hotplug
+ kernel: ACPI: SRAT: Node 3 PXM 7 [mem 0x1c0000000000-0x1fffffffffff] hotplug
+ ...
+ kernel: Movable zone start for each node
+ kernel: Node 3: 0x00001c0000000000
+ kernel: Early memory node ranges
+ ...
+ =====================================================================
+
+The original issue is fixed by the former patches, so let's revert commit
+124049decbb1 ("x86/e820: put !E820_TYPE_RAM regions into
+memblock.reserved").
+
+Link: http://lkml.kernel.org/r/20181002143821.5112-4-msys.mizuma@gmail.com
+Signed-off-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
+Reviewed-by: Pavel Tatashin <pavel.tatashin@microsoft.com>
+Acked-by: Ingo Molnar <mingo@kernel.org>
+Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
+Cc: Michal Hocko <mhocko@kernel.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+Cc: Oscar Salvador <osalvador@suse.de>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/x86/kernel/e820.c | 15 +++------------
+ 1 file changed, 3 insertions(+), 12 deletions(-)
+
+diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
+index c88c23c658c1..d1f25c831447 100644
+--- a/arch/x86/kernel/e820.c
++++ b/arch/x86/kernel/e820.c
+@@ -1248,7 +1248,6 @@ void __init e820__memblock_setup(void)
+ {
+ int i;
+ u64 end;
+- u64 addr = 0;
+
+ /*
+ * The bootstrap memblock region count maximum is 128 entries
+@@ -1265,21 +1264,13 @@ void __init e820__memblock_setup(void)
+ struct e820_entry *entry = &e820_table->entries[i];
+
+ end = entry->addr + entry->size;
+- if (addr < entry->addr)
+- memblock_reserve(addr, entry->addr - addr);
+- addr = end;
+ if (end != (resource_size_t)end)
+ continue;
+
+- /*
+- * all !E820_TYPE_RAM ranges (including gap ranges) are put
+- * into memblock.reserved to make sure that struct pages in
+- * such regions are not left uninitialized after bootup.
+- */
+ if (entry->type != E820_TYPE_RAM && entry->type != E820_TYPE_RESERVED_KERN)
+- memblock_reserve(entry->addr, entry->size);
+- else
+- memblock_add(entry->addr, entry->size);
++ continue;
++
++ memblock_add(entry->addr, entry->size);
+ }
+
+ /* Throw away partial pages: */
+--
+2.19.1
+