Lines Matching refs:opp

77 	struct dev_pm_opp *opp;  in _find_opp_of_np()  local
81 list_for_each_entry(opp, &opp_table->opp_list, node) { in _find_opp_of_np()
82 if (opp->np == opp_np) in _find_opp_of_np()
83 return dev_pm_opp_get(opp); in _find_opp_of_np()
247 struct dev_pm_opp *opp) in _of_opp_free_required_opps() argument
249 struct dev_pm_opp **required_opps = opp->required_opps; in _of_opp_free_required_opps()
263 opp->required_opps = NULL; in _of_opp_free_required_opps()
267 void _of_clear_opp(struct opp_table *opp_table, struct dev_pm_opp *opp) in _of_clear_opp() argument
269 _of_opp_free_required_opps(opp_table, opp); in _of_clear_opp()
270 of_node_put(opp->np); in _of_clear_opp()
273 static int _link_required_opps(struct dev_pm_opp *opp, in _link_required_opps() argument
278 np = of_parse_required_opp(opp->np, index); in _link_required_opps()
282 opp->required_opps[index] = _find_opp_of_np(required_table, np); in _link_required_opps()
283 if (!opp->required_opps[index]) { in _link_required_opps()
285 __func__, opp->np, index); in _link_required_opps()
294 struct dev_pm_opp *opp) in _of_opp_alloc_required_opps() argument
302 opp->required_opps = kcalloc(count, sizeof(*opp->required_opps), GFP_KERNEL); in _of_opp_alloc_required_opps()
303 if (!opp->required_opps) in _of_opp_alloc_required_opps()
313 ret = _link_required_opps(opp, required_table, i); in _of_opp_alloc_required_opps()
321 _of_opp_free_required_opps(opp_table, opp); in _of_opp_alloc_required_opps()
330 struct dev_pm_opp *opp; in lazy_link_required_opps() local
333 list_for_each_entry(opp, &opp_table->opp_list, node) { in lazy_link_required_opps()
334 ret = _link_required_opps(opp, new_table, index); in lazy_link_required_opps()
346 struct dev_pm_opp *opp; in lazy_link_required_opp_table() local
396 list_for_each_entry(opp, &opp_table->opp_list, node) in lazy_link_required_opp_table()
397 _required_opps_available(opp, opp_table->required_opp_count); in lazy_link_required_opp_table()
552 static u32 *_parse_named_prop(struct dev_pm_opp *opp, struct device *dev, in _parse_named_prop() argument
565 prop = of_find_property(opp->np, name, NULL); in _parse_named_prop()
571 prop = of_find_property(opp->np, name, NULL); in _parse_named_prop()
576 count = of_property_count_u32_elems(opp->np, name); in _parse_named_prop()
602 ret = of_property_read_u32_array(opp->np, name, out, count); in _parse_named_prop()
615 static u32 *opp_parse_microvolt(struct dev_pm_opp *opp, struct device *dev, in opp_parse_microvolt() argument
620 microvolt = _parse_named_prop(opp, dev, opp_table, "microvolt", triplet); in opp_parse_microvolt()
643 static int opp_parse_supplies(struct dev_pm_opp *opp, struct device *dev, in opp_parse_supplies() argument
650 microvolt = opp_parse_microvolt(opp, dev, opp_table, &triplet); in opp_parse_supplies()
654 microamp = _parse_named_prop(opp, dev, opp_table, "microamp", NULL); in opp_parse_supplies()
660 microwatt = _parse_named_prop(opp, dev, opp_table, "microwatt", NULL); in opp_parse_supplies()
677 opp->supplies[i].u_volt = microvolt[j++]; in opp_parse_supplies()
680 opp->supplies[i].u_volt_min = microvolt[j++]; in opp_parse_supplies()
681 opp->supplies[i].u_volt_max = microvolt[j++]; in opp_parse_supplies()
683 opp->supplies[i].u_volt_min = opp->supplies[i].u_volt; in opp_parse_supplies()
684 opp->supplies[i].u_volt_max = opp->supplies[i].u_volt; in opp_parse_supplies()
689 opp->supplies[i].u_amp = microamp[i]; in opp_parse_supplies()
692 opp->supplies[i].u_watt = microwatt[i]; in opp_parse_supplies()
957 struct dev_pm_opp *opp; in _of_add_opp_table_v2() local
971 opp = _opp_add_static_v2(opp_table, dev, np); in _of_add_opp_table_v2()
972 if (IS_ERR(opp)) { in _of_add_opp_table_v2()
973 ret = PTR_ERR(opp); in _of_add_opp_table_v2()
978 } else if (opp) { in _of_add_opp_table_v2()
1333 struct dev_pm_opp *opp __free(put_opp) = NULL; in of_get_required_opp_performance_state()
1353 opp = _find_opp_of_np(opp_table, required_np); in of_get_required_opp_performance_state()
1354 if (opp) { in of_get_required_opp_performance_state()
1355 if (opp->level == OPP_LEVEL_UNSET) { in of_get_required_opp_performance_state()
1359 pstate = opp->level; in of_get_required_opp_performance_state()
1405 struct device_node *dev_pm_opp_get_of_node(struct dev_pm_opp *opp) in dev_pm_opp_get_of_node() argument
1407 if (IS_ERR_OR_NULL(opp)) { in dev_pm_opp_get_of_node()
1412 return of_node_get(opp->np); in dev_pm_opp_get_of_node()
1428 struct dev_pm_opp *opp __free(put_opp); in _get_dt_power()
1433 opp = dev_pm_opp_find_freq_ceil(dev, &opp_freq); in _get_dt_power()
1434 if (IS_ERR(opp)) in _get_dt_power()
1437 opp_power = dev_pm_opp_get_power(opp); in _get_dt_power()
1468 struct dev_pm_opp *opp __free(put_opp) = NULL; in dev_pm_opp_calc_power()
1484 opp = dev_pm_opp_find_freq_ceil(dev, &Hz); in dev_pm_opp_calc_power()
1485 if (IS_ERR(opp)) in dev_pm_opp_calc_power()
1488 mV = dev_pm_opp_get_voltage(opp) / 1000; in dev_pm_opp_calc_power()
1505 struct dev_pm_opp *opp __free(put_opp); in _of_has_opp_microwatt_property()
1509 opp = dev_pm_opp_find_freq_ceil(dev, &freq); in _of_has_opp_microwatt_property()
1510 if (IS_ERR(opp)) in _of_has_opp_microwatt_property()
1513 return !!dev_pm_opp_get_power(opp); in _of_has_opp_microwatt_property()