[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