Bruce Cran wrote:
> On Thu, 04 Nov 2010 19:49:24 +0200
> Alexander Motin <[email protected]> wrote:
> 
>> This will round period down. You will get 30 minutes instead of 59. In
>> this case rounding up IMHO more appropriate. I agree that previous
>> rounding up was over aggressive. I would prefer something like:
>>              sc = (t - 1) / (30 * 60) + 241;
>> or at least
>>              sc = (t + 15 * 60) / (30 * 60) + 240;
>> This will also make previous range unneeded.
>>
>> Range "t <= (240 * 5)" probably also should be corrected to round up
>> or at least closest.
>>
> 
> Of course rounding up is more suitable. Would the following patch be
> ok:
> 
> Index: camcontrol.c
> ===================================================================
> --- camcontrol.c      (revision 214793)
> +++ camcontrol.c      (working copy)
> @@ -4312,18 +4312,16 @@
>               cmd = ATA_SLEEP;
>               t = -1;
>       }
> +
>       if (t < 0)
>               sc = 0;
>       else if (t <= (240 * 5))
> -             sc = t / 5;
> -     else if (t == (252 * 5))
> +             sc = (t + 4) / 5;
> +     else if (t <= (252 * 5))
>               /* special encoding for 21 minutes */
>               sc = 252;
> -     else if (t < (30 * 60))
> -             /* no encoding exists for 22-29 minutes, so set to 30
> mins */
> -             sc = 241;
>       else if (t <= (11 * 30 * 60))
> -             sc = t / (30 * 60) + 240;
> +             sc = (t - 1) / (30 * 60) + 241;
>       else
>               sc = 253;

It seems so. Thank you.

-- 
Alexander Motin
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to