iio: adc: qcom-vadc-common: simplify qcom_vadc_map_voltage_temp
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Fri, 4 Dec 2020 02:55:04 +0000 (05:55 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 16 Jan 2021 18:34:29 +0000 (18:34 +0000)
All volt-temp tables here are sorted in descending order. There is no
need to accout for (unused) ascending table sorting case, so simplify
the conversion function.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20201204025509.1075506-11-dmitry.baryshkov@linaro.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/qcom-vadc-common.c

index 0c705bb..4418438 100644 (file)
@@ -346,38 +346,19 @@ static struct qcom_adc5_scale_type scale_adc5_fn[] = {
 static int qcom_vadc_map_voltage_temp(const struct vadc_map_pt *pts,
                                      u32 tablesize, s32 input, int *output)
 {
-       bool descending = 1;
        u32 i = 0;
 
        if (!pts)
                return -EINVAL;
 
-       /* Check if table is descending or ascending */
-       if (tablesize > 1) {
-               if (pts[0].x < pts[1].x)
-                       descending = 0;
-       }
-
-       while (i < tablesize) {
-               if ((descending) && (pts[i].x < input)) {
-                       /* table entry is less than measured*/
-                        /* value and table is descending, stop */
-                       break;
-               } else if ((!descending) &&
-                               (pts[i].x > input)) {
-                       /* table entry is greater than measured*/
-                       /*value and table is ascending, stop */
-                       break;
-               }
+       while (i < tablesize && pts[i].x > input)
                i++;
-       }
 
        if (i == 0) {
                *output = pts[0].y;
        } else if (i == tablesize) {
                *output = pts[tablesize - 1].y;
        } else {
-               /* result is between search_index and search_index-1 */
                /* interpolate linearly */
                *output = fixp_linear_interpolate(pts[i - 1].x, pts[i - 1].y,
                                                  pts[i].x, pts[i].y,