diff options
Diffstat (limited to 'target/linux/ar71xx/patches-3.18/728-MIPS-ath79-fix-restart.patch')
-rw-r--r-- | target/linux/ar71xx/patches-3.18/728-MIPS-ath79-fix-restart.patch | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/target/linux/ar71xx/patches-3.18/728-MIPS-ath79-fix-restart.patch b/target/linux/ar71xx/patches-3.18/728-MIPS-ath79-fix-restart.patch new file mode 100644 index 0000000..612078c --- /dev/null +++ b/target/linux/ar71xx/patches-3.18/728-MIPS-ath79-fix-restart.patch @@ -0,0 +1,20 @@ +--- a/arch/mips/ath79/setup.c ++++ b/arch/mips/ath79/setup.c +@@ -40,6 +40,7 @@ static char ath79_sys_type[ATH79_SYS_TYP + + static void ath79_restart(char *command) + { ++ local_irq_disable(); + ath79_device_reset_set(AR71XX_RESET_FULL_CHIP); + for (;;) + if (cpu_wait) +--- a/arch/mips/include/asm/mach-ath79/ath79.h ++++ b/arch/mips/include/asm/mach-ath79/ath79.h +@@ -144,6 +144,7 @@ static inline u32 ath79_pll_rr(unsigned + 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) |