]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Input: max8997 - simplify open coding of a division using up to 64 divisions
authorUwe Kleine-König <uwe@kleine-koenig.org>
Sun, 21 Mar 2021 22:24:12 +0000 (15:24 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 25 Mar 2021 18:14:08 +0000 (11:14 -0700)
The for loop is just a complicate way to express a division. Replace it
by the actual division which is both simpler to understand for a human
and more efficient for a CPU to calculate.

Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org>
Link: https://lore.kernel.org/r/20210316212233.50765-1-uwe@kleine-koenig.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/misc/max8997_haptic.c

index 20ff087b8a44309801a05706048b926e961319f8..cd5e99ec1d3c882fa2b0279cedc479b994bc165a 100644 (file)
@@ -61,15 +61,10 @@ static int max8997_haptic_set_duty_cycle(struct max8997_haptic *chip)
                unsigned int duty = chip->pwm_period * chip->level / 100;
                ret = pwm_config(chip->pwm, duty, chip->pwm_period);
        } else {
-               int i;
                u8 duty_index = 0;
 
-               for (i = 0; i <= 64; i++) {
-                       if (chip->level <= i * 100 / 64) {
-                               duty_index = i;
-                               break;
-                       }
-               }
+               duty_index = DIV_ROUND_UP(chip->level * 64, 100);
+
                switch (chip->internal_mode_pattern) {
                case 0:
                        max8997_write_reg(chip->client,