[OpenWrt-Devel] [PATCH 1/2] ath79: load watchdog before PHY driver

Mathias Kresin dev at kresin.me
Mon Dec 10 03:55:42 EST 2018


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 <mail at 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 at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list