From: Chunyan Zhang <chunyan.zh...@unisoc.com> The input parameter is int type, cause adc * 1000 could overflow. Change to use s64 to avoid this issue.
Fixes: 195ca1703784 ("power: supply: Add Spreadtrum SC27XX fuel gauge unit driver") Signed-off-by: Chen Yongzhi <yongzhi.c...@unisoc.com> Signed-off-by: Chunyan Zhang <chunyan.zh...@unisoc.com> --- drivers/power/supply/sc27xx_fuel_gauge.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/power/supply/sc27xx_fuel_gauge.c b/drivers/power/supply/sc27xx_fuel_gauge.c index be42e814ea34..a9838a2a673d 100644 --- a/drivers/power/supply/sc27xx_fuel_gauge.c +++ b/drivers/power/supply/sc27xx_fuel_gauge.c @@ -133,12 +133,12 @@ static const char * const sc27xx_charger_supply_name[] = { "sc2723_charger", }; -static int sc27xx_fgu_adc_to_current(struct sc27xx_fgu_data *data, int adc) +static int sc27xx_fgu_adc_to_current(struct sc27xx_fgu_data *data, s64 adc) { return DIV_ROUND_CLOSEST(adc * 1000, data->cur_1000ma_adc); } -static int sc27xx_fgu_adc_to_voltage(struct sc27xx_fgu_data *data, int adc) +static int sc27xx_fgu_adc_to_voltage(struct sc27xx_fgu_data *data, s64 adc) { return DIV_ROUND_CLOSEST(adc * 1000, data->vol_1000mv_adc); } -- 2.20.1