mirror of
https://github.com/torvalds/linux.git
synced 2024-11-17 01:22:07 +00:00
iio: tsl2583: Use DIV_ROUND_CLOSEST() instead of open-coding it
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-3-lars@metafoo.de Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
166549bb1e
commit
9f094829ea
@ -285,7 +285,7 @@ static int tsl2583_get_lux(struct iio_dev *indio_dev)
|
||||
lux64 = lux64 * chip->als_settings.als_gain_trim;
|
||||
lux64 >>= 13;
|
||||
lux = lux64;
|
||||
lux = (lux + 500) / 1000;
|
||||
lux = DIV_ROUND_CLOSEST(lux, 1000);
|
||||
|
||||
if (lux > TSL2583_LUX_CALC_OVER_FLOW) { /* check for overflow */
|
||||
return_max:
|
||||
@ -361,12 +361,12 @@ static int tsl2583_set_als_time(struct tsl2583_chip *chip)
|
||||
u8 val;
|
||||
|
||||
/* determine als integration register */
|
||||
als_count = (chip->als_settings.als_time * 100 + 135) / 270;
|
||||
als_count = DIV_ROUND_CLOSEST(chip->als_settings.als_time * 100, 270);
|
||||
if (!als_count)
|
||||
als_count = 1; /* ensure at least one cycle */
|
||||
|
||||
/* convert back to time (encompasses overrides) */
|
||||
als_time = (als_count * 27 + 5) / 10;
|
||||
als_time = DIV_ROUND_CLOSEST(als_count * 27, 10);
|
||||
|
||||
val = 256 - als_count;
|
||||
ret = i2c_smbus_write_byte_data(chip->client,
|
||||
@ -380,7 +380,7 @@ static int tsl2583_set_als_time(struct tsl2583_chip *chip)
|
||||
|
||||
/* set chip struct re scaling and saturation */
|
||||
chip->als_saturation = als_count * 922; /* 90% of full scale */
|
||||
chip->als_time_scale = (als_time + 25) / 50;
|
||||
chip->als_time_scale = DIV_ROUND_CLOSEST(als_time, 50);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user