Hi Guenter,

I an working on this

On 5 May 2015 at 00:37, Guenter Roeck <linux@roeck-us.net> wrote:
On Mon, May 04, 2015 at 05:19:26PM +0200, Arnd Bergmann wrote:
> On Monday 04 May 2015 20:04:47 fu.wei@linaro.org wrote:
> >  drivers/watchdog/Kconfig     |  10 +
> >  drivers/watchdog/Makefile    |   1 +
> >  drivers/watchdog/sbsa_gwdt.c | 578 +++++++++++++++++++++++++++++++++++++++++++
> >  drivers/watchdog/sbsa_gwdt.h |  99 ++++++++
> >
>
> To clarify my earlier comment: I actually meant to suggest moving the contents
> of sbsa_gwdt.h into sbsa_gwdt.c itself, and having only one file.
>
> > +static long sbsa_gwdt_ioctl(struct watchdog_device *wdd, unsigned int cmd,
> > +                               unsigned long arg)
> > +{
> > +       struct sbsa_gwdt *gwdt = watchdog_get_drvdata(wdd);
> > +       void __user *argp = (void __user *)arg;
> > +       int ret = -ENOIOCTLCMD;
> > +       unsigned int __user *p = argp;
> > +       unsigned int new_value;
> > +
> > +       /* FIXME: what else do we need here?? */
> > +       switch (cmd) {
> > +       case WDIOC_SETPRETIMEOUT:
> > +               if (get_user(new_value, p))
> > +                       return -EFAULT;
> > +               ret = sbsa_gwdt_set_pretimeout(wdd, new_value);
> > +               break;
> > +       case WDIOC_GETPRETIMEOUT:
> > +               ret = put_user(gwdt->pretimeout, (unsigned int __user
> > *)arg);
> > +               break;
> > +       }
> > +
> > +       return ret;
> > +}
>
> Here, I'd like to see the two ioctl commands get handled by the ioctl
> handler in drivers/watchdog/watchdog_dev.c in the same way that
> WDIOC_GETTIMEOUT/WDIOC_SETTIMEOUT are. Just add one more patch to the
> series to introduce a generic watchdog_set_pretimeout() function
> and a 'pretimeout' field in 'struct watchdog_device'.
>
Makes sense.

Guenter



--
Best regards,

Fu Wei
Software Engineer
Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch
Ph: +86 21 61221326(direct)
Ph: +86 186 2020 4684 (mobile)
Room 1512, Regus One Corporate Avenue,Level 15,
One Corporate Avenue,222 Hubin Road,Huangpu District,
Shanghai,China 200021