diff mbox series

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

Message ID 20181210014435.24520-1-mail@david-bauer.net
State Superseded, archived
Headers show
Series [OpenWrt-Devel,1/2] ath79: load watchdog before PHY driver | expand

Commit Message

David Bauer Dec. 10, 2018, 1:44 a.m. UTC
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@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

Comments

Mathias Kresin Dec. 10, 2018, 8:55 a.m. UTC | #1
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@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
David Bauer Dec. 10, 2018, 5:33 p.m. UTC | #2
On 10.12.18 09:55, Mathias Kresin wrote:
> Hey David,
> 
> have you tried to set GPIO_WATCHDOG_ARCH_INITCALL instead? According to
> the help text, it might solve your issue:
Hello Mathias,

thanks for pointing out, indeed this does solve my issue. This patch is
therefore obsolete. I will send a v2 later this evening.

Best wishes
David

> 
>   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
diff mbox series

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/