Messages in this thread | | | Subject | Re: [PATCH] watchdog: imx_sc_wdt: Pretimeout should follow SCU firmware format | From | Guenter Roeck <> | Date | Wed, 9 Oct 2019 06:42:58 -0700 |
| |
On 10/9/19 12:37 AM, Anson Huang wrote: > SCU firmware calculates pretimeout based on current time stamp > instead of watchdog timeout stamp, need to convert the pretimeout > to SCU firmware's timeout value. > > Fixes: 15f7d7fc5542 ("watchdog: imx_sc: Add pretimeout support") > Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> --- > drivers/watchdog/imx_sc_wdt.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/watchdog/imx_sc_wdt.c b/drivers/watchdog/imx_sc_wdt.c > index 7ea5cf5..8ed89f0 100644 > --- a/drivers/watchdog/imx_sc_wdt.c > +++ b/drivers/watchdog/imx_sc_wdt.c > @@ -99,8 +99,14 @@ static int imx_sc_wdt_set_pretimeout(struct watchdog_device *wdog, > { > struct arm_smccc_res res; > > + /* > + * SCU firmware calculates pretimeout based on current time > + * stamp instead of watchdog timeout stamp, need to convert > + * the pretimeout to SCU firmware's timeout value. > + */ > arm_smccc_smc(IMX_SIP_TIMER, IMX_SIP_TIMER_SET_PRETIME_WDOG, > - pretimeout * 1000, 0, 0, 0, 0, 0, &res); > + (wdog->timeout - pretimeout) * 1000, 0, 0, 0, > + 0, 0, &res); > if (res.a0) > return -EACCES; > >
| |