Subject: [PATCH v2] watchdog: make DesignWare watchdog allow users to set bigger timeout value

From aabaa4b709bd451e566c906e8d1dca48f92f9b12 Mon Sep 17 00:00:00 2001
From: Peng Wang <[email protected]>
Date: Wed, 20 Nov 2019 15:12:59 +0800
Subject: [PATCH] watchdog: make DesignWare watchdog allow users to set bigger
timeout value

watchdog_dev.c provides means to allow users to set bigger timeout value
than HW can support, make DesignWare watchdog align with this.

---

v2 -> v1:
- use top_s to compare with wdd->max_hw_heartbeat_ms
- update wdd->timeout in case it's greater than HW supports
- fix comments error

v1: initial version

Signed-off-by: Peng Wang <[email protected]>
---
drivers/watchdog/dw_wdt.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
index fef7c61..12c116e 100644
--- a/drivers/watchdog/dw_wdt.c
+++ b/drivers/watchdog/dw_wdt.c
@@ -114,7 +114,15 @@ static int dw_wdt_set_timeout(struct watchdog_device *wdd, unsigned int top_s)
writel(top_val | top_val << WDOG_TIMEOUT_RANGE_TOPINIT_SHIFT,
dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET);

- wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
+ /*
+ * In case users set bigger timeout value than HW can support,
+ * kernel(watchdog_dev.c) helps to feed watchdog before
+ * wdd->max_hw_heartbeat_ms
+ */
+ if ( top_s * 1000 <= wdd->max_hw_heartbeat_ms )
+ wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
+ else
+ wdd->timeout = top_s;

return 0;
}
--
1.8.3.1


2019-11-21 14:17:25

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH v2] watchdog: make DesignWare watchdog allow users to set bigger timeout value

On Thu, Nov 21, 2019 at 10:35:12AM +0000, Wang, Peng 1. (NSB - CN/Hangzhou) wrote:
> From aabaa4b709bd451e566c906e8d1dca48f92f9b12 Mon Sep 17 00:00:00 2001
> From: Peng Wang <[email protected]>
> Date: Wed, 20 Nov 2019 15:12:59 +0800
> Subject: [PATCH] watchdog: make DesignWare watchdog allow users to set bigger
> timeout value
>
> watchdog_dev.c provides means to allow users to set bigger timeout value
> than HW can support, make DesignWare watchdog align with this.
>
> ---
>
> v2 -> v1:
> - use top_s to compare with wdd->max_hw_heartbeat_ms
> - update wdd->timeout in case it's greater than HW supports
> - fix comments error
>
> v1: initial version
>
> Signed-off-by: Peng Wang <[email protected]>

Reviewed-by: Guenter Roeck <[email protected]>

> ---
> drivers/watchdog/dw_wdt.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
> index fef7c61..12c116e 100644
> --- a/drivers/watchdog/dw_wdt.c
> +++ b/drivers/watchdog/dw_wdt.c
> @@ -114,7 +114,15 @@ static int dw_wdt_set_timeout(struct watchdog_device *wdd, unsigned int top_s)
> writel(top_val | top_val << WDOG_TIMEOUT_RANGE_TOPINIT_SHIFT,
> dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET);
>
> - wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
> + /*
> + * In case users set bigger timeout value than HW can support,
> + * kernel(watchdog_dev.c) helps to feed watchdog before
> + * wdd->max_hw_heartbeat_ms
> + */
> + if ( top_s * 1000 <= wdd->max_hw_heartbeat_ms )
> + wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
> + else
> + wdd->timeout = top_s;
>
> return 0;
> }
> --
> 1.8.3.1
>

Subject: RE: [PATCH v2] watchdog: make DesignWare watchdog allow users to set bigger timeout value

> Reviewed-by: Guenter Roeck <[email protected]>

Roeck, thanks for your time to guide me to finish the review. Do I need to re-send a mail with your sign?

Peng Wang

-----Original Message-----
From: Guenter Roeck [mailto:[email protected]] On Behalf Of Guenter Roeck
Sent: Thursday, November 21, 2019 10:15 PM
To: Wang, Peng 1. (NSB - CN/Hangzhou) <[email protected]>
Cc: Guenter Roeck <[email protected]>; [email protected]; [email protected]; [email protected]
Subject: Re: [PATCH v2] watchdog: make DesignWare watchdog allow users to set bigger timeout value

