iio: bme680: Use DIV_ROUND_CLOSEST() instead of open-coding it
authorLars-Peter Clausen <lars@metafoo.de>
Sun, 27 Dec 2020 17:11:25 +0000 (18:11 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 9 Jan 2021 21:52:45 +0000 (21:52 +0000)
Use DIV_ROUND_CLOSEST() instead of open-coding it. This documents intent
and makes it more clear what is going on for the casual reviewer.

Generated using the following the Coccinelle semantic patch.

// <smpl>
@r1@
expression x;
constant C1;
constant C2;
@@
 ((x) + C1) / C2

@script:python@
C1 << r1.C1;
C2 << r1.C2;
@@
try:
if int(C1) * 2 != int(C2):
cocci.include_match(False)
except:
cocci.include_match(False)

@@
expression r1.x;
constant r1.C1;
constant r1.C2;
@@
-(((x) + C1) / C2)
+DIV_ROUND_CLOSEST(x, C2)
// </smpl>

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Link: https://lore.kernel.org/r/20201227171126.28216-2-lars@metafoo.de
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/chemical/bme680_core.c

index 6ea99e4..bf23cc7 100644 (file)
@@ -479,7 +479,7 @@ static u8 bme680_calc_heater_res(struct bme680_data *data, u16 temp)
        var4 = (var3 / (calib->res_heat_range + 4));
        var5 = 131 * calib->res_heat_val + 65536;
        heatr_res_x100 = ((var4 / var5) - 250) * 34;
-       heatr_res = (heatr_res_x100 + 50) / 100;
+       heatr_res = DIV_ROUND_CLOSEST(heatr_res_x100, 100);
 
        return heatr_res;
 }