diff --git a/patches/openwrt/0012-add-patch-for-reset-retry-on-wdr3600.patch b/patches/openwrt/0012-add-patch-for-reset-retry-on-wdr3600.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d8dfcdab57c9a6c97cfb17519bb73dda39dba1f3
--- /dev/null
+++ b/patches/openwrt/0012-add-patch-for-reset-retry-on-wdr3600.patch
@@ -0,0 +1,28 @@
+From: Nico <github@nicoboehr.de>
+Date: Sat, 14 Dec 2024 22:41:57 +0000
+Subject: add patch for reset retry on wdr3600
+
+Signed-off-by: Nico <github@nicoboehr.de>
+
+diff --git a/target/linux/ath79/patches-5.15/940-ath79-reset-retry-wdr3400.patch b/target/linux/ath79/patches-5.15/940-ath79-reset-retry-wdr3400.patch
+new file mode 100644
+index 0000000000000000000000000000000000000000..a95d47f6495cc4ac67951e88bd8811ccffff5898
+--- /dev/null
++++ b/target/linux/ath79/patches-5.15/940-ath79-reset-retry-wdr3400.patch
+@@ -0,0 +1,16 @@
++--- a/drivers/reset/reset-ath79.c
+++++ b/drivers/reset/reset-ath79.c
++@@ -79,8 +79,12 @@ static int ath79_reset_restart_handler(s
++ {
++ 	struct ath79_reset *ath79_reset =
++ 		container_of(nb, struct ath79_reset, restart_nb);
+++	unsigned int i = 0;
++ 
++-	ath79_reset_assert(&ath79_reset->rcdev, FULL_CHIP_RESET);
+++	while (1) {
+++		ath79_reset_assert(&ath79_reset->rcdev, FULL_CHIP_RESET);
+++		printk("reset: still alive after %u tries\n", i);
+++	}
++ 
++ 	return NOTIFY_DONE;
++ }