Lines Matching refs:opp

167 unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp)  in dev_pm_opp_get_voltage()  argument
174 tmp_opp = rcu_dereference(opp); in dev_pm_opp_get_voltage()
199 unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp) in dev_pm_opp_get_freq() argument
206 tmp_opp = rcu_dereference(opp); in dev_pm_opp_get_freq()
283 struct dev_pm_opp *temp_opp, *opp = ERR_PTR(-ERANGE); in dev_pm_opp_find_freq_exact() local
297 opp = temp_opp; in dev_pm_opp_find_freq_exact()
302 return opp; in dev_pm_opp_find_freq_exact()
331 struct dev_pm_opp *temp_opp, *opp = ERR_PTR(-ERANGE); in dev_pm_opp_find_freq_ceil() local
346 opp = temp_opp; in dev_pm_opp_find_freq_ceil()
347 *freq = opp->rate; in dev_pm_opp_find_freq_ceil()
352 return opp; in dev_pm_opp_find_freq_ceil()
381 struct dev_pm_opp *temp_opp, *opp = ERR_PTR(-ERANGE); in dev_pm_opp_find_freq_floor() local
400 opp = temp_opp; in dev_pm_opp_find_freq_floor()
403 if (!IS_ERR(opp)) in dev_pm_opp_find_freq_floor()
404 *freq = opp->rate; in dev_pm_opp_find_freq_floor()
406 return opp; in dev_pm_opp_find_freq_floor()
471 struct dev_pm_opp *opp, *new_opp; in _opp_add_dynamic() local
507 list_for_each_entry_rcu(opp, &dev_opp->opp_list, node) { in _opp_add_dynamic()
508 if (new_opp->rate <= opp->rate) in _opp_add_dynamic()
511 head = &opp->node; in _opp_add_dynamic()
515 if (new_opp->rate == opp->rate) { in _opp_add_dynamic()
516 ret = opp->available && new_opp->u_volt == opp->u_volt ? in _opp_add_dynamic()
520 __func__, opp->rate, opp->u_volt, opp->available, in _opp_add_dynamic()
578 struct dev_pm_opp *opp = container_of(head, struct dev_pm_opp, rcu_head); in _kfree_opp_rcu() local
580 kfree_rcu(opp, rcu_head); in _kfree_opp_rcu()
606 struct dev_pm_opp *opp) in _opp_remove() argument
612 srcu_notifier_call_chain(&dev_opp->srcu_head, OPP_EVENT_REMOVE, opp); in _opp_remove()
613 list_del_rcu(&opp->node); in _opp_remove()
614 call_srcu(&dev_opp->srcu_head.srcu, &opp->rcu_head, _kfree_opp_rcu); in _opp_remove()
638 struct dev_pm_opp *opp; in dev_pm_opp_remove() local
649 list_for_each_entry(opp, &dev_opp->opp_list, node) { in dev_pm_opp_remove()
650 if (opp->rate == freq) { in dev_pm_opp_remove()
662 _opp_remove(dev_opp, opp); in dev_pm_opp_remove()
691 struct dev_pm_opp *new_opp, *tmp_opp, *opp = ERR_PTR(-ENODEV); in _opp_set_availability() local
712 opp = tmp_opp; in _opp_set_availability()
716 if (IS_ERR(opp)) { in _opp_set_availability()
717 r = PTR_ERR(opp); in _opp_set_availability()
722 if (opp->available == availability_req) in _opp_set_availability()
725 *new_opp = *opp; in _opp_set_availability()
730 list_replace_rcu(&opp->node, &new_opp->node); in _opp_set_availability()
732 call_srcu(&dev_opp->srcu_head.srcu, &opp->rcu_head, _kfree_opp_rcu); in _opp_set_availability()
901 struct dev_pm_opp *opp, *tmp; in of_free_opp_table() local
919 list_for_each_entry_safe(opp, tmp, &dev_opp->opp_list, node) { in of_free_opp_table()
920 if (!opp->dynamic) in of_free_opp_table()
921 _opp_remove(dev_opp, opp); in of_free_opp_table()