* [PATCH 0/2] watchdog: Pretimeout support for Armada-XP @ 2022-02-11 0:32 Chris Packham 2022-02-11 0:32 ` [PATCH 1/2] ARM: dts: armada-xp: add interrupts for watchdog Chris Packham 2022-02-11 0:32 ` [PATCH 2/2] watchdog: orion_wdt: support pretimeout on Armada-XP Chris Packham 0 siblings, 2 replies; 10+ messages in thread From: Chris Packham @ 2022-02-11 0:32 UTC (permalink / raw) To: andrew, gregory.clement, robh+dt, wim, linux Cc: linux-arm-kernel, devicetree, linux-kernel, linux-watchdog, Chris Packham This series extends and enables support for using timer1 as a pretimeout for the watchdog which allows for getting some additional debug out before the watchdog triggers a system reset. Chris Packham (2): ARM: dts: armada-xp: add interrupts for watchdog watchdog: orion_wdt: support pretimeout on Armada-XP arch/arm/boot/dts/armada-xp-98dx3236.dtsi | 1 + arch/arm/boot/dts/armada-xp.dtsi | 1 + drivers/watchdog/orion_wdt.c | 13 +++++++++---- 3 files changed, 11 insertions(+), 4 deletions(-) -- 2.35.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] ARM: dts: armada-xp: add interrupts for watchdog 2022-02-11 0:32 [PATCH 0/2] watchdog: Pretimeout support for Armada-XP Chris Packham @ 2022-02-11 0:32 ` Chris Packham 2022-02-14 15:39 ` Gregory CLEMENT 2022-02-14 15:58 ` Guenter Roeck 2022-02-11 0:32 ` [PATCH 2/2] watchdog: orion_wdt: support pretimeout on Armada-XP Chris Packham 1 sibling, 2 replies; 10+ messages in thread From: Chris Packham @ 2022-02-11 0:32 UTC (permalink / raw) To: andrew, gregory.clement, robh+dt, wim, linux Cc: linux-arm-kernel, devicetree, linux-kernel, linux-watchdog, Chris Packham, Sebastian Hesselbarth The first interrupt is for the regular watchdog timeout. Normally the RSTOUT line will trigger a reset before this interrupt fires but on systems with a non-standard reset it may still trigger. The second interrupt is for a timer1 which is used as a pre-timeout for the watchdog. Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> --- arch/arm/boot/dts/armada-xp-98dx3236.dtsi | 1 + arch/arm/boot/dts/armada-xp.dtsi | 1 + 2 files changed, 2 insertions(+) diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi index 38a052a0312d..0e561dfc0ca9 100644 --- a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi +++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi @@ -286,6 +286,7 @@ &watchdog { compatible = "marvell,armada-xp-wdt"; clocks = <&coreclk 2>, <&refclk>; clock-names = "nbclk", "fixed"; + interrupts = <93>, <38>; }; &cpurst { diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi index 6c19984d668e..4297482da62f 100644 --- a/arch/arm/boot/dts/armada-xp.dtsi +++ b/arch/arm/boot/dts/armada-xp.dtsi @@ -260,6 +260,7 @@ &watchdog { compatible = "marvell,armada-xp-wdt"; clocks = <&coreclk 2>, <&refclk>; clock-names = "nbclk", "fixed"; + interrupts = <93>, <38>; }; &cpurst { -- 2.35.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] ARM: dts: armada-xp: add interrupts for watchdog 2022-02-11 0:32 ` [PATCH 1/2] ARM: dts: armada-xp: add interrupts for watchdog Chris Packham @ 2022-02-14 15:39 ` Gregory CLEMENT 2022-10-16 22:39 ` Chris Packham 2022-02-14 15:58 ` Guenter Roeck 1 sibling, 1 reply; 10+ messages in thread From: Gregory CLEMENT @ 2022-02-14 15:39 UTC (permalink / raw) To: Chris Packham, andrew, robh+dt, wim, linux Cc: linux-arm-kernel, devicetree, linux-kernel, linux-watchdog, Chris Packham, Sebastian Hesselbarth Hello Chris, > The first interrupt is for the regular watchdog timeout. Normally the > RSTOUT line will trigger a reset before this interrupt fires but on > systems with a non-standard reset it may still trigger. > > The second interrupt is for a timer1 which is used as a pre-timeout for > the watchdog. > > Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com> To keep bisectability this patch should be merged after the driver patch. Thanks, Gregory > --- > arch/arm/boot/dts/armada-xp-98dx3236.dtsi | 1 + > arch/arm/boot/dts/armada-xp.dtsi | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi > index 38a052a0312d..0e561dfc0ca9 100644 > --- a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi > +++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi > @@ -286,6 +286,7 @@ &watchdog { > compatible = "marvell,armada-xp-wdt"; > clocks = <&coreclk 2>, <&refclk>; > clock-names = "nbclk", "fixed"; > + interrupts = <93>, <38>; > }; > > &cpurst { > diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi > index 6c19984d668e..4297482da62f 100644 > --- a/arch/arm/boot/dts/armada-xp.dtsi > +++ b/arch/arm/boot/dts/armada-xp.dtsi > @@ -260,6 +260,7 @@ &watchdog { > compatible = "marvell,armada-xp-wdt"; > clocks = <&coreclk 2>, <&refclk>; > clock-names = "nbclk", "fixed"; > + interrupts = <93>, <38>; > }; > > &cpurst { > -- > 2.35.1 > -- Gregory Clement, Bootlin Embedded Linux and Kernel engineering http://bootlin.com _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] ARM: dts: armada-xp: add interrupts for watchdog 2022-02-14 15:39 ` Gregory CLEMENT @ 2022-10-16 22:39 ` Chris Packham 2022-10-17 0:20 ` Guenter Roeck 2022-11-27 23:42 ` Gregory CLEMENT 0 siblings, 2 replies; 10+ messages in thread From: Chris Packham @ 2022-10-16 22:39 UTC (permalink / raw) To: Gregory CLEMENT, andrew, robh+dt, wim, linux Cc: linux-arm-kernel, devicetree, linux-kernel, linux-watchdog, Sebastian Hesselbarth Hi Gregory, On 15/02/22 04:39, Gregory CLEMENT wrote: > Hello Chris, > >> The first interrupt is for the regular watchdog timeout. Normally the >> RSTOUT line will trigger a reset before this interrupt fires but on >> systems with a non-standard reset it may still trigger. >> >> The second interrupt is for a timer1 which is used as a pre-timeout for >> the watchdog. >> >> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> > Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com> > > To keep bisectability this patch should be merged after the driver > patch. > > Thanks, > > Gregory The driver changes were merged a while back. Looks like your intention was for this to go in via the watchdog tree but that never happened. Could you take it through your tree now? Probably won't be until 6.2 now but that's fine. > >> --- >> arch/arm/boot/dts/armada-xp-98dx3236.dtsi | 1 + >> arch/arm/boot/dts/armada-xp.dtsi | 1 + >> 2 files changed, 2 insertions(+) >> >> diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi >> index 38a052a0312d..0e561dfc0ca9 100644 >> --- a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi >> +++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi >> @@ -286,6 +286,7 @@ &watchdog { >> compatible = "marvell,armada-xp-wdt"; >> clocks = <&coreclk 2>, <&refclk>; >> clock-names = "nbclk", "fixed"; >> + interrupts = <93>, <38>; >> }; >> >> &cpurst { >> diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi >> index 6c19984d668e..4297482da62f 100644 >> --- a/arch/arm/boot/dts/armada-xp.dtsi >> +++ b/arch/arm/boot/dts/armada-xp.dtsi >> @@ -260,6 +260,7 @@ &watchdog { >> compatible = "marvell,armada-xp-wdt"; >> clocks = <&coreclk 2>, <&refclk>; >> clock-names = "nbclk", "fixed"; >> + interrupts = <93>, <38>; >> }; >> >> &cpurst { >> -- >> 2.35.1 >> _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] ARM: dts: armada-xp: add interrupts for watchdog 2022-10-16 22:39 ` Chris Packham @ 2022-10-17 0:20 ` Guenter Roeck 2022-11-27 23:42 ` Gregory CLEMENT 1 sibling, 0 replies; 10+ messages in thread From: Guenter Roeck @ 2022-10-17 0:20 UTC (permalink / raw) To: Chris Packham, Gregory CLEMENT, andrew, robh+dt, wim Cc: linux-arm-kernel, devicetree, linux-kernel, linux-watchdog, Sebastian Hesselbarth On 10/16/22 15:39, Chris Packham wrote: > Hi Gregory, > > On 15/02/22 04:39, Gregory CLEMENT wrote: >> Hello Chris, >> >>> The first interrupt is for the regular watchdog timeout. Normally the >>> RSTOUT line will trigger a reset before this interrupt fires but on >>> systems with a non-standard reset it may still trigger. >>> >>> The second interrupt is for a timer1 which is used as a pre-timeout for >>> the watchdog. >>> >>> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> >> Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com> >> >> To keep bisectability this patch should be merged after the driver >> patch. >> >> Thanks, >> >> Gregory > > The driver changes were merged a while back. Looks like your intention > was for this to go in via the watchdog tree but that never happened. > Could you take it through your tree now? Probably won't be until 6.2 now > but that's fine. > We don't take any actual devicetree changes. Those need to be pushed through architecture/platform trees. Anything else would create never ending conflicts (and I strongly suspect that various maintainers would complain). Guenter _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] ARM: dts: armada-xp: add interrupts for watchdog 2022-10-16 22:39 ` Chris Packham 2022-10-17 0:20 ` Guenter Roeck @ 2022-11-27 23:42 ` Gregory CLEMENT 1 sibling, 0 replies; 10+ messages in thread From: Gregory CLEMENT @ 2022-11-27 23:42 UTC (permalink / raw) To: Chris Packham, andrew, robh+dt, wim, linux Cc: linux-arm-kernel, devicetree, linux-kernel, linux-watchdog, Sebastian Hesselbarth Chris Packham <Chris.Packham@alliedtelesis.co.nz> writes: > Hi Gregory, > > On 15/02/22 04:39, Gregory CLEMENT wrote: >> Hello Chris, >> >>> The first interrupt is for the regular watchdog timeout. Normally the >>> RSTOUT line will trigger a reset before this interrupt fires but on >>> systems with a non-standard reset it may still trigger. >>> >>> The second interrupt is for a timer1 which is used as a pre-timeout for >>> the watchdog. >>> >>> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> >> Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com> >> >> To keep bisectability this patch should be merged after the driver >> patch. >> >> Thanks, >> >> Gregory > > The driver changes were merged a while back. Looks like your intention > was for this to go in via the watchdog tree but that never happened. > Could you take it through your tree now? Probably won't be until 6.2 now > but that's fine. Applied on mvebu/dt64 Thanks and sorry for having missing the fact that it was not applied. Gregory > >> >>> --- >>> arch/arm/boot/dts/armada-xp-98dx3236.dtsi | 1 + >>> arch/arm/boot/dts/armada-xp.dtsi | 1 + >>> 2 files changed, 2 insertions(+) >>> >>> diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi >>> index 38a052a0312d..0e561dfc0ca9 100644 >>> --- a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi >>> +++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi >>> @@ -286,6 +286,7 @@ &watchdog { >>> compatible = "marvell,armada-xp-wdt"; >>> clocks = <&coreclk 2>, <&refclk>; >>> clock-names = "nbclk", "fixed"; >>> + interrupts = <93>, <38>; >>> }; >>> >>> &cpurst { >>> diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi >>> index 6c19984d668e..4297482da62f 100644 >>> --- a/arch/arm/boot/dts/armada-xp.dtsi >>> +++ b/arch/arm/boot/dts/armada-xp.dtsi >>> @@ -260,6 +260,7 @@ &watchdog { >>> compatible = "marvell,armada-xp-wdt"; >>> clocks = <&coreclk 2>, <&refclk>; >>> clock-names = "nbclk", "fixed"; >>> + interrupts = <93>, <38>; >>> }; >>> >>> &cpurst { >>> -- >>> 2.35.1 >>> -- Gregory Clement, Bootlin Embedded Linux and Kernel engineering http://bootlin.com _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] ARM: dts: armada-xp: add interrupts for watchdog 2022-02-11 0:32 ` [PATCH 1/2] ARM: dts: armada-xp: add interrupts for watchdog Chris Packham 2022-02-14 15:39 ` Gregory CLEMENT @ 2022-02-14 15:58 ` Guenter Roeck 1 sibling, 0 replies; 10+ messages in thread From: Guenter Roeck @ 2022-02-14 15:58 UTC (permalink / raw) To: Chris Packham Cc: andrew, gregory.clement, robh+dt, wim, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog, Sebastian Hesselbarth On Fri, Feb 11, 2022 at 01:32:56PM +1300, Chris Packham wrote: > The first interrupt is for the regular watchdog timeout. Normally the > RSTOUT line will trigger a reset before this interrupt fires but on > systems with a non-standard reset it may still trigger. > > The second interrupt is for a timer1 which is used as a pre-timeout for > the watchdog. > > Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> > Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com> Acked-by: Guenter Roeck <linux@roeck-us.net> > --- > arch/arm/boot/dts/armada-xp-98dx3236.dtsi | 1 + > arch/arm/boot/dts/armada-xp.dtsi | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi > index 38a052a0312d..0e561dfc0ca9 100644 > --- a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi > +++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi > @@ -286,6 +286,7 @@ &watchdog { > compatible = "marvell,armada-xp-wdt"; > clocks = <&coreclk 2>, <&refclk>; > clock-names = "nbclk", "fixed"; > + interrupts = <93>, <38>; > }; > > &cpurst { > diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi > index 6c19984d668e..4297482da62f 100644 > --- a/arch/arm/boot/dts/armada-xp.dtsi > +++ b/arch/arm/boot/dts/armada-xp.dtsi > @@ -260,6 +260,7 @@ &watchdog { > compatible = "marvell,armada-xp-wdt"; > clocks = <&coreclk 2>, <&refclk>; > clock-names = "nbclk", "fixed"; > + interrupts = <93>, <38>; > }; > > &cpurst { _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/2] watchdog: orion_wdt: support pretimeout on Armada-XP 2022-02-11 0:32 [PATCH 0/2] watchdog: Pretimeout support for Armada-XP Chris Packham 2022-02-11 0:32 ` [PATCH 1/2] ARM: dts: armada-xp: add interrupts for watchdog Chris Packham @ 2022-02-11 0:32 ` Chris Packham 2022-02-14 15:36 ` Gregory CLEMENT 2022-02-14 15:57 ` Guenter Roeck 1 sibling, 2 replies; 10+ messages in thread From: Chris Packham @ 2022-02-11 0:32 UTC (permalink / raw) To: andrew, gregory.clement, robh+dt, wim, linux Cc: linux-arm-kernel, devicetree, linux-kernel, linux-watchdog, Chris Packham Commit e07a4c79ca75 ("watchdog: orion_wdt: use timer1 as a pretimeout") added support for a pretimeout on Armada-38x variants. Because the Armada-XP variants use armada370_start/armada370_stop (due to missing an explicit RSTOUT mask bit for the watchdog). Add the required pretimeout support to armada370_start/armada370_stop for Armada-XP. Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> --- drivers/watchdog/orion_wdt.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/orion_wdt.c b/drivers/watchdog/orion_wdt.c index 127eefc9161d..e25e6bf4647f 100644 --- a/drivers/watchdog/orion_wdt.c +++ b/drivers/watchdog/orion_wdt.c @@ -238,8 +238,10 @@ static int armada370_start(struct watchdog_device *wdt_dev) atomic_io_modify(dev->reg + TIMER_A370_STATUS, WDT_A370_EXPIRED, 0); /* Enable watchdog timer */ - atomic_io_modify(dev->reg + TIMER_CTRL, dev->data->wdt_enable_bit, - dev->data->wdt_enable_bit); + reg = dev->data->wdt_enable_bit; + if (dev->wdt.info->options & WDIOF_PRETIMEOUT) + reg |= TIMER1_ENABLE_BIT; + atomic_io_modify(dev->reg + TIMER_CTRL, reg, reg); /* Enable reset on watchdog */ reg = readl(dev->rstout); @@ -312,7 +314,7 @@ static int armada375_stop(struct watchdog_device *wdt_dev) static int armada370_stop(struct watchdog_device *wdt_dev) { struct orion_watchdog *dev = watchdog_get_drvdata(wdt_dev); - u32 reg; + u32 reg, mask; /* Disable reset on watchdog */ reg = readl(dev->rstout); @@ -320,7 +322,10 @@ static int armada370_stop(struct watchdog_device *wdt_dev) writel(reg, dev->rstout); /* Disable watchdog timer */ - atomic_io_modify(dev->reg + TIMER_CTRL, dev->data->wdt_enable_bit, 0); + mask = dev->data->wdt_enable_bit; + if (wdt_dev->info->options & WDIOF_PRETIMEOUT) + mask |= TIMER1_ENABLE_BIT; + atomic_io_modify(dev->reg + TIMER_CTRL, mask, 0); return 0; } -- 2.35.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] watchdog: orion_wdt: support pretimeout on Armada-XP 2022-02-11 0:32 ` [PATCH 2/2] watchdog: orion_wdt: support pretimeout on Armada-XP Chris Packham @ 2022-02-14 15:36 ` Gregory CLEMENT 2022-02-14 15:57 ` Guenter Roeck 1 sibling, 0 replies; 10+ messages in thread From: Gregory CLEMENT @ 2022-02-14 15:36 UTC (permalink / raw) To: Chris Packham, andrew, robh+dt, wim, linux Cc: linux-arm-kernel, devicetree, linux-kernel, linux-watchdog, Chris Packham Chris Packham <chris.packham@alliedtelesis.co.nz> writes: > Commit e07a4c79ca75 ("watchdog: orion_wdt: use timer1 as a pretimeout") > added support for a pretimeout on Armada-38x variants. Because the > Armada-XP variants use armada370_start/armada370_stop (due to missing an > explicit RSTOUT mask bit for the watchdog). Add the required pretimeout > support to armada370_start/armada370_stop for Armada-XP. > > Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> Reviewed-by: Gregory CLEMENT <gregory.clement@bootlin.com> Thanks, Gregory > --- > drivers/watchdog/orion_wdt.c | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/drivers/watchdog/orion_wdt.c b/drivers/watchdog/orion_wdt.c > index 127eefc9161d..e25e6bf4647f 100644 > --- a/drivers/watchdog/orion_wdt.c > +++ b/drivers/watchdog/orion_wdt.c > @@ -238,8 +238,10 @@ static int armada370_start(struct watchdog_device *wdt_dev) > atomic_io_modify(dev->reg + TIMER_A370_STATUS, WDT_A370_EXPIRED, 0); > > /* Enable watchdog timer */ > - atomic_io_modify(dev->reg + TIMER_CTRL, dev->data->wdt_enable_bit, > - dev->data->wdt_enable_bit); > + reg = dev->data->wdt_enable_bit; > + if (dev->wdt.info->options & WDIOF_PRETIMEOUT) > + reg |= TIMER1_ENABLE_BIT; > + atomic_io_modify(dev->reg + TIMER_CTRL, reg, reg); > > /* Enable reset on watchdog */ > reg = readl(dev->rstout); > @@ -312,7 +314,7 @@ static int armada375_stop(struct watchdog_device *wdt_dev) > static int armada370_stop(struct watchdog_device *wdt_dev) > { > struct orion_watchdog *dev = watchdog_get_drvdata(wdt_dev); > - u32 reg; > + u32 reg, mask; > > /* Disable reset on watchdog */ > reg = readl(dev->rstout); > @@ -320,7 +322,10 @@ static int armada370_stop(struct watchdog_device *wdt_dev) > writel(reg, dev->rstout); > > /* Disable watchdog timer */ > - atomic_io_modify(dev->reg + TIMER_CTRL, dev->data->wdt_enable_bit, 0); > + mask = dev->data->wdt_enable_bit; > + if (wdt_dev->info->options & WDIOF_PRETIMEOUT) > + mask |= TIMER1_ENABLE_BIT; > + atomic_io_modify(dev->reg + TIMER_CTRL, mask, 0); > > return 0; > } > -- > 2.35.1 > -- Gregory Clement, Bootlin Embedded Linux and Kernel engineering http://bootlin.com _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] watchdog: orion_wdt: support pretimeout on Armada-XP 2022-02-11 0:32 ` [PATCH 2/2] watchdog: orion_wdt: support pretimeout on Armada-XP Chris Packham 2022-02-14 15:36 ` Gregory CLEMENT @ 2022-02-14 15:57 ` Guenter Roeck 1 sibling, 0 replies; 10+ messages in thread From: Guenter Roeck @ 2022-02-14 15:57 UTC (permalink / raw) To: Chris Packham Cc: andrew, gregory.clement, robh+dt, wim, linux-arm-kernel, devicetree, linux-kernel, linux-watchdog On Fri, Feb 11, 2022 at 01:32:57PM +1300, Chris Packham wrote: > Commit e07a4c79ca75 ("watchdog: orion_wdt: use timer1 as a pretimeout") > added support for a pretimeout on Armada-38x variants. Because the > Armada-XP variants use armada370_start/armada370_stop (due to missing an > explicit RSTOUT mask bit for the watchdog). Add the required pretimeout > support to armada370_start/armada370_stop for Armada-XP. > > Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> > Reviewed-by: Gregory CLEMENT <gregory.clement@bootlin.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> > --- > drivers/watchdog/orion_wdt.c | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/drivers/watchdog/orion_wdt.c b/drivers/watchdog/orion_wdt.c > index 127eefc9161d..e25e6bf4647f 100644 > --- a/drivers/watchdog/orion_wdt.c > +++ b/drivers/watchdog/orion_wdt.c > @@ -238,8 +238,10 @@ static int armada370_start(struct watchdog_device *wdt_dev) > atomic_io_modify(dev->reg + TIMER_A370_STATUS, WDT_A370_EXPIRED, 0); > > /* Enable watchdog timer */ > - atomic_io_modify(dev->reg + TIMER_CTRL, dev->data->wdt_enable_bit, > - dev->data->wdt_enable_bit); > + reg = dev->data->wdt_enable_bit; > + if (dev->wdt.info->options & WDIOF_PRETIMEOUT) > + reg |= TIMER1_ENABLE_BIT; > + atomic_io_modify(dev->reg + TIMER_CTRL, reg, reg); > > /* Enable reset on watchdog */ > reg = readl(dev->rstout); > @@ -312,7 +314,7 @@ static int armada375_stop(struct watchdog_device *wdt_dev) > static int armada370_stop(struct watchdog_device *wdt_dev) > { > struct orion_watchdog *dev = watchdog_get_drvdata(wdt_dev); > - u32 reg; > + u32 reg, mask; > > /* Disable reset on watchdog */ > reg = readl(dev->rstout); > @@ -320,7 +322,10 @@ static int armada370_stop(struct watchdog_device *wdt_dev) > writel(reg, dev->rstout); > > /* Disable watchdog timer */ > - atomic_io_modify(dev->reg + TIMER_CTRL, dev->data->wdt_enable_bit, 0); > + mask = dev->data->wdt_enable_bit; > + if (wdt_dev->info->options & WDIOF_PRETIMEOUT) > + mask |= TIMER1_ENABLE_BIT; > + atomic_io_modify(dev->reg + TIMER_CTRL, mask, 0); > > return 0; > } _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-11-27 23:43 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-02-11 0:32 [PATCH 0/2] watchdog: Pretimeout support for Armada-XP Chris Packham 2022-02-11 0:32 ` [PATCH 1/2] ARM: dts: armada-xp: add interrupts for watchdog Chris Packham 2022-02-14 15:39 ` Gregory CLEMENT 2022-10-16 22:39 ` Chris Packham 2022-10-17 0:20 ` Guenter Roeck 2022-11-27 23:42 ` Gregory CLEMENT 2022-02-14 15:58 ` Guenter Roeck 2022-02-11 0:32 ` [PATCH 2/2] watchdog: orion_wdt: support pretimeout on Armada-XP Chris Packham 2022-02-14 15:36 ` Gregory CLEMENT 2022-02-14 15:57 ` Guenter Roeck
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).