sched: EAS: use busy energy cost when CPU is not in a C-state

When the CPU is idle but not in a C-state, i.e. not in WFI
regardless of its load the CPU's energy cost is proportional to its
frequency rather than static.  However at present energy_diff() tends
to underestimate energy cost of CPU not in a C-state when a CPU's
load is low by assuming energy cost is static.

Use energy cost of CPU frequency rather than static idle cost when CPU
is not in a C-state.

Change-Id: I63060be34652f3a1e8f85eca235440e033e614ee
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 48522e8..9b6ffd3 100755
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -5602,8 +5602,13 @@
 				idle_idx = group_idle_state(sg);
 				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);
+
+				if (idle_idx == 0)
+					sg_idle_energy = ((SCHED_CAPACITY_SCALE - group_util)
+							* sg->sge->cap_states[cap_idx].power);
+				else
+					sg_idle_energy = ((SCHED_CAPACITY_SCALE - group_util)
+							* sg->sge->idle_states[idle_idx].power);
 
 				total_energy += sg_busy_energy + sg_idle_energy;