hwmon: (w83795) use find_closest_descending() in pwm_freq_to_reg()
authorBartosz Golaszewski <bgolaszewski@baylibre.com>
Thu, 16 Apr 2015 19:43:39 +0000 (12:43 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 17 Apr 2015 13:03:55 +0000 (09:03 -0400)
Replace the loop iterating over pwm_freq_cksel0 with a call to
find_closest_descending().

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/hwmon/w83795.c

index 2189413..49276bb 100644 (file)
@@ -35,6 +35,7 @@
 #include <linux/err.h>
 #include <linux/mutex.h>
 #include <linux/jiffies.h>
+#include <linux/util_macros.h>
 
 /* Addresses to scan */
 static const unsigned short normal_i2c[] = {
@@ -308,11 +309,8 @@ static u8 pwm_freq_to_reg(unsigned long val, u16 clkin)
        unsigned long best0, best1;
 
        /* Best fit for cksel = 0 */
-       for (reg0 = 0; reg0 < ARRAY_SIZE(pwm_freq_cksel0) - 1; reg0++) {
-               if (val > (pwm_freq_cksel0[reg0] +
-                          pwm_freq_cksel0[reg0 + 1]) / 2)
-                       break;
-       }
+       reg0 = find_closest_descending(val, pwm_freq_cksel0,
+                                      ARRAY_SIZE(pwm_freq_cksel0));
        if (val < 375)  /* cksel = 1 can't beat this */
                return reg0;
        best0 = pwm_freq_cksel0[reg0];