[openwrt/openwrt] ath79: read back reset register
LEDE Commits
lede-commits at lists.infradead.org
Thu Jan 11 06:36:52 PST 2024
blocktrron pushed a commit to openwrt/openwrt.git, branch openwrt-22.03:
https://git.openwrt.org/a08553b3b36cc309d3f112208f8451ad85d240eb
commit a08553b3b36cc309d3f112208f8451ad85d240eb
Author: David Bauer <mail at david-bauer.net>
AuthorDate: Thu Jan 11 13:05:39 2024 +0100
ath79: read back reset register
Read back the reset register in order to flush the cache. This fixes
spurious reboot hangs on TP-Link TL-WDR3600 and TL-WDR4300 with Zentel
DRAM chips.
This issue was fixed in the past, but switching to the reset-driver
specific implementation removed the cache barrier which was previously
implicitly added by reading back the register in question.
Link: freifunk-gluon/gluon#2904
Link: openwrt#13043
Link: https://dev.archive.openwrt.org/ticket/17839
Link: f8a7bfe1cb2c ("MIPS: ath79: fix system restart")
Signed-off-by: David Bauer <mail at david-bauer.net>
(cherry picked from commit 2fe8ecd880396b5ae25fe9583aaa1d71be0b8468)
---
.../100-reset-ath79-read-back-reset-register.patch | 33 ++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/target/linux/ath79/patches-5.10/100-reset-ath79-read-back-reset-register.patch b/target/linux/ath79/patches-5.10/100-reset-ath79-read-back-reset-register.patch
new file mode 100644
index 0000000000..8e66fa8b6e
--- /dev/null
+++ b/target/linux/ath79/patches-5.10/100-reset-ath79-read-back-reset-register.patch
@@ -0,0 +1,33 @@
+From 5d25f925d3f72ceadf922f946d5422ad77fbfc20 Mon Sep 17 00:00:00 2001
+From: David Bauer <mail at david-bauer.net>
+Date: Thu, 11 Jan 2024 13:01:18 +0100
+Subject: [PATCH] reset: ath79: read back reset register
+
+Read back the reset register in order to flush the cache. This fixes
+spurious reboot hangs on TP-Link TL-WDR3600 and TL-WDR4300 with Zentel
+DRAM chips.
+
+This issue was fixed in the past, but switching to the reset-driver
+specific implementation removed the old fix.
+
+Link: https://github.com/freifunk-gluon/gluon/issues/2904
+Link: https://github.com/openwrt/openwrt/issues/13043
+Link: https://dev.archive.openwrt.org/ticket/17839
+Link: f8a7bfe1cb2c ("MIPS: ath79: fix system restart")
+
+Signed-off-by: David Bauer <mail at david-bauer.net>
+---
+ drivers/reset/reset-ath79.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/reset/reset-ath79.c
++++ b/drivers/reset/reset-ath79.c
+@@ -37,6 +37,8 @@ static int ath79_reset_update(struct res
+ else
+ val &= ~BIT(id);
+ writel(val, ath79_reset->base);
++ /* Flush cache */
++ readl(ath79_reset->base);
+ spin_unlock_irqrestore(&ath79_reset->lock, flags);
+
+ return 0;
More information about the lede-commits
mailing list