From e2f291faa9385376330754ed16404bd45445cc36 Mon Sep 17 00:00:00 2001 From: Finley Xiao Date: Thu, 11 Jul 2019 19:08:57 +0800 Subject: [PATCH] MALI: midgard: Fix power coefficient overflow Change-Id: Ie0ceca32a33a5a8da56d3a32913e819a7e31e45b Signed-off-by: Finley Xiao --- drivers/gpu/arm/midgard/ipa/mali_kbase_ipa_simple.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/arm/midgard/ipa/mali_kbase_ipa_simple.c b/drivers/gpu/arm/midgard/ipa/mali_kbase_ipa_simple.c index e11bfb092c7c..da0a4d4a0e7e 100644 --- a/drivers/gpu/arm/midgard/ipa/mali_kbase_ipa_simple.c +++ b/drivers/gpu/arm/midgard/ipa/mali_kbase_ipa_simple.c @@ -99,6 +99,7 @@ static int model_static_coeff(struct kbase_ipa_model *model, u32 *coeffp) struct kbase_ipa_model_simple_data *model_data = (struct kbase_ipa_model_simple_data *) model->model_data; struct thermal_zone_device *gpu_tz = model_data->gpu_tz; + u64 coeffp_big; if (gpu_tz) { int ret; @@ -115,9 +116,8 @@ static int model_static_coeff(struct kbase_ipa_model *model, u32 *coeffp) temp_scaling_factor = calculate_temp_scaling_factor(model_data->ts, temp); - - *coeffp = model_data->static_coefficient * temp_scaling_factor; - *coeffp /= 1000000; + coeffp_big = (u64)model_data->static_coefficient * temp_scaling_factor; + *coeffp = div_u64(coeffp_big, 1000000); return 0; }