diff --git a/patches/openwrt/0010-ar71xx-add-flush-reset-register-writes-should-fix-restart-issues-17839.patch b/patches/openwrt/0010-ar71xx-add-flush-reset-register-writes-should-fix-restart-issues-17839.patch new file mode 100644 index 00000000..20c99432 --- /dev/null +++ b/patches/openwrt/0010-ar71xx-add-flush-reset-register-writes-should-fix-restart-issues-17839.patch @@ -0,0 +1,24 @@ +From: Matthias Schiffer +Date: Fri, 9 Jan 2015 09:27:39 +0100 +Subject: ar71xx: add flush reset register writes, should fix restart issues (#17839) + +Backport of r43777 + +diff --git a/target/linux/ar71xx/patches-3.10/728-MIPS-ath79-fix-restart.patch b/target/linux/ar71xx/patches-3.10/728-MIPS-ath79-fix-restart.patch +index 0027c59..612078c 100644 +--- a/target/linux/ar71xx/patches-3.10/728-MIPS-ath79-fix-restart.patch ++++ b/target/linux/ar71xx/patches-3.10/728-MIPS-ath79-fix-restart.patch +@@ -8,3 +8,13 @@ + 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) diff --git a/patches/openwrt/0010-ar71xx-add-workaround-patch-for-WDR3600-4300-reboot.patch b/patches/openwrt/0010-ar71xx-add-workaround-patch-for-WDR3600-4300-reboot.patch deleted file mode 100644 index a0589145..00000000 --- a/patches/openwrt/0010-ar71xx-add-workaround-patch-for-WDR3600-4300-reboot.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Matthias Schiffer -Date: Mon, 15 Dec 2014 00:17:38 +0100 -Subject: ar71xx: add workaround patch for WDR3600/4300 reboot - -While it isn't clear why this patch helps, it doesn't seem to have any negative -effects, so let's include it for now... - -diff --git a/target/linux/ar71xx/patches-3.10/903-MIPS-ath79-fix-restart.patch b/target/linux/ar71xx/patches-3.10/903-MIPS-ath79-fix-restart.patch -new file mode 100644 -index 0000000..86f33f3 ---- /dev/null -+++ b/target/linux/ar71xx/patches-3.10/903-MIPS-ath79-fix-restart.patch -@@ -0,0 +1,11 @@ -+--- a/arch/mips/ath79/common.c -++++ b/arch/mips/ath79/common.c -+@@ -83,6 +83,8 @@ void ath79_device_reset_set(u32 mask) -+ spin_lock_irqsave(&ath79_device_reset_lock, flags); -+ t = ath79_reset_rr(reg); -+ ath79_reset_wr(reg, t | mask); -++ if (mask == AR71XX_RESET_FULL_CHIP) -++ for(;;); -+ spin_unlock_irqrestore(&ath79_device_reset_lock, flags); -+ } -+ EXPORT_SYMBOL_GPL(ath79_device_reset_set);