Commit 8f50743f authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Dmitry Torokhov
Browse files

Input: max8997 - simplify open coding of a division using up to 64 divisions



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: default avatarUwe Kleine-König <uwe@kleine-koenig.org>
Link: https://lore.kernel.org/r/20210316212233.50765-1-uwe@kleine-koenig.org


Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 8b488ef2
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -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,