Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2bd72d84 authored by Jonathan Cameron's avatar Jonathan Cameron
Browse files

iio:adc:qcom-spmi-vadc : fix undefined __divdi3



A simple do_div call works here as all the signed 64 bit is
actually small and unsigned at this point, and the numerator is
u32.

Introduce a temporary u64 variable to avoid type comparison warnings
on some architectures.

Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
Cc: Rama Krishna Phani A <rphani@codeaurora.org>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent c3b2fdd0
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -658,13 +658,15 @@ static int vadc_scale_die_temp(struct vadc_priv *vadc,
{
	const struct vadc_prescale_ratio *prescale;
	s64 voltage = 0;
	u64 temp; /* Temporary variable for do_div */

	vadc_scale_calib(vadc, adc_code, prop, &voltage);

	if (voltage > 0) {
		prescale = &vadc_prescale_ratios[prop->prescale];
		voltage = voltage * prescale->den;
		voltage /= (prescale->num * 2);
		temp = voltage * prescale->den;
		do_div(temp, prescale->num * 2);
		voltage = temp;
	} else {
		voltage = 0;
	}