> > +static int ebc_c384_wdt_set_timeout(struct watchdog_device *wdev, unsigned 
> > t)
> > +{
> > +   /* resolution is in minutes for timeouts greater than 255 seconds */
> > +   if (t > 255) {
> > +           /* truncate second resolution to minute resolution */
> > +           t /= 60;
> > +           wdev->timeout = t * 60;
> > +
> > +           /* set watchdog timer for minutes */
> > +           outb(0x00, CFG_ADDR);
> 
> If ask for 299 seconds surely I should get 300 not 240 ?
> (Whether to round off or round up is an interesting question for the
> middle range - does it go off early or late - I'd have said late but...)

This is my preference:
        if (t > 255)
                t = (((t - 1) / 60) + 1) * 60;

Which basically is a round-up to minutes
t = 256 -> gives 300
t = 299 -> gives 300 
t = 300 -> gives 300
t = 301 -> gives 360
t = 15299 -> gives 15300
t = 15300 -> gives 15300
t = 15301 -> gives 15360

So I am also for going late.

Kind regards,
Wim.

Reply via email to