diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 574c9584923fef148ef245869cfe920d7753b9b1..62b6ca5e73561c11d7f4a5aca7eb735f6a45a1f8 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -2821,7 +2821,11 @@ static void smart_grid_work_handler(struct work_struct *work) return; } - for (gov_index = 0; gov_index < SMART_GRID_ZONE_NR; gov_index++) { + /* + * Because of the policy may be shared between hot and warm zone. + * We need to make sure hot zone have the highest priority. + */ + for (gov_index = SMART_GRID_ZONE_NR - 1; gov_index >= 0; gov_index--) { target_gov = cpufreq_parse_governor(sg_zone.governor_name[gov_index]); if (target_gov == NULL) continue;