On Thu, Nov 21, 2019 at 10:35:12AM +0000, Wang, Peng 1. (NSB - CN/Hangzhou) wrote:
> From aabaa4b709bd451e566c906e8d1dca48f92f9b12 Mon Sep 17 00:00:00 2001
> From: Peng Wang <[email protected]>
> Date: Wed, 20 Nov 2019 15:12:59 +0800
> Subject: [PATCH] watchdog: make DesignWare watchdog allow users to set
> bigger timeout value
>
> watchdog_dev.c provides means to allow users to set bigger timeout
> value than HW can support, make DesignWare watchdog align with this.
>
> ---
>
> v2 -> v1:
> - use top_s to compare with wdd->max_hw_heartbeat_ms
> - update wdd->timeout in case it's greater than HW supports
> - fix comments error
>
> v1: initial version
>
> Signed-off-by: Peng Wang <[email protected]>

Reviewed-by: Guenter Roeck <[email protected]>

> ---
> drivers/watchdog/dw_wdt.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
> index fef7c61..12c116e 100644
> --- a/drivers/watchdog/dw_wdt.c
> +++ b/drivers/watchdog/dw_wdt.c
> @@ -114,7 +114,15 @@ static int dw_wdt_set_timeout(struct watchdog_device *wdd, unsigned int top_s)
> writel(top_val | top_val << WDOG_TIMEOUT_RANGE_TOPINIT_SHIFT,
> dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET);
>
> - wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
> + /*
> + * In case users set bigger timeout value than HW can support,
> + * kernel(watchdog_dev.c) helps to feed watchdog before
> + * wdd->max_hw_heartbeat_ms
> + */
> + if ( top_s * 1000 <= wdd->max_hw_heartbeat_ms )
> + wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
> + else
> + wdd->timeout = top_s;
>
> return 0;
> }
> --
> 1.8.3.1
>

2019-11-22 02:44:54

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH v2] watchdog: make DesignWare watchdog allow users to set bigger timeout value

On 11/21/19 5:16 PM, Wang, Peng 1. (NSB - CN/Hangzhou) wrote:
>> Reviewed-by: Guenter Roeck <[email protected]>
>
> Roeck, thanks for your time to guide me to finish the review. Do I need to re-send a mail with your sign?
>

No, that won't be necessary.

Guenter

> Peng Wang
>
> -----Original Message-----
> From: Guenter Roeck [mailto:[email protected]] On Behalf Of Guenter Roeck
> Sent: Thursday, November 21, 2019 10:15 PM
> To: Wang, Peng 1. (NSB - CN/Hangzhou) <[email protected]>
> Cc: Guenter Roeck <[email protected]>; [email protected]; [email protected]; [email protected]
> Subject: Re: [PATCH v2] watchdog: make DesignWare watchdog allow users to set bigger timeout value
>
> On Thu, Nov 21, 2019 at 10:35:12AM +0000, Wang, Peng 1. (NSB - CN/Hangzhou) wrote:
>> From aabaa4b709bd451e566c906e8d1dca48f92f9b12 Mon Sep 17 00:00:00 2001
>> From: Peng Wang <[email protected]>
>> Date: Wed, 20 Nov 2019 15:12:59 +0800
>> Subject: [PATCH] watchdog: make DesignWare watchdog allow users to set
>> bigger timeout value
>>
>> watchdog_dev.c provides means to allow users to set bigger timeout
>> value than HW can support, make DesignWare watchdog align with this.
>>
>> ---
>>
>> v2 -> v1:
>> - use top_s to compare with wdd->max_hw_heartbeat_ms
>> - update wdd->timeout in case it's greater than HW supports
>> - fix comments error
>>
>> v1: initial version
>>
>> Signed-off-by: Peng Wang <[email protected]>
>
> Reviewed-by: Guenter Roeck <[email protected]>
>
>> ---
>> drivers/watchdog/dw_wdt.c | 10 +++++++++-
>> 1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
>> index fef7c61..12c116e 100644
>> --- a/drivers/watchdog/dw_wdt.c
>> +++ b/drivers/watchdog/dw_wdt.c
>> @@ -114,7 +114,15 @@ static int dw_wdt_set_timeout(struct watchdog_device *wdd, unsigned int top_s)
>> writel(top_val | top_val << WDOG_TIMEOUT_RANGE_TOPINIT_SHIFT,
>> dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET);
>>
>> - wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
>> + /*
>> + * In case users set bigger timeout value than HW can support,
>> + * kernel(watchdog_dev.c) helps to feed watchdog before
>> + * wdd->max_hw_heartbeat_ms
>> + */
>> + if ( top_s * 1000 <= wdd->max_hw_heartbeat_ms )
>> + wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
>> + else
>> + wdd->timeout = top_s;
>>
>> return 0;
>> }
>> --
>> 1.8.3.1
>>
>

