10/12/2018 02:44, David Bauer:
The initialization for the two ethernet PHYs causes the hardware
wathchdog of devolo WiFi pro boards to trigger reset. Linking the
watchdog drivers before the PHY driver fixes this issue.

Signed-off-by: David Bauer <m...@david-bauer.net>
---
  .../431-link-phy-after-watchdog.patch         | 31 +++++++++++++++++++
  1 file changed, 31 insertions(+)
  create mode 100644 
target/linux/ath79/patches-4.14/431-link-phy-after-watchdog.patch

diff --git a/target/linux/ath79/patches-4.14/431-link-phy-after-watchdog.patch 
b/target/linux/ath79/patches-4.14/431-link-phy-after-watchdog.patch
new file mode 100644
index 0000000000..d5b5357fd5
--- /dev/null
+++ b/target/linux/ath79/patches-4.14/431-link-phy-after-watchdog.patch
@@ -0,0 +1,31 @@
+Index: linux-4.14.82/drivers/Makefile
+===================================================================
+--- linux-4.14.82.orig/drivers/Makefile
++++ linux-4.14.82/drivers/Makefile
+@@ -9,13 +9,16 @@
+ obj-y                         += irqchip/
+ obj-y                         += bus/
+
+-obj-$(CONFIG_GENERIC_PHY)     += phy/
+-
+ # GPIO must come after pinctrl as gpios may need to mux pins etc
+ obj-$(CONFIG_PINCTRL)         += pinctrl/
+ obj-$(CONFIG_GPIOLIB)         += gpio/
+ obj-y                         += pwm/
+
++# load watchdog before PHY drivers as PHY driver init causes
++# watchdog timeout on some devices
++obj-$(CONFIG_WATCHDOG)                += watchdog/
++obj-$(CONFIG_GENERIC_PHY)     += phy/
++
+ obj-$(CONFIG_PCI)             += pci/
+ obj-$(CONFIG_PCI_ENDPOINT)    += pci/endpoint/
+ # PCI dwc controller drivers
+@@ -120,7 +123,6 @@ obj-$(CONFIG_W1)           += w1/
+ obj-y                         += power/
+ obj-$(CONFIG_HWMON)           += hwmon/
+ obj-$(CONFIG_THERMAL)         += thermal/
+-obj-$(CONFIG_WATCHDOG)                += watchdog/
+ obj-$(CONFIG_MD)              += md/
+ obj-$(CONFIG_BT)              += bluetooth/
+ obj-$(CONFIG_ACCESSIBILITY)   += accessibility/


Hey David,

have you tried to set GPIO_WATCHDOG_ARCH_INITCALL instead? According to the help text, it might solve your issue:

  In some situations, the default initcall level (module_init)
  in not early enough in the boot process to avoid the watchdog
  to be triggered.
  If you say yes here, the initcall level would be raised to
  arch_initcall.

Mathias

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to