Browse Source

hwmon: (lm85) Simplify RANGE_TO_REG

Function RANGE_TO_REG can easily be simplified. Credits go to Herbert
Poetzl for indirectly suggesting this to me. I tested that the new
implementation returns the same result as the original implementation
for all input values.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: Herbert Poetzl <herbert@13thfloor.at>
Jean Delvare 16 years ago
parent
commit
1b92adaddd
1 changed files with 4 additions and 11 deletions
  1. 4 11
      drivers/hwmon/lm85.c

+ 4 - 11
drivers/hwmon/lm85.c

@@ -174,20 +174,13 @@ static int RANGE_TO_REG(int range)
 {
 {
 	int i;
 	int i;
 
 
-	if (range >= lm85_range_map[15])
-		return 15;
-
 	/* Find the closest match */
 	/* Find the closest match */
-	for (i = 14; i >= 0; --i) {
-		if (range >= lm85_range_map[i]) {
-			if ((lm85_range_map[i + 1] - range) <
-					(range - lm85_range_map[i]))
-				return i + 1;
-			return i;
-		}
+	for (i = 0; i < 15; ++i) {
+		if (range <= (lm85_range_map[i] + lm85_range_map[i + 1]) / 2)
+			break;
 	}
 	}
 
 
-	return 0;
+	return i;
 }
 }
 #define RANGE_FROM_REG(val)	lm85_range_map[(val) & 0x0f]
 #define RANGE_FROM_REG(val)	lm85_range_map[(val) & 0x0f]