Subject: RE: [PATCH v2] watchdog: make DesignWare watchdog allow users to set bigger timeout value

> No, that won't be necessary.

ok, thank you very much again :)

Peng Wang
-----Original Message-----
From: Guenter Roeck [mailto:[email protected]] On Behalf Of Guenter Roeck
Sent: Friday, November 22, 2019 10:41 AM
To: Wang, Peng 1. (NSB - CN/Hangzhou) <[email protected]>
Cc: Guenter Roeck <[email protected]>; [email protected]; [email protected]; [email protected]
Subject: Re: [PATCH v2] watchdog: make DesignWare watchdog allow users to set bigger timeout value

On 11/21/19 5:16 PM, Wang, Peng 1. (NSB - CN/Hangzhou) wrote:
>> Reviewed-by: Guenter Roeck <[email protected]>
>
> Roeck, thanks for your time to guide me to finish the review. Do I need to re-send a mail with your sign?
>

No, that won't be necessary.

Guenter

> Peng Wang
>
> -----Original Message-----
> From: Guenter Roeck [mailto:[email protected]] On Behalf Of Guenter
> Roeck
> Sent: Thursday, November 21, 2019 10:15 PM
> To: Wang, Peng 1. (NSB - CN/Hangzhou) <[email protected]>
> Cc: Guenter Roeck <[email protected]>; [email protected];
> [email protected]; [email protected]
> Subject: Re: [PATCH v2] watchdog: make DesignWare watchdog allow users
> to set bigger timeout value
>
> On Thu, Nov 21, 2019 at 10:35:12AM +0000, Wang, Peng 1. (NSB - CN/Hangzhou) wrote:
>> From aabaa4b709bd451e566c906e8d1dca48f92f9b12 Mon Sep 17 00:00:00
>> 2001
>> From: Peng Wang <[email protected]>
>> Date: Wed, 20 Nov 2019 15:12:59 +0800
>> Subject: [PATCH] watchdog: make DesignWare watchdog allow users to
>> set bigger timeout value
>>
>> watchdog_dev.c provides means to allow users to set bigger timeout
>> value than HW can support, make DesignWare watchdog align with this.
>>
>> ---
>>
>> v2 -> v1:
>> - use top_s to compare with wdd->max_hw_heartbeat_ms
>> - update wdd->timeout in case it's greater than HW supports
>> - fix comments error
>>
>> v1: initial version
>>
>> Signed-off-by: Peng Wang <[email protected]>
>
> Reviewed-by: Guenter Roeck <[email protected]>
>
>> ---
>> drivers/watchdog/dw_wdt.c | 10 +++++++++-
>> 1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
>> index fef7c61..12c116e 100644
>> --- a/drivers/watchdog/dw_wdt.c
>> +++ b/drivers/watchdog/dw_wdt.c
>> @@ -114,7 +114,15 @@ static int dw_wdt_set_timeout(struct watchdog_device *wdd, unsigned int top_s)
>> writel(top_val | top_val << WDOG_TIMEOUT_RANGE_TOPINIT_SHIFT,
>> dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET);
>>
>> - wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
>> + /*
>> + * In case users set bigger timeout value than HW can support,
>> + * kernel(watchdog_dev.c) helps to feed watchdog before
>> + * wdd->max_hw_heartbeat_ms
>> + */
>> + if ( top_s * 1000 <= wdd->max_hw_heartbeat_ms )
>> + wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
>> + else
>> + wdd->timeout = top_s;
>>
>> return 0;
>> }
>> --
>> 1.8.3.1
>>
>

2019-11-22 05:40:27

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH v2] watchdog: make DesignWare watchdog allow users to set bigger timeout value

On 11/21/19 2:35 AM, Wang, Peng 1. (NSB - CN/Hangzhou) wrote:
> From aabaa4b709bd451e566c906e8d1dca48f92f9b12 Mon Sep 17 00:00:00 2001
> From: Peng Wang <[email protected]>
> Date: Wed, 20 Nov 2019 15:12:59 +0800
> Subject: [PATCH] watchdog: make DesignWare watchdog allow users to set bigger
> timeout value
>
> watchdog_dev.c provides means to allow users to set bigger timeout value
> than HW can support, make DesignWare watchdog align with this.
>
> ---
>
> v2 -> v1:
> - use top_s to compare with wdd->max_hw_heartbeat_ms
> - update wdd->timeout in case it's greater than HW supports
> - fix comments error
>
> v1: initial version
>
> Signed-off-by: Peng Wang <[email protected]>

