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