From 15abbd295bc127b6b2ad3cf2e1a2a65901a9dcc1 Mon Sep 17 00:00:00 2001 From: Jongpil Jung Date: Tue, 6 Aug 2019 18:57:41 +0900 Subject: motion: bh1730: use 1K scale for d1_1k/d0_1k To use integer instead of float, we use d1_1k/d0_1k instead of d1/d0. But when we devide value, d1_1k/d0_1k is not 1k base. So, before we use value, we need to multiply value by 1K. BUG=b:130835790 BRANCH=none TEST=make -j BOARD=kohaku flash ec.bin on kokaku and read lux with ectool motionsense Change-Id: If4e6abae43b4d296007680452f0584366825ad1e Signed-off-by: Jongpil Jung Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1739028 Tested-by: Philip Chen Reviewed-by: Paul Fagerburg Reviewed-by: Philip Chen Commit-Queue: Philip Chen --- driver/als_bh1730.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/driver/als_bh1730.c b/driver/als_bh1730.c index 9480b4c5f0..872fdaa012 100644 --- a/driver/als_bh1730.c +++ b/driver/als_bh1730.c @@ -24,11 +24,13 @@ static int bh1730_convert_to_lux(uint32_t data0_1) uint16_t data1 = data0_1 >> 16; uint32_t d0_1k = data0 * 1000; uint32_t d1_1k = data1 * 1000; - uint32_t d_temp = d1_1k / d0_1k; + uint32_t d_temp; uint32_t d_lux; if (data0 == 0) return 0; + else + d_temp = d1_1k / data0; if(d_temp < BH1730_LUXTH1_1K) { d0_1k = BH1730_LUXTH1_D0_1K * data0; -- cgit v1.2.1