svn commit: r214781 - head/sbin/camcontrol
Bruce Cran
bruce at cran.org.uk
Thu Nov 4 20:22:08 UTC 2010
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;
--
Bruce Cran
More information about the svn-src-head
mailing list