svn commit: r214781 - head/sbin/camcontrol
Alexander Motin
mav at FreeBSD.org
Thu Nov 4 20:24:18 UTC 2010
Bruce Cran wrote:
> On Thu, 04 Nov 2010 19:49:24 +0200
> Alexander Motin <mav at FreeBSD.org> 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
More information about the svn-src-head
mailing list