Lines Matching refs:opp_table

26 static struct opp_table *_managed_opp(const struct device_node *np)  in _managed_opp()
28 struct opp_table *opp_table, *managed_table = NULL; in _managed_opp() local
32 list_for_each_entry(opp_table, &opp_tables, node) { in _managed_opp()
33 if (opp_table->np == np) { in _managed_opp()
41 if (opp_table->shared_opp == OPP_TABLE_ACCESS_SHARED) { in _managed_opp()
42 _get_opp_table_kref(opp_table); in _managed_opp()
43 managed_table = opp_table; in _managed_opp()
55 void _of_init_opp_table(struct opp_table *opp_table, struct device *dev) in _of_init_opp_table() argument
68 opp_table->clock_latency_ns_max = val; in _of_init_opp_table()
70 &opp_table->voltage_tolerance_v1); in _of_init_opp_table()
75 static bool _opp_is_supported(struct device *dev, struct opp_table *opp_table, in _opp_is_supported() argument
78 unsigned int count = opp_table->supported_hw_count; in _opp_is_supported()
82 if (!opp_table->supported_hw) { in _opp_is_supported()
105 if (!(version & opp_table->supported_hw[count])) in _opp_is_supported()
113 struct opp_table *opp_table) in opp_parse_supplies() argument
120 supplies = opp_table->regulator_count ? opp_table->regulator_count : 1; in opp_parse_supplies()
123 if (opp_table->prop_name) { in opp_parse_supplies()
125 opp_table->prop_name); in opp_parse_supplies()
136 if (!opp_table->regulator_count) in opp_parse_supplies()
172 if (opp_table->prop_name) { in opp_parse_supplies()
174 opp_table->prop_name); in opp_parse_supplies()
286 static int _opp_add_static_v2(struct opp_table *opp_table, struct device *dev, in _opp_add_static_v2() argument
295 new_opp = _opp_allocate(opp_table); in _opp_add_static_v2()
319 if (!_opp_is_supported(dev, opp_table, np)) { in _opp_add_static_v2()
335 ret = opp_parse_supplies(new_opp, dev, opp_table); in _opp_add_static_v2()
339 ret = _opp_add(dev, new_opp, opp_table, rate_not_available); in _opp_add_static_v2()
349 if (opp_table->suspend_opp) { in _opp_add_static_v2()
351 __func__, opp_table->suspend_opp->rate, in _opp_add_static_v2()
355 opp_table->suspend_opp = new_opp; in _opp_add_static_v2()
359 if (new_opp->clock_latency_ns > opp_table->clock_latency_ns_max) in _opp_add_static_v2()
360 opp_table->clock_latency_ns_max = new_opp->clock_latency_ns; in _opp_add_static_v2()
371 blocking_notifier_call_chain(&opp_table->head, OPP_EVENT_ADD, new_opp); in _opp_add_static_v2()
384 struct opp_table *opp_table; in _of_add_opp_table_v2() local
388 opp_table = _managed_opp(opp_np); in _of_add_opp_table_v2()
389 if (opp_table) { in _of_add_opp_table_v2()
391 if (!_add_opp_dev(dev, opp_table)) in _of_add_opp_table_v2()
396 opp_table = dev_pm_opp_get_opp_table(dev); in _of_add_opp_table_v2()
397 if (!opp_table) in _of_add_opp_table_v2()
404 ret = _opp_add_static_v2(opp_table, dev, np); in _of_add_opp_table_v2()
408 _dev_pm_opp_remove_table(opp_table, dev, false); in _of_add_opp_table_v2()
420 list_for_each_entry(opp, &opp_table->opp_list, node) in _of_add_opp_table_v2()
432 opp_table->genpd_performance_state = true; in _of_add_opp_table_v2()
434 opp_table->np = opp_np; in _of_add_opp_table_v2()
436 opp_table->shared_opp = OPP_TABLE_ACCESS_SHARED; in _of_add_opp_table_v2()
438 opp_table->shared_opp = OPP_TABLE_ACCESS_EXCLUSIVE; in _of_add_opp_table_v2()
441 dev_pm_opp_put_opp_table(opp_table); in _of_add_opp_table_v2()
449 struct opp_table *opp_table; in _of_add_opp_table_v1() local
470 opp_table = dev_pm_opp_get_opp_table(dev); in _of_add_opp_table_v1()
471 if (!opp_table) in _of_add_opp_table_v1()
479 ret = _opp_add_v1(opp_table, dev, freq, volt, false); in _of_add_opp_table_v1()
483 _dev_pm_opp_remove_table(opp_table, dev, false); in _of_add_opp_table_v1()
489 dev_pm_opp_put_opp_table(opp_table); in _of_add_opp_table_v1()
728 struct opp_table *opp_table; in of_dev_pm_opp_find_required_opp() local
730 opp_table = _find_opp_table(dev); in of_dev_pm_opp_find_required_opp()
731 if (IS_ERR(opp_table)) in of_dev_pm_opp_find_required_opp()
732 return ERR_CAST(opp_table); in of_dev_pm_opp_find_required_opp()
740 mutex_lock(&opp_table->lock); in of_dev_pm_opp_find_required_opp()
742 list_for_each_entry(temp_opp, &opp_table->opp_list, node) { in of_dev_pm_opp_find_required_opp()
752 mutex_unlock(&opp_table->lock); in of_dev_pm_opp_find_required_opp()
756 dev_pm_opp_put_opp_table(opp_table); in of_dev_pm_opp_find_required_opp()