diff --git a/arch/arm64/boot/dts/exynos/exynos9810-starlte_eur_open_26.dts b/arch/arm64/boot/dts/exynos/exynos9810-starlte_eur_open_26.dts index 5a9829747d9b..04453900859a 100644 --- a/arch/arm64/boot/dts/exynos/exynos9810-starlte_eur_open_26.dts +++ b/arch/arm64/boot/dts/exynos/exynos9810-starlte_eur_open_26.dts @@ -3245,7 +3245,7 @@ 1024 7533 >; idle-cost-data = < - 10 + 200 0 0 >; @@ -3265,7 +3265,7 @@ 198 250 >; idle-cost-data = < - 1 + 200 0 0 >; @@ -3295,8 +3295,8 @@ 1024 2490 >; idle-cost-data = < - 268 - 268 + 768 + 768 0 >; }; @@ -3315,8 +3315,8 @@ 198 58 >; idle-cost-data = < - 5 - 5 + 200 + 200 0 >; }; diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 5c4cc8ece909..4d7cdb9a5307 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -5854,8 +5854,11 @@ static int sched_group_energy(struct energy_env *eenv) group_util = group_norm_util(eenv, sg); sg_busy_energy = (group_util * sg->sge->cap_states[cap_idx].power); - sg_idle_energy = ((SCHED_CAPACITY_SCALE-group_util) - * sg->sge->idle_states[idle_idx].power); + sg_idle_energy = ((SCHED_CAPACITY_SCALE-group_util) + * ((sg->sge->cap_states[cap_idx].power + * sg->sge->idle_states[idle_idx].power) + >> SCHED_CAPACITY_SHIFT) + ); total_energy += sg_busy_energy + sg_idle_energy;