Sigh. I should have paid closer attention. Signed-off-by: has to be ahead of ---,

and the change log after it. The above format messes up everything.

Also, please run checkpatch and fix the problems it reports.

Sorry for not noticing it earlier. Please fix the problems and resubmit.

Thanks,

Guenter

> ---
> drivers/watchdog/dw_wdt.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
> index fef7c61..12c116e 100644
> --- a/drivers/watchdog/dw_wdt.c
> +++ b/drivers/watchdog/dw_wdt.c
> @@ -114,7 +114,15 @@ static int dw_wdt_set_timeout(struct watchdog_device *wdd, unsigned int top_s)
> writel(top_val | top_val << WDOG_TIMEOUT_RANGE_TOPINIT_SHIFT,
> dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET);
>
> - wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
> + /*
> + * In case users set bigger timeout value than HW can support,
> + * kernel(watchdog_dev.c) helps to feed watchdog before
> + * wdd->max_hw_heartbeat_ms
> + */
> + if ( top_s * 1000 <= wdd->max_hw_heartbeat_ms )
> + wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
> + else
> + wdd->timeout = top_s;
>
> return 0;
> }


Subject: RE: [PATCH v2] watchdog: make DesignWare watchdog allow users to set bigger timeout value

>Sigh. I should have paid closer attention. Signed-off-by: has to be ahead of ---,
>and the change log after it. The above format messes up everything.
>Also, please run checkpatch and fix the problems it reports.
>Sorry for not noticing it earlier. Please fix the problems and resubmit.

Ok, I'll re-submit the patch.

Thanks,

Peng Wang

-----Original Message-----
From: Guenter Roeck [mailto:[email protected]] On Behalf Of Guenter Roeck
Sent: Friday, November 22, 2019 1:39 PM
To: Wang, Peng 1. (NSB - CN/Hangzhou) <[email protected]>; Guenter Roeck <[email protected]>
Cc: [email protected]; [email protected]; [email protected]
Subject: Re: [PATCH v2] watchdog: make DesignWare watchdog allow users to set bigger timeout value

On 11/21/19 2:35 AM, Wang, Peng 1. (NSB - CN/Hangzhou) wrote:
> From aabaa4b709bd451e566c906e8d1dca48f92f9b12 Mon Sep 17 00:00:00
> 2001
> From: Peng Wang <[email protected]>
> Date: Wed, 20 Nov 2019 15:12:59 +0800
> Subject: [PATCH] watchdog: make DesignWare watchdog allow users to set bigger
> timeout value
>
> watchdog_dev.c provides means to allow users to set bigger timeout
> value than HW can support, make DesignWare watchdog align with this.
>
> ---
>
> v2 -> v1:
> - use top_s to compare with wdd->max_hw_heartbeat_ms
> - update wdd->timeout in case it's greater than HW supports
> - fix comments error
>
> v1: initial version
>
> Signed-off-by: Peng Wang <[email protected]>

Sigh. I should have paid closer attention. Signed-off-by: has to be ahead of ---,

and the change log after it. The above format messes up everything.

Also, please run checkpatch and fix the problems it reports.

Sorry for not noticing it earlier. Please fix the problems and resubmit.

Thanks,

Guenter

> ---
> drivers/watchdog/dw_wdt.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
> index fef7c61..12c116e 100644
> --- a/drivers/watchdog/dw_wdt.c
> +++ b/drivers/watchdog/dw_wdt.c
> @@ -114,7 +114,15 @@ static int dw_wdt_set_timeout(struct watchdog_device *wdd, unsigned int top_s)
> writel(top_val | top_val << WDOG_TIMEOUT_RANGE_TOPINIT_SHIFT,
> dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET);
>
> - wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
> + /*
> + * In case users set bigger timeout value than HW can support,
> + * kernel(watchdog_dev.c) helps to feed watchdog before
> + * wdd->max_hw_heartbeat_ms
> + */
> + if ( top_s * 1000 <= wdd->max_hw_heartbeat_ms )
> + wdd->timeout = dw_wdt_top_in_seconds(dw_wdt, top_val);
> + else
> + wdd->timeout = top_s;
>
> return 0;
> }