* [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic
@ 2025-02-18 3:16 Heyi Guo
2025-02-18 3:16 ` [PATCH 2/2] ARM: dts: aspeed: aspeed-g6.dtsi: enable IRQ for watchdogs Heyi Guo
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Heyi Guo @ 2025-02-18 3:16 UTC (permalink / raw)
To: devicetree, linux-arm-kernel, linux-aspeed, linux-kernel,
linux-watchdog
Cc: Heyi Guo, Wim Van Sebroeck, Guenter Roeck, Joel Stanley,
Andrew Jeffery, Eddie James
Aspeed watchdog uses counting down logic, so the value set to register
should be the value of subtracting pretimeout from total timeout.
Fixes: 9ec0b7e06835 ("watchdog: aspeed: Enable pre-timeout interrupt")
Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com>
Cc: Wim Van Sebroeck <wim@linux-watchdog.org>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Joel Stanley <joel@jms.id.au>
Cc: Andrew Jeffery <andrew@codeconstruct.com.au>
Cc: Eddie James <eajames@linux.ibm.com>
---
drivers/watchdog/aspeed_wdt.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/watchdog/aspeed_wdt.c b/drivers/watchdog/aspeed_wdt.c
index b4773a6aaf8c..520d8aba12a5 100644
--- a/drivers/watchdog/aspeed_wdt.c
+++ b/drivers/watchdog/aspeed_wdt.c
@@ -187,6 +187,13 @@ static int aspeed_wdt_set_pretimeout(struct watchdog_device *wdd,
u32 actual = pretimeout * WDT_RATE_1MHZ;
u32 s = wdt->cfg->irq_shift;
u32 m = wdt->cfg->irq_mask;
+ u32 reload = readl(wdt->base + WDT_RELOAD_VALUE);
+
+ if (actual >= reload)
+ return -EINVAL;
+
+ /* watchdog timer is counting down */
+ actual = reload - actual;
wdd->pretimeout = pretimeout;
wdt->ctrl &= ~m;
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH 2/2] ARM: dts: aspeed: aspeed-g6.dtsi: enable IRQ for watchdogs 2025-02-18 3:16 [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic Heyi Guo @ 2025-02-18 3:16 ` Heyi Guo 2025-02-18 7:53 ` Krzysztof Kozlowski 2025-02-19 1:12 ` Andrew Jeffery 2025-02-18 5:33 ` [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic Guenter Roeck 2025-02-19 0:42 ` Rob Herring (Arm) 2 siblings, 2 replies; 12+ messages in thread From: Heyi Guo @ 2025-02-18 3:16 UTC (permalink / raw) To: devicetree, linux-arm-kernel, linux-aspeed, linux-kernel, linux-watchdog Cc: Heyi Guo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Joel Stanley, Andrew Jeffery To finally enable watchdog pretimeout function. Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> Cc: Rob Herring <robh@kernel.org> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> Cc: Conor Dooley <conor+dt@kernel.org> Cc: Joel Stanley <joel@jms.id.au> Cc: Andrew Jeffery <andrew@codeconstruct.com.au> --- arch/arm/boot/dts/aspeed/aspeed-g6.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi b/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi index 8ed715bd53aa..ef7ced285c44 100644 --- a/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi +++ b/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi @@ -538,23 +538,27 @@ uart5: serial@1e784000 { wdt1: watchdog@1e785000 { compatible = "aspeed,ast2600-wdt"; reg = <0x1e785000 0x40>; + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; }; wdt2: watchdog@1e785040 { compatible = "aspeed,ast2600-wdt"; reg = <0x1e785040 0x40>; + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; wdt3: watchdog@1e785080 { compatible = "aspeed,ast2600-wdt"; reg = <0x1e785080 0x40>; + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; wdt4: watchdog@1e7850c0 { compatible = "aspeed,ast2600-wdt"; reg = <0x1e7850C0 0x40>; + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; -- 2.43.0 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] ARM: dts: aspeed: aspeed-g6.dtsi: enable IRQ for watchdogs 2025-02-18 3:16 ` [PATCH 2/2] ARM: dts: aspeed: aspeed-g6.dtsi: enable IRQ for watchdogs Heyi Guo @ 2025-02-18 7:53 ` Krzysztof Kozlowski 2025-02-19 1:12 ` Andrew Jeffery 1 sibling, 0 replies; 12+ messages in thread From: Krzysztof Kozlowski @ 2025-02-18 7:53 UTC (permalink / raw) To: Heyi Guo, devicetree, linux-arm-kernel, linux-aspeed, linux-kernel, linux-watchdog Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Joel Stanley, Andrew Jeffery On 18/02/2025 04:16, Heyi Guo wrote: > To finally enable watchdog pretimeout function. > > Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> > There is never blank line between tags. > Cc: Rob Herring <robh@kernel.org> > Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> Please drop the autogenerated scripts/get_maintainer.pl CC-entries from commit msg. There is no single need to store automated output of get_maintainers.pl in the git log. It can be easily re-created at any given time, thus its presence in the git history is redundant and obfuscates the log. If you need it for your own patch management purposes, keep it under the --- separator. > Cc: Conor Dooley <conor+dt@kernel.org> > Cc: Joel Stanley <joel@jms.id.au> > Cc: Andrew Jeffery <andrew@codeconstruct.com.au> Missing Sob as last entry. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] ARM: dts: aspeed: aspeed-g6.dtsi: enable IRQ for watchdogs 2025-02-18 3:16 ` [PATCH 2/2] ARM: dts: aspeed: aspeed-g6.dtsi: enable IRQ for watchdogs Heyi Guo 2025-02-18 7:53 ` Krzysztof Kozlowski @ 2025-02-19 1:12 ` Andrew Jeffery 1 sibling, 0 replies; 12+ messages in thread From: Andrew Jeffery @ 2025-02-19 1:12 UTC (permalink / raw) To: Heyi Guo, devicetree, linux-arm-kernel, linux-aspeed, linux-kernel, linux-watchdog Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Joel Stanley Hi Heyi, On Tue, 2025-02-18 at 11:16 +0800, Heyi Guo wrote: > To finally enable watchdog pretimeout function. > > Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> > > Cc: Rob Herring <robh@kernel.org> > Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> > Cc: Conor Dooley <conor+dt@kernel.org> > Cc: Joel Stanley <joel@jms.id.au> > Cc: Andrew Jeffery <andrew@codeconstruct.com.au> > --- > arch/arm/boot/dts/aspeed/aspeed-g6.dtsi | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi > b/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi > index 8ed715bd53aa..ef7ced285c44 100644 > --- a/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi > +++ b/arch/arm/boot/dts/aspeed/aspeed-g6.dtsi > @@ -538,23 +538,27 @@ uart5: serial@1e784000 { > wdt1: watchdog@1e785000 { > compatible = "aspeed,ast2600-wdt"; > reg = <0x1e785000 0x40>; > + interrupts = <GIC_SPI 24 > IRQ_TYPE_LEVEL_HIGH>; The binding will need an update to allow 'interrupts' as an optional property. Andrew ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic 2025-02-18 3:16 [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic Heyi Guo 2025-02-18 3:16 ` [PATCH 2/2] ARM: dts: aspeed: aspeed-g6.dtsi: enable IRQ for watchdogs Heyi Guo @ 2025-02-18 5:33 ` Guenter Roeck 2025-02-19 1:25 ` Andrew Jeffery ` (2 more replies) 2025-02-19 0:42 ` Rob Herring (Arm) 2 siblings, 3 replies; 12+ messages in thread From: Guenter Roeck @ 2025-02-18 5:33 UTC (permalink / raw) To: Heyi Guo, devicetree, linux-arm-kernel, linux-aspeed, linux-kernel, linux-watchdog Cc: Wim Van Sebroeck, Joel Stanley, Andrew Jeffery, Eddie James On 2/17/25 19:16, Heyi Guo wrote: > Aspeed watchdog uses counting down logic, so the value set to register > should be the value of subtracting pretimeout from total timeout. > > Fixes: 9ec0b7e06835 ("watchdog: aspeed: Enable pre-timeout interrupt") > > Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> > > Cc: Wim Van Sebroeck <wim@linux-watchdog.org> > Cc: Guenter Roeck <linux@roeck-us.net> > Cc: Joel Stanley <joel@jms.id.au> > Cc: Andrew Jeffery <andrew@codeconstruct.com.au> > Cc: Eddie James <eajames@linux.ibm.com> > --- > drivers/watchdog/aspeed_wdt.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/watchdog/aspeed_wdt.c b/drivers/watchdog/aspeed_wdt.c > index b4773a6aaf8c..520d8aba12a5 100644 > --- a/drivers/watchdog/aspeed_wdt.c > +++ b/drivers/watchdog/aspeed_wdt.c > @@ -187,6 +187,13 @@ static int aspeed_wdt_set_pretimeout(struct watchdog_device *wdd, > u32 actual = pretimeout * WDT_RATE_1MHZ; > u32 s = wdt->cfg->irq_shift; > u32 m = wdt->cfg->irq_mask; > + u32 reload = readl(wdt->base + WDT_RELOAD_VALUE); > + It is unusual to use a register value here and not the configured timeout value. I would have assumed that pretimeout is compared against wdt->timout, not against the register value, and that the multiplication with WDT_RATE_1MHZ is done after validation. This needs an explanation. > + if (actual >= reload) > + return -EINVAL; > + On top of that, you'll also need to explain why watchdog_pretimeout_invalid() and with it the validation in watchdog_set_pretimeout() does not work for this watchdog and why this extra validation is necessary. Guenter > + /* watchdog timer is counting down */ > + actual = reload - actual; > > wdd->pretimeout = pretimeout; > wdt->ctrl &= ~m; ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic 2025-02-18 5:33 ` [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic Guenter Roeck @ 2025-02-19 1:25 ` Andrew Jeffery 2025-02-19 1:40 ` Guenter Roeck 2025-02-19 3:41 ` Heyi Guo [not found] ` <7e2c5f2c-d07a-472c-aae5-6b639a144d88@linux.alibaba.com> 2 siblings, 1 reply; 12+ messages in thread From: Andrew Jeffery @ 2025-02-19 1:25 UTC (permalink / raw) To: Guenter Roeck, Heyi Guo, devicetree, linux-arm-kernel, linux-aspeed, linux-kernel, linux-watchdog Cc: Wim Van Sebroeck, Joel Stanley, Eddie James On Mon, 2025-02-17 at 21:33 -0800, Guenter Roeck wrote: > On 2/17/25 19:16, Heyi Guo wrote: > > Aspeed watchdog uses counting down logic, so the value set to register > > should be the value of subtracting pretimeout from total timeout. > > > > Fixes: 9ec0b7e06835 ("watchdog: aspeed: Enable pre-timeout interrupt") > > > > Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> > > > > Cc: Wim Van Sebroeck <wim@linux-watchdog.org> > > Cc: Guenter Roeck <linux@roeck-us.net> > > Cc: Joel Stanley <joel@jms.id.au> > > Cc: Andrew Jeffery <andrew@codeconstruct.com.au> > > Cc: Eddie James <eajames@linux.ibm.com> > > --- > > drivers/watchdog/aspeed_wdt.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/drivers/watchdog/aspeed_wdt.c b/drivers/watchdog/aspeed_wdt.c > > index b4773a6aaf8c..520d8aba12a5 100644 > > --- a/drivers/watchdog/aspeed_wdt.c > > +++ b/drivers/watchdog/aspeed_wdt.c > > @@ -187,6 +187,13 @@ static int aspeed_wdt_set_pretimeout(struct watchdog_device *wdd, > > u32 actual = pretimeout * WDT_RATE_1MHZ; > > u32 s = wdt->cfg->irq_shift; > > u32 m = wdt->cfg->irq_mask; > > + u32 reload = readl(wdt->base + WDT_RELOAD_VALUE); > > + > > It is unusual to use a register value here and not the configured timeout > value. I would have assumed that pretimeout is compared against wdt->timout, > not against the register value, and that the multiplication with WDT_RATE_1MHZ > is done after validation. This needs an explanation. +1 > > > + if (actual >= reload) > > + return -EINVAL; > > + > > On top of that, you'll also need to explain why watchdog_pretimeout_invalid() > and with it the validation in watchdog_set_pretimeout() does not work for this > watchdog and why this extra validation is necessary. +1 as well. Further, the logic looks broken regardless for the AST2400 where there's no pretimeout support. aspeed_wdt_set_pretimeout() should error out if wdt->cfg->irq_mask is 0. Andrew ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic 2025-02-19 1:25 ` Andrew Jeffery @ 2025-02-19 1:40 ` Guenter Roeck 0 siblings, 0 replies; 12+ messages in thread From: Guenter Roeck @ 2025-02-19 1:40 UTC (permalink / raw) To: Andrew Jeffery, Heyi Guo, devicetree, linux-arm-kernel, linux-aspeed, linux-kernel, linux-watchdog Cc: Wim Van Sebroeck, Joel Stanley, Eddie James On 2/18/25 17:25, Andrew Jeffery wrote: > On Mon, 2025-02-17 at 21:33 -0800, Guenter Roeck wrote: >> On 2/17/25 19:16, Heyi Guo wrote: >>> Aspeed watchdog uses counting down logic, so the value set to register >>> should be the value of subtracting pretimeout from total timeout. >>> >>> Fixes: 9ec0b7e06835 ("watchdog: aspeed: Enable pre-timeout interrupt") >>> >>> Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> >>> >>> Cc: Wim Van Sebroeck <wim@linux-watchdog.org> >>> Cc: Guenter Roeck <linux@roeck-us.net> >>> Cc: Joel Stanley <joel@jms.id.au> >>> Cc: Andrew Jeffery <andrew@codeconstruct.com.au> >>> Cc: Eddie James <eajames@linux.ibm.com> >>> --- >>> drivers/watchdog/aspeed_wdt.c | 7 +++++++ >>> 1 file changed, 7 insertions(+) >>> >>> diff --git a/drivers/watchdog/aspeed_wdt.c b/drivers/watchdog/aspeed_wdt.c >>> index b4773a6aaf8c..520d8aba12a5 100644 >>> --- a/drivers/watchdog/aspeed_wdt.c >>> +++ b/drivers/watchdog/aspeed_wdt.c >>> @@ -187,6 +187,13 @@ static int aspeed_wdt_set_pretimeout(struct watchdog_device *wdd, >>> u32 actual = pretimeout * WDT_RATE_1MHZ; >>> u32 s = wdt->cfg->irq_shift; >>> u32 m = wdt->cfg->irq_mask; >>> + u32 reload = readl(wdt->base + WDT_RELOAD_VALUE); >>> + >> >> It is unusual to use a register value here and not the configured timeout >> value. I would have assumed that pretimeout is compared against wdt->timout, >> not against the register value, and that the multiplication with WDT_RATE_1MHZ >> is done after validation. This needs an explanation. > > +1 > >> >>> + if (actual >= reload) >>> + return -EINVAL; >>> + >> >> On top of that, you'll also need to explain why watchdog_pretimeout_invalid() >> and with it the validation in watchdog_set_pretimeout() does not work for this >> watchdog and why this extra validation is necessary. > > +1 as well. > > Further, the logic looks broken regardless for the AST2400 where > there's no pretimeout support. aspeed_wdt_set_pretimeout() should error > out if wdt->cfg->irq_mask is 0. > It should not register as supporting pretimeout in the first place. Guenter ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic 2025-02-18 5:33 ` [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic Guenter Roeck 2025-02-19 1:25 ` Andrew Jeffery @ 2025-02-19 3:41 ` Heyi Guo 2025-02-19 6:07 ` Guenter Roeck [not found] ` <7e2c5f2c-d07a-472c-aae5-6b639a144d88@linux.alibaba.com> 2 siblings, 1 reply; 12+ messages in thread From: Heyi Guo @ 2025-02-19 3:41 UTC (permalink / raw) To: Guenter Roeck, devicetree, linux-arm-kernel, linux-aspeed, linux-kernel, linux-watchdog Cc: Wim Van Sebroeck, Joel Stanley, Andrew Jeffery, Eddie James Hi Guenter, Thanks for your comments. On 2025/2/18 13:33, Guenter Roeck wrote: > On 2/17/25 19:16, Heyi Guo wrote: >> Aspeed watchdog uses counting down logic, so the value set to register >> should be the value of subtracting pretimeout from total timeout. >> >> Fixes: 9ec0b7e06835 ("watchdog: aspeed: Enable pre-timeout interrupt") >> >> Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> >> >> Cc: Wim Van Sebroeck <wim@linux-watchdog.org> >> Cc: Guenter Roeck <linux@roeck-us.net> >> Cc: Joel Stanley <joel@jms.id.au> >> Cc: Andrew Jeffery <andrew@codeconstruct.com.au> >> Cc: Eddie James <eajames@linux.ibm.com> >> --- >> drivers/watchdog/aspeed_wdt.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/drivers/watchdog/aspeed_wdt.c >> b/drivers/watchdog/aspeed_wdt.c >> index b4773a6aaf8c..520d8aba12a5 100644 >> --- a/drivers/watchdog/aspeed_wdt.c >> +++ b/drivers/watchdog/aspeed_wdt.c >> @@ -187,6 +187,13 @@ static int aspeed_wdt_set_pretimeout(struct >> watchdog_device *wdd, >> u32 actual = pretimeout * WDT_RATE_1MHZ; >> u32 s = wdt->cfg->irq_shift; >> u32 m = wdt->cfg->irq_mask; >> + u32 reload = readl(wdt->base + WDT_RELOAD_VALUE); >> + > > It is unusual to use a register value here and not the configured timeout > value. I would have assumed that pretimeout is compared against > wdt->timout, > not against the register value, and that the multiplication with > WDT_RATE_1MHZ > is done after validation. This needs an explanation. It was supposed to be a straight-forward way to check if the pretimeout value is supported by the hardware. I can change to wdt->timeout if it is better. Further, in the case of wdt->timeout > max_hw_heartbeat_ms, shall we restrict the pretimeout to be larger than wdt->timeout - max_hw_heartbeat_ms / 2? For the watchdog_kworker works in max_hw_heartbeat_ms / 2 interval, pretimeout event may be triggered unexpected when watchdog is not pinged in (max_hw_heartbeat_ms - (timeout - pretimeout)). > >> + if (actual >= reload) >> + return -EINVAL; >> + > > On top of that, you'll also need to explain why > watchdog_pretimeout_invalid() > and with it the validation in watchdog_set_pretimeout() does not work > for this > watchdog and why this extra validation is necessary. watchdog_pretimeout_invalid() will return false if wdt->timeout == 0, but we can't determine the hardware pretimeout value if timeout == 0 here. Thanks, Heyi > > Guenter > >> + /* watchdog timer is counting down */ >> + actual = reload - actual; >> wdd->pretimeout = pretimeout; >> wdt->ctrl &= ~m; ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic 2025-02-19 3:41 ` Heyi Guo @ 2025-02-19 6:07 ` Guenter Roeck 2025-02-19 6:48 ` Heyi Guo 0 siblings, 1 reply; 12+ messages in thread From: Guenter Roeck @ 2025-02-19 6:07 UTC (permalink / raw) To: Heyi Guo, devicetree, linux-arm-kernel, linux-aspeed, linux-kernel, linux-watchdog Cc: Wim Van Sebroeck, Joel Stanley, Andrew Jeffery, Eddie James On 2/18/25 19:41, Heyi Guo wrote: > Hi Guenter, > > Thanks for your comments. > > On 2025/2/18 13:33, Guenter Roeck wrote: >> On 2/17/25 19:16, Heyi Guo wrote: >>> Aspeed watchdog uses counting down logic, so the value set to register >>> should be the value of subtracting pretimeout from total timeout. >>> >>> Fixes: 9ec0b7e06835 ("watchdog: aspeed: Enable pre-timeout interrupt") >>> >>> Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> >>> >>> Cc: Wim Van Sebroeck <wim@linux-watchdog.org> >>> Cc: Guenter Roeck <linux@roeck-us.net> >>> Cc: Joel Stanley <joel@jms.id.au> >>> Cc: Andrew Jeffery <andrew@codeconstruct.com.au> >>> Cc: Eddie James <eajames@linux.ibm.com> >>> --- >>> drivers/watchdog/aspeed_wdt.c | 7 +++++++ >>> 1 file changed, 7 insertions(+) >>> >>> diff --git a/drivers/watchdog/aspeed_wdt.c b/drivers/watchdog/aspeed_wdt.c >>> index b4773a6aaf8c..520d8aba12a5 100644 >>> --- a/drivers/watchdog/aspeed_wdt.c >>> +++ b/drivers/watchdog/aspeed_wdt.c >>> @@ -187,6 +187,13 @@ static int aspeed_wdt_set_pretimeout(struct watchdog_device *wdd, >>> u32 actual = pretimeout * WDT_RATE_1MHZ; >>> u32 s = wdt->cfg->irq_shift; >>> u32 m = wdt->cfg->irq_mask; >>> + u32 reload = readl(wdt->base + WDT_RELOAD_VALUE); >>> + >> >> It is unusual to use a register value here and not the configured timeout >> value. I would have assumed that pretimeout is compared against wdt->timout, >> not against the register value, and that the multiplication with WDT_RATE_1MHZ >> is done after validation. This needs an explanation. > It was supposed to be a straight-forward way to check if the pretimeout value is supported by the hardware. I can change to wdt->timeout if it is better. > > Further, in the case of wdt->timeout > max_hw_heartbeat_ms, shall we restrict the pretimeout to be larger than wdt->timeout - max_hw_heartbeat_ms / 2? For the watchdog_kworker works in max_hw_heartbeat_ms / 2 interval, pretimeout event may be triggered unexpected when watchdog is not pinged in (max_hw_heartbeat_ms - (timeout - pretimeout)). > The kernel internal logic should handle that. If not, it needs to be modified/fixed. >> >>> + if (actual >= reload) >>> + return -EINVAL; >>> + >> >> On top of that, you'll also need to explain why watchdog_pretimeout_invalid() >> and with it the validation in watchdog_set_pretimeout() does not work for this >> watchdog and why this extra validation is necessary. > > watchdog_pretimeout_invalid() will return false if wdt->timeout == 0, but we can't determine the hardware pretimeout value if timeout == 0 here. > Sorry, I don't understand what you mean. If watchdog_pretimeout_invalid() returns false if timeout == 0, aspeed_wdt_set_pretimeout() won't be called. Why does that preclude depending on it ? On a side note, I do wonder why the driver accepts a timeout value of 0 seconds. Guenter ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic 2025-02-19 6:07 ` Guenter Roeck @ 2025-02-19 6:48 ` Heyi Guo 0 siblings, 0 replies; 12+ messages in thread From: Heyi Guo @ 2025-02-19 6:48 UTC (permalink / raw) To: Guenter Roeck, devicetree, linux-arm-kernel, linux-aspeed, linux-kernel, linux-watchdog Cc: Wim Van Sebroeck, Joel Stanley, Andrew Jeffery, Eddie James On 2025/2/19 14:07, Guenter Roeck wrote: > On 2/18/25 19:41, Heyi Guo wrote: >> Hi Guenter, >> >> Thanks for your comments. >> >> On 2025/2/18 13:33, Guenter Roeck wrote: >>> On 2/17/25 19:16, Heyi Guo wrote: >>>> Aspeed watchdog uses counting down logic, so the value set to register >>>> should be the value of subtracting pretimeout from total timeout. >>>> >>>> Fixes: 9ec0b7e06835 ("watchdog: aspeed: Enable pre-timeout interrupt") >>>> >>>> Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> >>>> >>>> Cc: Wim Van Sebroeck <wim@linux-watchdog.org> >>>> Cc: Guenter Roeck <linux@roeck-us.net> >>>> Cc: Joel Stanley <joel@jms.id.au> >>>> Cc: Andrew Jeffery <andrew@codeconstruct.com.au> >>>> Cc: Eddie James <eajames@linux.ibm.com> >>>> --- >>>> drivers/watchdog/aspeed_wdt.c | 7 +++++++ >>>> 1 file changed, 7 insertions(+) >>>> >>>> diff --git a/drivers/watchdog/aspeed_wdt.c >>>> b/drivers/watchdog/aspeed_wdt.c >>>> index b4773a6aaf8c..520d8aba12a5 100644 >>>> --- a/drivers/watchdog/aspeed_wdt.c >>>> +++ b/drivers/watchdog/aspeed_wdt.c >>>> @@ -187,6 +187,13 @@ static int aspeed_wdt_set_pretimeout(struct >>>> watchdog_device *wdd, >>>> u32 actual = pretimeout * WDT_RATE_1MHZ; >>>> u32 s = wdt->cfg->irq_shift; >>>> u32 m = wdt->cfg->irq_mask; >>>> + u32 reload = readl(wdt->base + WDT_RELOAD_VALUE); >>>> + >>> >>> It is unusual to use a register value here and not the configured >>> timeout >>> value. I would have assumed that pretimeout is compared against >>> wdt->timout, >>> not against the register value, and that the multiplication with >>> WDT_RATE_1MHZ >>> is done after validation. This needs an explanation. >> It was supposed to be a straight-forward way to check if the >> pretimeout value is supported by the hardware. I can change to >> wdt->timeout if it is better. >> >> Further, in the case of wdt->timeout > max_hw_heartbeat_ms, shall we >> restrict the pretimeout to be larger than wdt->timeout - >> max_hw_heartbeat_ms / 2? For the watchdog_kworker works in >> max_hw_heartbeat_ms / 2 interval, pretimeout event may be triggered >> unexpected when watchdog is not pinged in (max_hw_heartbeat_ms - >> (timeout - pretimeout)). >> > > The kernel internal logic should handle that. If not, it needs to be > modified/fixed. Do you mean the watchdog core should also handle the case in which pretimeout < wdt->timeout - max_hw_heartbeat_ms / 2? > >>> >>>> + if (actual >= reload) >>>> + return -EINVAL; >>>> + >>> >>> On top of that, you'll also need to explain why >>> watchdog_pretimeout_invalid() >>> and with it the validation in watchdog_set_pretimeout() does not >>> work for this >>> watchdog and why this extra validation is necessary. >> >> watchdog_pretimeout_invalid() will return false if wdt->timeout == 0, >> but we can't determine the hardware pretimeout value if timeout == 0 >> here. >> > > Sorry, I don't understand what you mean. If watchdog_pretimeout_invalid() > returns false if timeout == 0, aspeed_wdt_set_pretimeout() won't be > called. > Why does that preclude depending on it ? if timeout == 0, watchdog_pretimeout_invalid() returns false, so the code will go on to call wdd->ops->set_pretimeout(). static int watchdog_set_pretimeout(struct watchdog_device *wdd, unsigned int timeout) { int err = 0; if (!watchdog_have_pretimeout(wdd)) return -EOPNOTSUPP; if (watchdog_pretimeout_invalid(wdd, timeout)) return -EINVAL; if (wdd->ops->set_pretimeout && (wdd->info->options & WDIOF_PRETIMEOUT)) err = wdd->ops->set_pretimeout(wdd, timeout); > > On a side note, I do wonder why the driver accepts a timeout value of > 0 seconds. From the code, it seems timeout == 0 / pretimeout == 0 will be considered as a turn off switch. Thanks, Heyi > > Guenter ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <7e2c5f2c-d07a-472c-aae5-6b639a144d88@linux.alibaba.com>]
* Re: [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic [not found] ` <7e2c5f2c-d07a-472c-aae5-6b639a144d88@linux.alibaba.com> @ 2025-02-19 3:51 ` Heyi Guo 0 siblings, 0 replies; 12+ messages in thread From: Heyi Guo @ 2025-02-19 3:51 UTC (permalink / raw) To: Guenter Roeck, devicetree, linux-arm-kernel, linux-aspeed, linux-kernel, linux-watchdog Cc: Wim Van Sebroeck, Joel Stanley, Andrew Jeffery, Eddie James Really sorry for this mail and previous noisy mails; my thunderbird client must be misconfigured to send out mail for command + s shortcut when I wanted to save draft... Heyi On 2025/2/19 11:40, Heyi Guo wrote: > Hi Guenter, > > Thanks for your comments. > > On 2025/2/18 13:33, Guenter Roeck wrote: > > On 2/17/25 19:16, Heyi Guo wrote: > >> Aspeed watchdog uses counting down logic, so the value set to register > >> should be the value of subtracting pretimeout from total timeout. > >> > >> Fixes: 9ec0b7e06835 ("watchdog: aspeed: Enable pre-timeout interrupt") > >> > >> Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> > >> > >> Cc: Wim Van Sebroeck <wim@linux-watchdog.org> > >> Cc: Guenter Roeck <linux@roeck-us.net> > >> Cc: Joel Stanley <joel@jms.id.au> > >> Cc: Andrew Jeffery <andrew@codeconstruct.com.au> > >> Cc: Eddie James <eajames@linux.ibm.com> > >> --- > >> drivers/watchdog/aspeed_wdt.c | 7 +++++++ > >> 1 file changed, 7 insertions(+) > >> > >> diff --git a/drivers/watchdog/aspeed_wdt.c b/drivers/watchdog/aspeed_wdt.c > >> index b4773a6aaf8c..520d8aba12a5 100644 > >> --- a/drivers/watchdog/aspeed_wdt.c > >> +++ b/drivers/watchdog/aspeed_wdt.c > >> @@ -187,6 +187,13 @@ static int aspeed_wdt_set_pretimeout(struct > >> watchdog_device *wdd, > >> u32 actual = pretimeout * WDT_RATE_1MHZ; > >> u32 s = wdt->cfg->irq_shift; > >> u32 m = wdt->cfg->irq_mask; > >> + u32 reload = readl(wdt->base + WDT_RELOAD_VALUE); > >> + > > > > It is unusual to use a register value here and not the configured timeout > > value. I would have assumed that pretimeout is compared against wdt->timout, > > not against the register value, and that the multiplication with WDT_RATE_1MHZ > > is done after validation. This needs an explanation. > It was supposed to be a straight-forward way to check if the pretimeout value is > supported by the hardware. I can change to wdt->timeout if it is better. > > Further, in the case of wdt->timeout > max_hw_heartbeat_ms, shall we restrict > the pretimeout to be larger than wdt->timeout - max_hw_heartbeat_ms / 2? For > the watchdog_kworker works in max_hw_heartbeat_ms / 2 interval, pretimeout > event may be triggered unexpected when watchdog is not pinged in > (max_hw_heartbeat_ms - (timeout - pretimeout)). > > > > >> + if (actual >= reload) > >> + return -EINVAL; > >> + > > > > On top of that, you'll also need to explain why watchdog_pretimeout_invalid() > > and with it the validation in watchdog_set_pretimeout() does not work for this > > watchdog and why this extra validation is necessary. > watchdog_pretimeout_invalid() will return false if wdt->timeout == 0, but we > can't determine the hardware pretimeout value if timeout == 0 here. > > > > Guenter > > > >> + /* watchdog timer is counting down */ > >> + actual = reload - actual; > >> wdd->pretimeout = pretimeout; > >> wdt->ctrl &= ~m; ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic 2025-02-18 3:16 [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic Heyi Guo 2025-02-18 3:16 ` [PATCH 2/2] ARM: dts: aspeed: aspeed-g6.dtsi: enable IRQ for watchdogs Heyi Guo 2025-02-18 5:33 ` [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic Guenter Roeck @ 2025-02-19 0:42 ` Rob Herring (Arm) 2 siblings, 0 replies; 12+ messages in thread From: Rob Herring (Arm) @ 2025-02-19 0:42 UTC (permalink / raw) To: Heyi Guo Cc: Joel Stanley, linux-aspeed, linux-kernel, linux-watchdog, Eddie James, Andrew Jeffery, Guenter Roeck, linux-arm-kernel, Wim Van Sebroeck, devicetree On Tue, 18 Feb 2025 11:16:58 +0800, Heyi Guo wrote: > Aspeed watchdog uses counting down logic, so the value set to register > should be the value of subtracting pretimeout from total timeout. > > Fixes: 9ec0b7e06835 ("watchdog: aspeed: Enable pre-timeout interrupt") > > Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com> > > Cc: Wim Van Sebroeck <wim@linux-watchdog.org> > Cc: Guenter Roeck <linux@roeck-us.net> > Cc: Joel Stanley <joel@jms.id.au> > Cc: Andrew Jeffery <andrew@codeconstruct.com.au> > Cc: Eddie James <eajames@linux.ibm.com> > --- > drivers/watchdog/aspeed_wdt.c | 7 +++++++ > 1 file changed, 7 insertions(+) > My bot found new DTB warnings on the .dts files added or changed in this series. Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings are fixed by another series. Ultimately, it is up to the platform maintainer whether these warnings are acceptable or not. No need to reply unless the platform maintainer has comments. If you already ran DT checks and didn't see these error(s), then make sure dt-schema is up to date: pip3 install dtschema --upgrade New warnings running 'make CHECK_DTBS=y for arch/arm/boot/dts/aspeed/' for 20250218031709.103823-1-guoheyi@linux.alibaba.com: arch/arm/boot/dts/aspeed/aspeed-bmc-opp-tacoma.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-opp-tacoma.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-opp-tacoma.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-opp-tacoma.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-quanta-s6q.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-bletchley.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-quanta-s6q.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-quanta-s6q.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-bletchley.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-quanta-s6q.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-bletchley.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-bletchley.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-blueridge-4u.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-blueridge-4u.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-blueridge-4u.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-blueridge-4u.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-ast2600-evb-a1.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-ast2600-evb-a1.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-ast2600-evb-a1.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-fuji.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-ast2600-evb-a1.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-fuji.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-everest.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-fuji.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-fuji.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-everest.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-sbp1.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-everest.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-sbp1.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-everest.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-sbp1.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-sbp1.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-inventec-transformers.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-inventec-transformers.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-inventec-transformers.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-inventec-transformers.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-ast2600-evb.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-ast2600-evb.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-ast2600-evb.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-ast2600-evb.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite4.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-inventec-starscream.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-inventec-starscream.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-inventec-starscream.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-inventec-starscream.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-rainier.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-rainier.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-rainier.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-rainier.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-rainier-1s4u.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-rainier-1s4u.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-rainier-1s4u.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-rainier-1s4u.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-catalina.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-catalina.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-catalina.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-catalina.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-blueridge.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-blueridge.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-blueridge.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-blueridge.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-bonnell.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-bonnell.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-bonnell.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-bonnell.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-rainier-4u.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-rainier-4u.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-rainier-4u.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-rainier-4u.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ampere-mtjefferson.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ampere-mtjefferson.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ampere-mtjefferson.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ampere-mtjefferson.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-asus-x4tf.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-asus-x4tf.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-asus-x4tf.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-asus-x4tf.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-elbert.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-elbert.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-elbert.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-elbert.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ufispace-ncplite.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ufispace-ncplite.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ufispace-ncplite.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ufispace-ncplite.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-fuji.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-fuji.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-fuji.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-fuji.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ampere-mtmitchell.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ampere-mtmitchell.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ampere-mtmitchell.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ampere-mtmitchell.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-minerva.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-minerva.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-minerva.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-minerva.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-qcom-dc-scm-v1.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-qcom-dc-scm-v1.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-qcom-dc-scm-v1.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-qcom-dc-scm-v1.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-harma.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-harma.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-harma.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-harma.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-ibm-system1.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-greatlakes.dtb: watchdog@1e785000: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-greatlakes.dtb: watchdog@1e785040: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-greatlakes.dtb: watchdog@1e785080: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-greatlakes.dtb: watchdog@1e7850c0: 'interrupts' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/watchdog/aspeed,ast2400-wdt.yaml# ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2025-02-19 6:48 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-18 3:16 [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic Heyi Guo
2025-02-18 3:16 ` [PATCH 2/2] ARM: dts: aspeed: aspeed-g6.dtsi: enable IRQ for watchdogs Heyi Guo
2025-02-18 7:53 ` Krzysztof Kozlowski
2025-02-19 1:12 ` Andrew Jeffery
2025-02-18 5:33 ` [PATCH 1/2] driver/aspeed-wdt: fix pretimeout for counting down logic Guenter Roeck
2025-02-19 1:25 ` Andrew Jeffery
2025-02-19 1:40 ` Guenter Roeck
2025-02-19 3:41 ` Heyi Guo
2025-02-19 6:07 ` Guenter Roeck
2025-02-19 6:48 ` Heyi Guo
[not found] ` <7e2c5f2c-d07a-472c-aae5-6b639a144d88@linux.alibaba.com>
2025-02-19 3:51 ` Heyi Guo
2025-02-19 0:42 ` Rob Herring (Arm)
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox