···10761076{10771077 struct device **genpd_virt_devs =10781078 opp_table->genpd_virt_devs ? opp_table->genpd_virt_devs : &dev;10791079- int i, ret = 0;10791079+ int index, target, delta, ret = 0;10801080+10811081+ /* Scaling up? Set required OPPs in normal order, else reverse */10821082+ if (!scaling_down) {10831083+ index = 0;10841084+ target = opp_table->required_opp_count;10851085+ delta = 1;10861086+ } else {10871087+ index = opp_table->required_opp_count - 1;10881088+ target = -1;10891089+ delta = -1;10901090+ }1080109110811092 /*10821093 * Acquire genpd_virt_dev_lock to make sure we don't use a genpd_dev···10951084 */10961085 mutex_lock(&opp_table->genpd_virt_dev_lock);1097108610981098- /* Scaling up? Set required OPPs in normal order, else reverse */10991099- if (!scaling_down) {11001100- for (i = 0; i < opp_table->required_opp_count; i++) {11011101- ret = _set_performance_state(dev, genpd_virt_devs[i], opp, i);11021102- if (ret)11031103- break;11041104- }11051105- } else {11061106- for (i = opp_table->required_opp_count - 1; i >= 0; i--) {11071107- ret = _set_performance_state(dev, genpd_virt_devs[i], opp, i);11081108- if (ret)11091109- break;11101110- }10871087+ while (index != target) {10881088+ ret = _set_performance_state(dev, genpd_virt_devs[index], opp, index);10891089+ if (ret)10901090+ break;10911091+10921092+ index += delta;11111093 }1112109411131095 mutex_unlock(&opp_table->genpd_virt_dev_lock);