summaryrefslogtreecommitdiff
path: root/target/linux/ath79/patches-4.14/0013-MIPS-ath79-fix-system-restart.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ath79/patches-4.14/0013-MIPS-ath79-fix-system-restart.patch')
-rw-r--r--target/linux/ath79/patches-4.14/0013-MIPS-ath79-fix-system-restart.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/target/linux/ath79/patches-4.14/0013-MIPS-ath79-fix-system-restart.patch b/target/linux/ath79/patches-4.14/0013-MIPS-ath79-fix-system-restart.patch
new file mode 100644
index 0000000..ecf275d
--- /dev/null
+++ b/target/linux/ath79/patches-4.14/0013-MIPS-ath79-fix-system-restart.patch
@@ -0,0 +1,39 @@
+From 11562939754b8f877562d9a137854022eb521716 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Mon, 5 Mar 2018 11:33:54 +0100
+Subject: [PATCH 13/27] MIPS: ath79: fix system restart
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+Signed-off-by: John Crispin <john@phrozen.org>
+---
+ arch/mips/ath79/setup.c | 1 +
+ arch/mips/include/asm/mach-ath79/ath79.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/arch/mips/ath79/setup.c b/arch/mips/ath79/setup.c
+index f206dafbb0a3..26a058d58d37 100644
+--- a/arch/mips/ath79/setup.c
++++ b/arch/mips/ath79/setup.c
+@@ -40,6 +40,7 @@ static char ath79_sys_type[ATH79_SYS_TYPE_LEN];
+
+ static void ath79_restart(char *command)
+ {
++ local_irq_disable();
+ ath79_device_reset_set(AR71XX_RESET_FULL_CHIP);
+ for (;;)
+ if (cpu_wait)
+diff --git a/arch/mips/include/asm/mach-ath79/ath79.h b/arch/mips/include/asm/mach-ath79/ath79.h
+index 441faa92c3cd..6e6c0fead776 100644
+--- a/arch/mips/include/asm/mach-ath79/ath79.h
++++ b/arch/mips/include/asm/mach-ath79/ath79.h
+@@ -134,6 +134,7 @@ static inline u32 ath79_pll_rr(unsigned reg)
+ static inline void ath79_reset_wr(unsigned reg, u32 val)
+ {
+ __raw_writel(val, ath79_reset_base + reg);
++ (void) __raw_readl(ath79_reset_base + reg); /* flush */
+ }
+
+ static inline u32 ath79_reset_rr(unsigned reg)
+--
+2.11.0
+