[PATCH v3 1/2] watchdog: dw_wdt: add stop watchdog operation

Guenter Roeck linux at roeck-us.net
Tue Sep 26 00:06:45 PDT 2017


On 09/25/2017 10:17 PM, Oleksij Rempel wrote:
> Hi,
> 
> On 25.09.2017 18:16, Guenter Roeck wrote:
>> On Mon, Sep 25, 2017 at 07:25:30AM +0200, Oleksij Rempel wrote:
>>> From: Steffen Trumtrar <s.trumtrar at pengutronix.de>
>>>
>>> The only way of stopping the watchdog is by resetting it.
>>> Add the watchdog op for stopping the device and reset if
>>> a reset line is provided.
>>>
>>> Signed-off-by: Steffen Trumtrar <s.trumtrar at pengutronix.de>
>>> Signed-off-by: Oleksij Rempel <o.rempel at pengutronix.de>
>>> Cc: Wim Van Sebroeck <wim at iguana.be>
>>> Cc: Guenter Roeck <linux at roeck-us.net>
>>> Cc: linux-watchdog at vger.kernel.org
>>> ---
>>>
>>> changes v3:
>>>   - don't return error if rst is not present and set WDOG_HW_RUNNING bit
>>>     to notify watchdog core.
>>>
>>> changes v2:
>>>   - test if dw_wdt->rst is NULL instead of IS_ERR
>>>
>>>   drivers/watchdog/dw_wdt.c | 16 ++++++++++++++++
>>>   1 file changed, 16 insertions(+)
>>>
>>> diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
>>> index 36be987ff9ef..6cc56b18ee52 100644
>>> --- a/drivers/watchdog/dw_wdt.c
>>> +++ b/drivers/watchdog/dw_wdt.c
>>> @@ -135,6 +135,21 @@ static int dw_wdt_start(struct watchdog_device *wdd)
>>>       return 0;
>>>   }
>>> +static int dw_wdt_stop(struct watchdog_device *wdd)
>>> +{
>>> +    struct dw_wdt *dw_wdt = to_dw_wdt(wdd);
>>> +
>>> +    if (!dw_wdt->rst) {
>>> +        set_bit(WDOG_HW_RUNNING, &wdd->status);
>>
>> Setting WDOG_HW_RUNNING should be dropped from dw_wdt_start().
> 
> you mean, this patch is OK, and i need to provide one more which is removing WDOG_HW_RUNNING from dw_wdt_start(). Correct?
> 

No. You are providing a stop function, thus the start function should not set the flag.

Guenter



More information about the linux-arm-kernel mailing list