From: Dmitry Baryshkov Date: Fri, 4 Dec 2020 02:54:58 +0000 (+0300) Subject: iio: adc: qcom-vadc-common: use fixp_linear_interpolate X-Git-Tag: microblaze-v5.13~116^2~4^2~7 X-Git-Url: http://git.monstr.eu/?a=commitdiff_plain;h=e2621acd6d9af5b3d5584ddf0fd7994472d6199e;p=linux-2.6-microblaze.git iio: adc: qcom-vadc-common: use fixp_linear_interpolate Use new function fixp_linear_interpolate() instead of hand-coding the linear interpolation. Signed-off-by: Dmitry Baryshkov Link: https://lore.kernel.org/r/20201204025509.1075506-5-dmitry.baryshkov@linaro.org Signed-off-by: Jonathan Cameron --- diff --git a/drivers/iio/adc/qcom-vadc-common.c b/drivers/iio/adc/qcom-vadc-common.c index d11f3343ad52..40d77b3af1bb 100644 --- a/drivers/iio/adc/qcom-vadc-common.c +++ b/drivers/iio/adc/qcom-vadc-common.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include #include @@ -368,10 +369,9 @@ static int qcom_vadc_map_voltage_temp(const struct vadc_map_pt *pts, } else { /* result is between search_index and search_index-1 */ /* interpolate linearly */ - *output = (((s32)((pts[i].y - pts[i - 1].y) * - (input - pts[i - 1].x)) / - (pts[i].x - pts[i - 1].x)) + - pts[i - 1].y); + *output = fixp_linear_interpolate(pts[i - 1].x, pts[i - 1].y, + pts[i].x, pts[i].y, + input); } return 0;