Symbol: opp_table
drivers/cpufreq/airoha-cpufreq.c
23
struct opp_table *opp_table,
drivers/cpufreq/tegra186-cpufreq.c
164
*opp_table = &freq_table[0];
drivers/cpufreq/tegra186-cpufreq.c
98
struct cpufreq_frequency_table **opp_table)
drivers/cpufreq/tegra194-cpufreq.c
425
struct cpufreq_frequency_table **opp_table)
drivers/cpufreq/tegra194-cpufreq.c
493
*opp_table = &freq_table[0];
drivers/devfreq/devfreq.c
780
if (devfreq->opp_table)
drivers/devfreq/devfreq.c
781
dev_pm_opp_put_opp_table(devfreq->opp_table);
drivers/devfreq/devfreq.c
871
devfreq->opp_table = dev_pm_opp_get_opp_table(dev);
drivers/devfreq/devfreq.c
872
if (IS_ERR(devfreq->opp_table))
drivers/devfreq/devfreq.c
873
devfreq->opp_table = NULL;
drivers/devfreq/governor_passive.c
130
parent_cpu_data->opp_table,
drivers/devfreq/governor_passive.c
131
devfreq->opp_table, &cpu_cur);
drivers/devfreq/governor_passive.c
166
parent_devfreq->opp_table,
drivers/devfreq/governor_passive.c
167
devfreq->opp_table, freq);
drivers/devfreq/governor_passive.c
282
struct opp_table *opp_table = NULL;
drivers/devfreq/governor_passive.c
326
opp_table = dev_pm_opp_get_opp_table(cpu_dev);
drivers/devfreq/governor_passive.c
327
if (IS_ERR(opp_table)) {
drivers/devfreq/governor_passive.c
329
ret = PTR_ERR(opp_table);
drivers/devfreq/governor_passive.c
334
parent_cpu_data->opp_table = opp_table;
drivers/devfreq/governor_passive.c
39
struct opp_table *opp_table;
drivers/devfreq/governor_passive.c
68
if (parent_cpu_data->opp_table)
drivers/devfreq/governor_passive.c
69
dev_pm_opp_put_opp_table(parent_cpu_data->opp_table);
drivers/devfreq/governor_passive.c
76
struct opp_table *p_opp_table,
drivers/devfreq/governor_passive.c
77
struct opp_table *opp_table,
drivers/devfreq/governor_passive.c
83
if (!p_dev || !p_opp_table || !opp_table || !freq)
drivers/devfreq/governor_passive.c
90
opp = dev_pm_opp_xlate_required_opp(p_opp_table, opp_table, p_opp);
drivers/devfreq/tegra30-devfreq.c
820
struct opp_table *opp_table,
drivers/gpu/drm/panthor/panthor_devfreq.c
145
struct opp_table *table;
drivers/opp/core.c
103
static bool assert_clk_index(struct opp_table *opp_table,
drivers/opp/core.c
1058
_opp_config_clk_single(struct device *dev, struct opp_table *opp_table,
drivers/opp/core.c
106
return opp_table->clk_count > index;
drivers/opp/core.c
1075
ret = clk_set_rate(opp_table->clk, freq);
drivers/opp/core.c
1080
opp_table->current_rate_single_clk = freq;
drivers/opp/core.c
1091
struct opp_table *opp_table, struct dev_pm_opp *opp, void *data,
drivers/opp/core.c
1097
for (i = opp_table->clk_count - 1; i >= 0; i--) {
drivers/opp/core.c
1098
ret = clk_set_rate(opp_table->clks[i], opp->rates[i]);
drivers/opp/core.c
1106
for (i = 0; i < opp_table->clk_count; i++) {
drivers/opp/core.c
1107
ret = clk_set_rate(opp_table->clks[i], opp->rates[i]);
drivers/opp/core.c
112
static bool assert_bandwidth_index(struct opp_table *opp_table,
drivers/opp/core.c
1141
if (unlikely(!new_opp->opp_table->enabled)) {
drivers/opp/core.c
115
return opp_table->path_count > index;
drivers/opp/core.c
1150
static int _set_opp_bw(const struct opp_table *opp_table,
drivers/opp/core.c
1156
if (!opp_table->paths)
drivers/opp/core.c
1159
for (i = 0; i < opp_table->path_count; i++) {
drivers/opp/core.c
1167
ret = icc_set_bw(opp_table->paths[i], avg, peak);
drivers/opp/core.c
1200
static int _set_required_opps(struct device *dev, struct opp_table *opp_table,
drivers/opp/core.c
1203
struct device **devs = opp_table->required_devs;
drivers/opp/core.c
1211
if (lazy_linking_pending(opp_table))
drivers/opp/core.c
1217
target = opp_table->required_opp_count;
drivers/opp/core.c
1220
index = opp_table->required_opp_count - 1;
drivers/opp/core.c
1240
static void _find_current_opp(struct device *dev, struct opp_table *opp_table)
drivers/opp/core.c
1245
if (!IS_ERR(opp_table->clk)) {
drivers/opp/core.c
1246
freq = clk_get_rate(opp_table->clk);
drivers/opp/core.c
1247
opp = _find_freq_ceil(opp_table, &freq);
drivers/opp/core.c
1256
guard(mutex)(&opp_table->lock);
drivers/opp/core.c
1257
opp = dev_pm_opp_get(list_first_entry(&opp_table->opp_list,
drivers/opp/core.c
1261
opp_table->current_opp = opp;
drivers/opp/core.c
1264
static int _disable_opp_table(struct device *dev, struct opp_table *opp_table)
drivers/opp/core.c
1268
if (!opp_table->enabled)
drivers/opp/core.c
1276
if (!_get_opp_count(opp_table))
drivers/opp/core.c
1279
ret = _set_opp_bw(opp_table, NULL, dev);
drivers/opp/core.c
1283
if (opp_table->regulators)
drivers/opp/core.c
1284
regulator_disable(opp_table->regulators[0]);
drivers/opp/core.c
1290
ret = _set_required_opps(dev, opp_table, NULL, false);
drivers/opp/core.c
1293
opp_table->enabled = false;
drivers/opp/core.c
1297
static int _set_opp(struct device *dev, struct opp_table *opp_table,
drivers/opp/core.c
1304
return _disable_opp_table(dev, opp_table);
drivers/opp/core.c
1307
if (unlikely(!opp_table->current_opp))
drivers/opp/core.c
1308
_find_current_opp(dev, opp_table);
drivers/opp/core.c
1310
old_opp = opp_table->current_opp;
drivers/opp/core.c
1313
if (!forced && old_opp == opp && opp_table->enabled) {
drivers/opp/core.c
1323
scaling_down = _opp_compare_key(opp_table, old_opp, opp);
drivers/opp/core.c
1329
ret = _set_required_opps(dev, opp_table, opp, true);
drivers/opp/core.c
133
if (index >= opp->opp_table->path_count)
drivers/opp/core.c
1339
ret = _set_opp_bw(opp_table, opp, dev);
drivers/opp/core.c
1345
if (opp_table->config_regulators) {
drivers/opp/core.c
1346
ret = opp_table->config_regulators(dev, old_opp, opp,
drivers/opp/core.c
1347
opp_table->regulators,
drivers/opp/core.c
1348
opp_table->regulator_count);
drivers/opp/core.c
1357
if (opp_table->config_clks) {
drivers/opp/core.c
1358
ret = opp_table->config_clks(dev, opp_table, opp, clk_data, scaling_down);
drivers/opp/core.c
1365
if (opp_table->config_regulators) {
drivers/opp/core.c
1366
ret = opp_table->config_regulators(dev, old_opp, opp,
drivers/opp/core.c
1367
opp_table->regulators,
drivers/opp/core.c
1368
opp_table->regulator_count);
drivers/opp/core.c
1376
ret = _set_opp_bw(opp_table, opp, dev);
drivers/opp/core.c
1386
ret = _set_required_opps(dev, opp_table, opp, false);
drivers/opp/core.c
1393
opp_table->enabled = true;
drivers/opp/core.c
1397
opp_table->current_opp = dev_pm_opp_get(opp);
drivers/opp/core.c
1419
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
1422
if (IS_ERR(opp_table)) {
drivers/opp/core.c
1424
return PTR_ERR(opp_table);
drivers/opp/core.c
1435
if (!_get_opp_count(opp_table)) {
drivers/opp/core.c
1436
return opp_table->config_clks(dev, opp_table, NULL,
drivers/opp/core.c
1440
freq = clk_round_rate(opp_table->clk, target_freq);
drivers/opp/core.c
1450
opp = _find_freq_ceil(opp_table, &temp_freq);
drivers/opp/core.c
1464
forced = opp_table->current_rate_single_clk != freq;
drivers/opp/core.c
1467
return _set_opp(dev, opp_table, opp, &freq, forced);
drivers/opp/core.c
1483
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
1486
if (IS_ERR(opp_table)) {
drivers/opp/core.c
1488
return PTR_ERR(opp_table);
drivers/opp/core.c
1491
return _set_opp(dev, opp_table, opp, NULL, false);
drivers/opp/core.c
1497
struct opp_table *opp_table)
drivers/opp/core.c
1499
opp_debug_unregister(opp_dev, opp_table);
drivers/opp/core.c
1505
struct opp_table *opp_table)
drivers/opp/core.c
1516
scoped_guard(mutex, &opp_table->lock)
drivers/opp/core.c
1517
list_add(&opp_dev->node, &opp_table->dev_list);
drivers/opp/core.c
1520
opp_debug_register(opp_dev, opp_table);
drivers/opp/core.c
1525
static struct opp_table *_allocate_opp_table(struct device *dev, int index)
drivers/opp/core.c
1527
struct opp_table *opp_table;
drivers/opp/core.c
1535
opp_table = kzalloc_obj(*opp_table);
drivers/opp/core.c
1536
if (!opp_table)
drivers/opp/core.c
1539
mutex_init(&opp_table->lock);
drivers/opp/core.c
1540
INIT_LIST_HEAD(&opp_table->dev_list);
drivers/opp/core.c
1541
INIT_LIST_HEAD(&opp_table->lazy);
drivers/opp/core.c
1543
opp_table->clk = ERR_PTR(-ENODEV);
drivers/opp/core.c
1546
opp_table->regulator_count = -1;
drivers/opp/core.c
1548
opp_dev = _add_opp_dev(dev, opp_table);
drivers/opp/core.c
1554
_of_init_opp_table(opp_table, dev, index);
drivers/opp/core.c
1557
ret = dev_pm_opp_of_find_icc_paths(dev, opp_table);
drivers/opp/core.c
1566
BLOCKING_INIT_NOTIFIER_HEAD(&opp_table->head);
drivers/opp/core.c
1567
INIT_LIST_HEAD(&opp_table->opp_list);
drivers/opp/core.c
1568
kref_init(&opp_table->kref);
drivers/opp/core.c
1570
return opp_table;
drivers/opp/core.c
1573
_of_clear_opp_table(opp_table);
drivers/opp/core.c
1574
_remove_opp_dev(opp_dev, opp_table);
drivers/opp/core.c
1575
mutex_destroy(&opp_table->lock);
drivers/opp/core.c
1577
kfree(opp_table);
drivers/opp/core.c
1581
static struct opp_table *_update_opp_table_clk(struct device *dev,
drivers/opp/core.c
1582
struct opp_table *opp_table,
drivers/opp/core.c
1591
if (!getclk || IS_ERR(opp_table) || !IS_ERR(opp_table->clk) ||
drivers/opp/core.c
1592
opp_table->clks)
drivers/opp/core.c
1593
return opp_table;
drivers/opp/core.c
1596
opp_table->clk = clk_get(dev, NULL);
drivers/opp/core.c
1598
ret = PTR_ERR_OR_ZERO(opp_table->clk);
drivers/opp/core.c
1600
opp_table->config_clks = _opp_config_clk_single;
drivers/opp/core.c
1601
opp_table->clk_count = 1;
drivers/opp/core.c
1602
return opp_table;
drivers/opp/core.c
1618
opp_table->clk_count = 1;
drivers/opp/core.c
1621
return opp_table;
drivers/opp/core.c
1624
dev_pm_opp_put_opp_table(opp_table);
drivers/opp/core.c
1645
struct opp_table *_add_opp_table_indexed(struct device *dev, int index,
drivers/opp/core.c
1648
struct opp_table *opp_table;
drivers/opp/core.c
1653
opp_table = _find_opp_table_unlocked(dev);
drivers/opp/core.c
1654
if (!IS_ERR(opp_table))
drivers/opp/core.c
1668
opp_table = _managed_opp(dev, index);
drivers/opp/core.c
1673
if (opp_table) {
drivers/opp/core.c
1674
if (!_add_opp_dev(dev, opp_table)) {
drivers/opp/core.c
1675
dev_pm_opp_put_opp_table(opp_table);
drivers/opp/core.c
1676
opp_table = ERR_PTR(-ENOMEM);
drivers/opp/core.c
1681
opp_table = _allocate_opp_table(dev, index);
drivers/opp/core.c
1684
if (!IS_ERR(opp_table))
drivers/opp/core.c
1685
list_add(&opp_table->node, &opp_tables);
drivers/opp/core.c
1693
return _update_opp_table_clk(dev, opp_table, getclk);
drivers/opp/core.c
1696
static struct opp_table *_add_opp_table(struct device *dev, bool getclk)
drivers/opp/core.c
1701
struct opp_table *dev_pm_opp_get_opp_table(struct device *dev)
drivers/opp/core.c
1709
struct opp_table *opp_table = container_of(kref, struct opp_table, kref);
drivers/opp/core.c
1714
list_del(&opp_table->node);
drivers/opp/core.c
1717
if (opp_table->current_opp)
drivers/opp/core.c
1718
dev_pm_opp_put(opp_table->current_opp);
drivers/opp/core.c
1720
_of_clear_opp_table(opp_table);
drivers/opp/core.c
1723
if (!IS_ERR(opp_table->clk))
drivers/opp/core.c
1724
clk_put(opp_table->clk);
drivers/opp/core.c
1726
if (opp_table->paths) {
drivers/opp/core.c
1727
for (i = 0; i < opp_table->path_count; i++)
drivers/opp/core.c
1728
icc_put(opp_table->paths[i]);
drivers/opp/core.c
1729
kfree(opp_table->paths);
drivers/opp/core.c
1732
WARN_ON(!list_empty(&opp_table->opp_list));
drivers/opp/core.c
1734
list_for_each_entry_safe(opp_dev, temp, &opp_table->dev_list, node)
drivers/opp/core.c
1735
_remove_opp_dev(opp_dev, opp_table);
drivers/opp/core.c
1737
mutex_destroy(&opp_table->lock);
drivers/opp/core.c
1738
kfree(opp_table);
drivers/opp/core.c
1741
struct opp_table *dev_pm_opp_get_opp_table_ref(struct opp_table *opp_table)
drivers/opp/core.c
1743
kref_get(&opp_table->kref);
drivers/opp/core.c
1744
return opp_table;
drivers/opp/core.c
1748
void dev_pm_opp_put_opp_table(struct opp_table *opp_table)
drivers/opp/core.c
1750
kref_put_mutex(&opp_table->kref, _opp_table_kref_release,
drivers/opp/core.c
1763
struct opp_table *opp_table = opp->opp_table;
drivers/opp/core.c
1766
mutex_unlock(&opp_table->lock);
drivers/opp/core.c
1772
blocking_notifier_call_chain(&opp_table->head, OPP_EVENT_REMOVE, opp);
drivers/opp/core.c
1773
_of_clear_opp(opp_table, opp);
drivers/opp/core.c
1787
kref_put_mutex(&opp->kref, _opp_kref_release, &opp->opp_table->lock);
drivers/opp/core.c
1802
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
1805
if (IS_ERR(opp_table))
drivers/opp/core.c
1808
if (!assert_single_clk(opp_table, 0))
drivers/opp/core.c
1811
scoped_guard(mutex, &opp_table->lock) {
drivers/opp/core.c
1812
list_for_each_entry(iter, &opp_table->opp_list, node) {
drivers/opp/core.c
1824
dev_pm_opp_put_opp_table(opp_table);
drivers/opp/core.c
183
sizeof(*supplies) * opp->opp_table->regulator_count);
drivers/opp/core.c
1832
static struct dev_pm_opp *_opp_get_next(struct opp_table *opp_table,
drivers/opp/core.c
1837
guard(mutex)(&opp_table->lock);
drivers/opp/core.c
1839
list_for_each_entry(opp, &opp_table->opp_list, node) {
drivers/opp/core.c
1856
static void _opp_remove_all(struct opp_table *opp_table, bool dynamic)
drivers/opp/core.c
1860
while ((opp = _opp_get_next(opp_table, dynamic))) {
drivers/opp/core.c
1866
dev_pm_opp_put_opp_table(opp_table);
drivers/opp/core.c
1870
bool _opp_remove_all_static(struct opp_table *opp_table)
drivers/opp/core.c
1872
scoped_guard(mutex, &opp_table->lock) {
drivers/opp/core.c
1873
if (!opp_table->parsed_static_opps)
drivers/opp/core.c
1876
if (--opp_table->parsed_static_opps)
drivers/opp/core.c
1880
_opp_remove_all(opp_table, false);
drivers/opp/core.c
1892
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
1895
if (IS_ERR(opp_table))
drivers/opp/core.c
1898
_opp_remove_all(opp_table, true);
drivers/opp/core.c
1902
struct dev_pm_opp *_opp_allocate(struct opp_table *opp_table)
drivers/opp/core.c
1908
supply_count = opp_table->regulator_count > 0 ?
drivers/opp/core.c
1909
opp_table->regulator_count : 1;
drivers/opp/core.c
1911
clk_size = sizeof(*opp->rates) * opp_table->clk_count;
drivers/opp/core.c
1912
icc_size = sizeof(*opp->bandwidth) * opp_table->path_count;
drivers/opp/core.c
1925
opp->bandwidth = (struct dev_pm_opp_icc_bw *)(opp->rates + opp_table->clk_count);
drivers/opp/core.c
1935
struct opp_table *opp_table)
drivers/opp/core.c
1940
if (!opp_table->regulators)
drivers/opp/core.c
1943
for (i = 0; i < opp_table->regulator_count; i++) {
drivers/opp/core.c
1944
reg = opp_table->regulators[i];
drivers/opp/core.c
1959
static int _opp_compare_rate(struct opp_table *opp_table,
drivers/opp/core.c
1964
for (i = 0; i < opp_table->clk_count; i++) {
drivers/opp/core.c
1973
static int _opp_compare_bw(struct opp_table *opp_table, struct dev_pm_opp *opp1,
drivers/opp/core.c
1978
for (i = 0; i < opp_table->path_count; i++) {
drivers/opp/core.c
1993
int _opp_compare_key(struct opp_table *opp_table, struct dev_pm_opp *opp1,
drivers/opp/core.c
1998
ret = _opp_compare_rate(opp_table, opp1, opp2);
drivers/opp/core.c
2002
ret = _opp_compare_bw(opp_table, opp1, opp2);
drivers/opp/core.c
2014
struct opp_table *opp_table,
drivers/opp/core.c
2028
list_for_each_entry(opp, &opp_table->opp_list, node) {
drivers/opp/core.c
2029
opp_cmp = _opp_compare_key(opp_table, new_opp, opp);
drivers/opp/core.c
206
for (i = 0; i < opp->opp_table->regulator_count; i++)
drivers/opp/core.c
2078
struct opp_table *opp_table)
drivers/opp/core.c
2083
scoped_guard(mutex, &opp_table->lock) {
drivers/opp/core.c
2084
head = &opp_table->opp_list;
drivers/opp/core.c
2086
ret = _opp_is_duplicate(dev, new_opp, opp_table, &head);
drivers/opp/core.c
2091
new_opp->opp_table = opp_table;
drivers/opp/core.c
2095
opp_debug_create_one(new_opp, opp_table);
drivers/opp/core.c
2097
if (!_opp_supported_by_regulators(new_opp, opp_table)) {
drivers/opp/core.c
2104
if (lazy_linking_pending(opp_table))
drivers/opp/core.c
2107
_required_opps_available(new_opp, opp_table->required_opp_count);
drivers/opp/core.c
2133
int _opp_add_v1(struct opp_table *opp_table, struct device *dev,
drivers/opp/core.c
2140
if (!assert_single_clk(opp_table, 0))
drivers/opp/core.c
2143
new_opp = _opp_allocate(opp_table);
drivers/opp/core.c
2151
tol = u_volt * opp_table->voltage_tolerance_v1 / 100;
drivers/opp/core.c
2158
ret = _opp_add(dev, new_opp, opp_table);
drivers/opp/core.c
2170
blocking_notifier_call_chain(&opp_table->head, OPP_EVENT_ADD, new_opp);
drivers/opp/core.c
2185
static int _opp_set_supported_hw(struct opp_table *opp_table,
drivers/opp/core.c
2189
if (opp_table->supported_hw)
drivers/opp/core.c
2192
opp_table->supported_hw = kmemdup_array(versions, count,
drivers/opp/core.c
2194
if (!opp_table->supported_hw)
drivers/opp/core.c
2197
opp_table->supported_hw_count = count;
drivers/opp/core.c
2202
static void _opp_put_supported_hw(struct opp_table *opp_table)
drivers/opp/core.c
2204
if (opp_table->supported_hw) {
drivers/opp/core.c
2205
kfree(opp_table->supported_hw);
drivers/opp/core.c
2206
opp_table->supported_hw = NULL;
drivers/opp/core.c
2207
opp_table->supported_hw_count = 0;
drivers/opp/core.c
2217
static int _opp_set_prop_name(struct opp_table *opp_table, const char *name)
drivers/opp/core.c
2220
if (!opp_table->prop_name) {
drivers/opp/core.c
2221
opp_table->prop_name = kstrdup(name, GFP_KERNEL);
drivers/opp/core.c
2222
if (!opp_table->prop_name)
drivers/opp/core.c
2229
static void _opp_put_prop_name(struct opp_table *opp_table)
drivers/opp/core.c
2231
if (opp_table->prop_name) {
drivers/opp/core.c
2232
kfree(opp_table->prop_name);
drivers/opp/core.c
2233
opp_table->prop_name = NULL;
drivers/opp/core.c
224
if (IS_ERR_OR_NULL(opp) || index >= opp->opp_table->clk_count) {
drivers/opp/core.c
2244
static int _opp_set_regulators(struct opp_table *opp_table, struct device *dev,
drivers/opp/core.c
2259
if (opp_table->regulators)
drivers/opp/core.c
2262
opp_table->regulators = kmalloc_objs(*opp_table->regulators, count);
drivers/opp/core.c
2263
if (!opp_table->regulators)
drivers/opp/core.c
2275
opp_table->regulators[i] = reg;
drivers/opp/core.c
2278
opp_table->regulator_count = count;
drivers/opp/core.c
2282
opp_table->config_regulators = _opp_config_regulator_single;
drivers/opp/core.c
2288
regulator_put(opp_table->regulators[--i]);
drivers/opp/core.c
2290
kfree(opp_table->regulators);
drivers/opp/core.c
2291
opp_table->regulators = NULL;
drivers/opp/core.c
2292
opp_table->regulator_count = -1;
drivers/opp/core.c
2297
static void _opp_put_regulators(struct opp_table *opp_table)
drivers/opp/core.c
2301
if (!opp_table->regulators)
drivers/opp/core.c
2304
if (opp_table->enabled) {
drivers/opp/core.c
2305
for (i = opp_table->regulator_count - 1; i >= 0; i--)
drivers/opp/core.c
2306
regulator_disable(opp_table->regulators[i]);
drivers/opp/core.c
2309
for (i = opp_table->regulator_count - 1; i >= 0; i--)
drivers/opp/core.c
2310
regulator_put(opp_table->regulators[i]);
drivers/opp/core.c
2312
kfree(opp_table->regulators);
drivers/opp/core.c
2313
opp_table->regulators = NULL;
drivers/opp/core.c
2314
opp_table->regulator_count = -1;
drivers/opp/core.c
2317
static void _put_clks(struct opp_table *opp_table, int count)
drivers/opp/core.c
2322
clk_put(opp_table->clks[i]);
drivers/opp/core.c
2324
kfree(opp_table->clks);
drivers/opp/core.c
2325
opp_table->clks = NULL;
drivers/opp/core.c
2337
static int _opp_set_clknames(struct opp_table *opp_table, struct device *dev,
drivers/opp/core.c
2361
if (opp_table->clks)
drivers/opp/core.c
2364
opp_table->clks = kmalloc_objs(*opp_table->clks, count);
drivers/opp/core.c
2365
if (!opp_table->clks)
drivers/opp/core.c
2378
opp_table->clks[i] = clk;
drivers/opp/core.c
2381
opp_table->clk_count = count;
drivers/opp/core.c
2382
opp_table->config_clks = config_clks;
drivers/opp/core.c
2386
if (!opp_table->config_clks)
drivers/opp/core.c
2387
opp_table->config_clks = _opp_config_clk_single;
drivers/opp/core.c
2401
opp_table->clk = opp_table->clks[0];
drivers/opp/core.c
2407
_put_clks(opp_table, i);
drivers/opp/core.c
2411
static void _opp_put_clknames(struct opp_table *opp_table)
drivers/opp/core.c
2413
if (!opp_table->clks)
drivers/opp/core.c
2416
opp_table->config_clks = NULL;
drivers/opp/core.c
2417
opp_table->clk = ERR_PTR(-ENODEV);
drivers/opp/core.c
2419
_put_clks(opp_table, opp_table->clk_count);
drivers/opp/core.c
2427
static int _opp_set_config_regulators_helper(struct opp_table *opp_table,
drivers/opp/core.c
2431
if (!opp_table->config_regulators)
drivers/opp/core.c
2432
opp_table->config_regulators = config_regulators;
drivers/opp/core.c
2437
static void _opp_put_config_regulators_helper(struct opp_table *opp_table)
drivers/opp/core.c
2439
if (opp_table->config_regulators)
drivers/opp/core.c
2440
opp_table->config_regulators = NULL;
drivers/opp/core.c
2443
static int _opp_set_required_dev(struct opp_table *opp_table,
drivers/opp/core.c
2448
struct opp_table *required_table, *pd_table;
drivers/opp/core.c
2452
if (opp_table->is_genpd) {
drivers/opp/core.c
2457
if (index >= opp_table->required_opp_count) {
drivers/opp/core.c
2462
required_table = opp_table->required_opp_tables[index];
drivers/opp/core.c
2489
opp_table->required_opp_tables[index] = pd_table;
drivers/opp/core.c
2495
opp_table->required_devs[index] = required_dev;
drivers/opp/core.c
2499
static void _opp_put_required_dev(struct opp_table *opp_table,
drivers/opp/core.c
2502
opp_table->required_devs[index] = NULL;
drivers/opp/core.c
2508
_opp_put_required_dev(data->opp_table,
drivers/opp/core.c
2511
_opp_put_regulators(data->opp_table);
drivers/opp/core.c
2513
_opp_put_supported_hw(data->opp_table);
drivers/opp/core.c
2515
_opp_put_config_regulators_helper(data->opp_table);
drivers/opp/core.c
2517
_opp_put_prop_name(data->opp_table);
drivers/opp/core.c
2519
_opp_put_clknames(data->opp_table);
drivers/opp/core.c
2521
dev_pm_opp_put_opp_table(data->opp_table);
drivers/opp/core.c
2544
struct opp_table *opp_table;
drivers/opp/core.c
2553
opp_table = _add_opp_table(dev, false);
drivers/opp/core.c
2554
if (IS_ERR(opp_table)) {
drivers/opp/core.c
2556
return PTR_ERR(opp_table);
drivers/opp/core.c
2559
data->opp_table = opp_table;
drivers/opp/core.c
2563
if (WARN_ON(!list_empty(&opp_table->opp_list))) {
drivers/opp/core.c
2570
ret = _opp_set_clknames(opp_table, dev, config->clk_names,
drivers/opp/core.c
2584
ret = _opp_set_prop_name(opp_table, config->prop_name);
drivers/opp/core.c
2593
ret = _opp_set_config_regulators_helper(opp_table, dev,
drivers/opp/core.c
2603
ret = _opp_set_supported_hw(opp_table, config->supported_hw,
drivers/opp/core.c
2613
ret = _opp_set_regulators(opp_table, dev,
drivers/opp/core.c
2622
ret = _opp_set_required_dev(opp_table, dev,
drivers/opp/core.c
264
index >= opp->opp_table->required_opp_count) {
drivers/opp/core.c
270
if (lazy_linking_pending(opp->opp_table))
drivers/opp/core.c
2718
struct dev_pm_opp *dev_pm_opp_xlate_required_opp(struct opp_table *src_table,
drivers/opp/core.c
2719
struct opp_table *dst_table,
drivers/opp/core.c
274
if (unlikely(!opp->opp_table->required_opp_tables[index]->is_genpd)) {
drivers/opp/core.c
2770
int dev_pm_opp_xlate_performance_state(struct opp_table *src_table,
drivers/opp/core.c
2771
struct opp_table *dst_table,
drivers/opp/core.c
2839
struct opp_table *opp_table;
drivers/opp/core.c
2842
opp_table = _add_opp_table(dev, true);
drivers/opp/core.c
2843
if (IS_ERR(opp_table))
drivers/opp/core.c
2844
return PTR_ERR(opp_table);
drivers/opp/core.c
2847
opp_table->regulator_count = 1;
drivers/opp/core.c
2849
ret = _opp_add_v1(opp_table, dev, data, true);
drivers/opp/core.c
2851
dev_pm_opp_put_opp_table(opp_table);
drivers/opp/core.c
2876
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
2879
if (IS_ERR(opp_table)) {
drivers/opp/core.c
2881
PTR_ERR(opp_table));
drivers/opp/core.c
2882
return PTR_ERR(opp_table);
drivers/opp/core.c
2885
if (!assert_single_clk(opp_table, 0))
drivers/opp/core.c
2888
scoped_guard(mutex, &opp_table->lock) {
drivers/opp/core.c
2890
list_for_each_entry(tmp_opp, &opp_table->opp_list, node) {
drivers/opp/core.c
2909
blocking_notifier_call_chain(&opp_table->head, OPP_EVENT_ENABLE,
drivers/opp/core.c
2912
blocking_notifier_call_chain(&opp_table->head,
drivers/opp/core.c
2939
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
2942
if (IS_ERR(opp_table)) {
drivers/opp/core.c
2943
r = PTR_ERR(opp_table);
drivers/opp/core.c
2948
if (!assert_single_clk(opp_table, 0))
drivers/opp/core.c
2951
scoped_guard(mutex, &opp_table->lock) {
drivers/opp/core.c
2953
list_for_each_entry(tmp_opp, &opp_table->opp_list, node) {
drivers/opp/core.c
2974
blocking_notifier_call_chain(&opp_table->head, OPP_EVENT_ADJUST_VOLTAGE,
drivers/opp/core.c
2995
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
2998
if (IS_ERR(opp_table))
drivers/opp/core.c
3002
if (unlikely(!opp_table->regulators))
drivers/opp/core.c
3006
if (!opp_table->enabled)
drivers/opp/core.c
3009
for (i = 0; i < opp_table->regulator_count; i++) {
drivers/opp/core.c
3010
reg = opp_table->regulators[i];
drivers/opp/core.c
3068
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
3071
if (IS_ERR(opp_table))
drivers/opp/core.c
3072
return PTR_ERR(opp_table);
drivers/opp/core.c
3074
return blocking_notifier_chain_register(&opp_table->head, nb);
drivers/opp/core.c
3088
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
3091
if (IS_ERR(opp_table))
drivers/opp/core.c
3092
return PTR_ERR(opp_table);
drivers/opp/core.c
3094
return blocking_notifier_chain_unregister(&opp_table->head, nb);
drivers/opp/core.c
3108
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
3111
if (IS_ERR(opp_table)) {
drivers/opp/core.c
3112
int error = PTR_ERR(opp_table);
drivers/opp/core.c
312
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
3126
if (_opp_remove_all_static(opp_table))
drivers/opp/core.c
3127
dev_pm_opp_put_opp_table(opp_table);
drivers/opp/core.c
315
if (IS_ERR(opp_table))
drivers/opp/core.c
318
return opp_table->clock_latency_ns_max;
drivers/opp/core.c
339
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
342
if (IS_ERR(opp_table))
drivers/opp/core.c
346
if (!opp_table->regulators)
drivers/opp/core.c
349
count = opp_table->regulator_count;
drivers/opp/core.c
355
scoped_guard(mutex, &opp_table->lock) {
drivers/opp/core.c
360
list_for_each_entry(opp, &opp_table->opp_list, node) {
drivers/opp/core.c
377
reg = opp_table->regulators[i];
drivers/opp/core.c
40
static bool _find_opp_dev(const struct device *dev, struct opp_table *opp_table)
drivers/opp/core.c
415
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
418
if (IS_ERR(opp_table))
drivers/opp/core.c
421
if (opp_table->suspend_opp && opp_table->suspend_opp->available)
drivers/opp/core.c
422
freq = dev_pm_opp_get_freq(opp_table->suspend_opp);
drivers/opp/core.c
428
int _get_opp_count(struct opp_table *opp_table)
drivers/opp/core.c
433
guard(mutex)(&opp_table->lock);
drivers/opp/core.c
435
list_for_each_entry(opp, &opp_table->opp_list, node) {
drivers/opp/core.c
44
guard(mutex)(&opp_table->lock);
drivers/opp/core.c
452
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
455
if (IS_ERR(opp_table)) {
drivers/opp/core.c
457
__func__, PTR_ERR(opp_table));
drivers/opp/core.c
458
return PTR_ERR(opp_table);
drivers/opp/core.c
46
list_for_each_entry(opp_dev, &opp_table->dev_list, node)
drivers/opp/core.c
461
return _get_opp_count(opp_table);
drivers/opp/core.c
53
static struct opp_table *_find_opp_table_unlocked(struct device *dev)
drivers/opp/core.c
541
static struct dev_pm_opp *_opp_table_find_key(struct opp_table *opp_table,
drivers/opp/core.c
546
bool (*assert)(struct opp_table *opp_table, unsigned int index))
drivers/opp/core.c
55
struct opp_table *opp_table;
drivers/opp/core.c
551
if (assert && !assert(opp_table, index))
drivers/opp/core.c
554
guard(mutex)(&opp_table->lock);
drivers/opp/core.c
556
list_for_each_entry(temp_opp, &opp_table->opp_list, node) {
drivers/opp/core.c
57
list_for_each_entry(opp_table, &opp_tables, node) {
drivers/opp/core.c
572
static struct dev_pm_opp *_opp_table_find_opp_key(struct opp_table *opp_table,
drivers/opp/core.c
578
bool (*assert)(struct opp_table *opp_table, unsigned int index))
drivers/opp/core.c
58
if (_find_opp_dev(dev, opp_table))
drivers/opp/core.c
584
if (!assert(opp_table, 0))
drivers/opp/core.c
587
guard(mutex)(&opp_table->lock);
drivers/opp/core.c
589
list_for_each_entry(temp_opp, &opp_table->opp_list, node) {
drivers/opp/core.c
59
return dev_pm_opp_get_opp_table_ref(opp_table);
drivers/opp/core.c
608
bool (*assert)(struct opp_table *opp_table, unsigned int index))
drivers/opp/core.c
610
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/core.c
613
if (IS_ERR(opp_table)) {
drivers/opp/core.c
615
PTR_ERR(opp_table));
drivers/opp/core.c
616
return ERR_CAST(opp_table);
drivers/opp/core.c
619
return _opp_table_find_key(opp_table, key, index, available, read,
drivers/opp/core.c
626
bool (*assert)(struct opp_table *opp_table, unsigned int index))
drivers/opp/core.c
636
static struct dev_pm_opp *_opp_table_find_key_ceil(struct opp_table *opp_table,
drivers/opp/core.c
639
bool (*assert)(struct opp_table *opp_table, unsigned int index))
drivers/opp/core.c
641
return _opp_table_find_key(opp_table, key, index, available, read,
drivers/opp/core.c
648
bool (*assert)(struct opp_table *opp_table, unsigned int index))
drivers/opp/core.c
657
bool (*assert)(struct opp_table *opp_table, unsigned int index))
drivers/opp/core.c
722
struct opp_table *opp_table __free(put_opp_table) = _find_opp_table(dev);
drivers/opp/core.c
724
if (IS_ERR(opp_table)) {
drivers/opp/core.c
726
PTR_ERR(opp_table));
drivers/opp/core.c
727
return ERR_CAST(opp_table);
drivers/opp/core.c
730
return _opp_table_find_opp_key(opp_table, key, available,
drivers/opp/core.c
76
struct opp_table *_find_opp_table(struct device *dev)
drivers/opp/core.c
765
static noinline struct dev_pm_opp *_find_freq_ceil(struct opp_table *opp_table,
drivers/opp/core.c
768
return _opp_table_find_key_ceil(opp_table, freq, 0, true, _read_freq,
drivers/opp/core.c
94
static bool assert_single_clk(struct opp_table *opp_table,
drivers/opp/core.c
97
return !WARN_ON(opp_table->clk_count > 1);
drivers/opp/cpu.c
101
kfree(*opp_table);
drivers/opp/cpu.c
102
*opp_table = NULL;
drivers/opp/cpu.c
161
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/cpu.c
164
if (IS_ERR(opp_table))
drivers/opp/cpu.c
165
return PTR_ERR(opp_table);
drivers/opp/cpu.c
178
opp_dev = _add_opp_dev(dev, opp_table);
drivers/opp/cpu.c
186
opp_table->shared_opp = OPP_TABLE_ACCESS_SHARED;
drivers/opp/cpu.c
207
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/cpu.c
210
if (IS_ERR(opp_table))
drivers/opp/cpu.c
211
return PTR_ERR(opp_table);
drivers/opp/cpu.c
213
if (opp_table->shared_opp == OPP_TABLE_ACCESS_UNKNOWN)
drivers/opp/cpu.c
218
if (opp_table->shared_opp == OPP_TABLE_ACCESS_SHARED) {
drivers/opp/cpu.c
219
guard(mutex)(&opp_table->lock);
drivers/opp/cpu.c
220
list_for_each_entry(opp_dev, &opp_table->dev_list, node)
drivers/opp/cpu.c
44
struct cpufreq_frequency_table **opp_table)
drivers/opp/cpu.c
78
*opp_table = &freq_table[0];
drivers/opp/cpu.c
96
struct cpufreq_frequency_table **opp_table)
drivers/opp/cpu.c
98
if (!opp_table)
drivers/opp/debugfs.c
104
for (i = 0; i < opp_table->regulator_count; i++) {
drivers/opp/debugfs.c
129
void opp_debug_create_one(struct dev_pm_opp *opp, struct opp_table *opp_table)
drivers/opp/debugfs.c
131
struct dentry *pdentry = opp_table->dentry;
drivers/opp/debugfs.c
143
if (likely(opp_table->clk_count == 1 && opp->rates[0])) {
drivers/opp/debugfs.c
149
snprintf(name, sizeof(name), "opp:%u", _get_opp_count(opp_table));
drivers/opp/debugfs.c
166
opp_debug_create_clks(opp, opp_table, d);
drivers/opp/debugfs.c
167
opp_debug_create_supplies(opp, opp_table, d);
drivers/opp/debugfs.c
168
opp_debug_create_bw(opp, opp_table, d);
drivers/opp/debugfs.c
174
struct opp_table *opp_table)
drivers/opp/debugfs.c
179
opp_set_dev_name(dev, opp_table->dentry_name);
drivers/opp/debugfs.c
182
d = debugfs_create_dir(opp_table->dentry_name, rootdir);
drivers/opp/debugfs.c
185
opp_table->dentry = d;
drivers/opp/debugfs.c
189
struct opp_table *opp_table)
drivers/opp/debugfs.c
197
opp_table->dentry_name);
drivers/opp/debugfs.c
209
void opp_debug_register(struct opp_device *opp_dev, struct opp_table *opp_table)
drivers/opp/debugfs.c
211
if (opp_table->dentry)
drivers/opp/debugfs.c
212
opp_list_debug_create_link(opp_dev, opp_table);
drivers/opp/debugfs.c
214
opp_list_debug_create_dir(opp_dev, opp_table);
drivers/opp/debugfs.c
218
struct opp_table *opp_table)
drivers/opp/debugfs.c
225
list_for_each_entry(iter, &opp_table->dev_list, node)
drivers/opp/debugfs.c
237
opp_set_dev_name(dev, opp_table->dentry_name);
drivers/opp/debugfs.c
239
err = debugfs_change_name(opp_dev->dentry, "%s", opp_table->dentry_name);
drivers/opp/debugfs.c
246
new_dev->dentry = opp_table->dentry = opp_dev->dentry;
drivers/opp/debugfs.c
257
struct opp_table *opp_table)
drivers/opp/debugfs.c
259
if (opp_dev->dentry == opp_table->dentry) {
drivers/opp/debugfs.c
261
if (!list_is_singular(&opp_table->dev_list)) {
drivers/opp/debugfs.c
262
opp_migrate_dentry(opp_dev, opp_table);
drivers/opp/debugfs.c
265
opp_table->dentry = NULL;
drivers/opp/debugfs.c
57
struct opp_table *opp_table,
drivers/opp/debugfs.c
64
for (i = 0; i < opp_table->path_count; i++) {
drivers/opp/debugfs.c
70
debugfs_create_file("name", S_IRUGO, d, opp_table->paths[i],
drivers/opp/debugfs.c
80
struct opp_table *opp_table,
drivers/opp/debugfs.c
86
if (opp_table->clk_count == 1) {
drivers/opp/debugfs.c
91
for (i = 0; i < opp_table->clk_count; i++) {
drivers/opp/debugfs.c
98
struct opp_table *opp_table,
drivers/opp/of.c
1004
static int _of_add_opp_table_v1(struct device *dev, struct opp_table *opp_table)
drivers/opp/of.c
1010
scoped_guard(mutex, &opp_table->lock) {
drivers/opp/of.c
1011
if (opp_table->parsed_static_opps) {
drivers/opp/of.c
1012
opp_table->parsed_static_opps++;
drivers/opp/of.c
1016
opp_table->parsed_static_opps = 1;
drivers/opp/of.c
1049
ret = _opp_add_v1(opp_table, dev, &data, false);
drivers/opp/of.c
1061
_opp_remove_all_static(opp_table);
drivers/opp/of.c
1068
struct opp_table *opp_table;
drivers/opp/of.c
1082
opp_table = _add_opp_table_indexed(dev, index, true);
drivers/opp/of.c
1083
if (IS_ERR(opp_table))
drivers/opp/of.c
1084
return PTR_ERR(opp_table);
drivers/opp/of.c
109
list_for_each_entry(opp_table, &opp_tables, node) {
drivers/opp/of.c
1090
if (opp_table->np)
drivers/opp/of.c
1091
ret = _of_add_opp_table_v2(dev, opp_table);
drivers/opp/of.c
1093
ret = _of_add_opp_table_v1(dev, opp_table);
drivers/opp/of.c
1096
dev_pm_opp_put_opp_table(opp_table);
drivers/opp/of.c
110
if (opp_table_np == opp_table->np)
drivers/opp/of.c
111
return dev_pm_opp_get_opp_table_ref(opp_table);
drivers/opp/of.c
118
static void _opp_table_free_required_tables(struct opp_table *opp_table)
drivers/opp/of.c
120
struct opp_table **required_opp_tables = opp_table->required_opp_tables;
drivers/opp/of.c
126
for (i = 0; i < opp_table->required_opp_count; i++) {
drivers/opp/of.c
1344
struct opp_table *opp_table __free(put_opp_table) =
drivers/opp/of.c
1347
if (IS_ERR(opp_table)) {
drivers/opp/of.c
1349
__func__, np, PTR_ERR(opp_table));
drivers/opp/of.c
135
opp_table->required_opp_count = 0;
drivers/opp/of.c
1350
return PTR_ERR(opp_table);
drivers/opp/of.c
1354
if (unlikely(!opp_table->is_genpd)) {
drivers/opp/of.c
136
opp_table->required_opp_tables = NULL;
drivers/opp/of.c
1360
_find_opp_of_np(opp_table, required_np);
drivers/opp/of.c
139
list_del(&opp_table->lazy);
drivers/opp/of.c
146
static void _opp_table_alloc_required_tables(struct opp_table *opp_table,
drivers/opp/of.c
150
struct opp_table **required_opp_tables;
drivers/opp/of.c
167
size = sizeof(*required_opp_tables) + sizeof(*opp_table->required_devs);
drivers/opp/of.c
172
opp_table->required_opp_tables = required_opp_tables;
drivers/opp/of.c
173
opp_table->required_devs = (void *)(required_opp_tables + count);
drivers/opp/of.c
174
opp_table->required_opp_count = count;
drivers/opp/of.c
181
_opp_table_free_required_tables(opp_table);
drivers/opp/of.c
198
list_add(&opp_table->lazy, &lazy_opp_tables);
drivers/opp/of.c
202
void _of_init_opp_table(struct opp_table *opp_table, struct device *dev,
drivers/opp/of.c
218
opp_table->clock_latency_ns_max = val;
drivers/opp/of.c
220
&opp_table->voltage_tolerance_v1);
drivers/opp/of.c
223
opp_table->is_genpd = true;
drivers/opp/of.c
231
opp_table->shared_opp = OPP_TABLE_ACCESS_SHARED;
drivers/opp/of.c
233
opp_table->shared_opp = OPP_TABLE_ACCESS_EXCLUSIVE;
drivers/opp/of.c
235
opp_table->np = opp_np;
drivers/opp/of.c
237
_opp_table_alloc_required_tables(opp_table, dev, opp_np);
drivers/opp/of.c
240
void _of_clear_opp_table(struct opp_table *opp_table)
drivers/opp/of.c
242
_opp_table_free_required_tables(opp_table);
drivers/opp/of.c
243
of_node_put(opp_table->np);
drivers/opp/of.c
250
static void _of_opp_free_required_opps(struct opp_table *opp_table,
drivers/opp/of.c
259
for (i = 0; i < opp_table->required_opp_count; i++) {
drivers/opp/of.c
271
void _of_clear_opp(struct opp_table *opp_table, struct dev_pm_opp *opp)
drivers/opp/of.c
273
_of_opp_free_required_opps(opp_table, opp);
drivers/opp/of.c
278
struct opp_table *required_table, int index)
drivers/opp/of.c
297
static int _of_opp_alloc_required_opps(struct opp_table *opp_table,
drivers/opp/of.c
300
struct opp_table *required_table;
drivers/opp/of.c
301
int i, ret, count = opp_table->required_opp_count;
drivers/opp/of.c
311
required_table = opp_table->required_opp_tables[i];
drivers/opp/of.c
325
_of_opp_free_required_opps(opp_table, opp);
drivers/opp/of.c
331
static int lazy_link_required_opps(struct opp_table *opp_table,
drivers/opp/of.c
332
struct opp_table *new_table, int index)
drivers/opp/of.c
337
list_for_each_entry(opp, &opp_table->opp_list, node) {
drivers/opp/of.c
347
static void lazy_link_required_opp_table(struct opp_table *new_table)
drivers/opp/of.c
349
struct opp_table *opp_table, *temp, **required_opp_tables;
drivers/opp/of.c
355
list_for_each_entry_safe(opp_table, temp, &lazy_opp_tables, lazy) {
drivers/opp/of.c
360
of_get_next_available_child(opp_table->np, NULL);
drivers/opp/of.c
362
for (i = 0; i < opp_table->required_opp_count; i++) {
drivers/opp/of.c
363
required_opp_tables = opp_table->required_opp_tables;
drivers/opp/of.c
387
ret = lazy_link_required_opps(opp_table, new_table, i);
drivers/opp/of.c
397
list_del_init(&opp_table->lazy);
drivers/opp/of.c
399
list_for_each_entry(opp, &opp_table->opp_list, node)
drivers/opp/of.c
400
_required_opps_available(opp, opp_table->required_opp_count);
drivers/opp/of.c
405
static int _bandwidth_supported(struct device *dev, struct opp_table *opp_table)
drivers/opp/of.c
410
if (!opp_table) {
drivers/opp/of.c
419
opp_np = of_node_get(opp_table->np);
drivers/opp/of.c
443
struct opp_table *opp_table)
drivers/opp/of.c
449
ret = _bandwidth_supported(dev, opp_table);
drivers/opp/of.c
45
struct opp_table *_managed_opp(struct device *dev, int index)
drivers/opp/of.c
47
struct opp_table *opp_table, *managed_table = NULL;
drivers/opp/of.c
484
if (opp_table) {
drivers/opp/of.c
485
opp_table->paths = paths;
drivers/opp/of.c
486
opp_table->path_count = num_paths;
drivers/opp/of.c
500
static bool _opp_is_supported(struct device *dev, struct opp_table *opp_table,
drivers/opp/of.c
503
unsigned int levels = opp_table->supported_hw_count;
drivers/opp/of.c
507
if (!opp_table->supported_hw) {
drivers/opp/of.c
543
if (!(val & opp_table->supported_hw[j])) {
drivers/opp/of.c
55
list_for_each_entry(opp_table, &opp_tables, node) {
drivers/opp/of.c
557
struct opp_table *opp_table,
drivers/opp/of.c
56
if (opp_table->np == np) {
drivers/opp/of.c
566
if (opp_table->prop_name) {
drivers/opp/of.c
568
opp_table->prop_name);
drivers/opp/of.c
592
if (unlikely(opp_table->regulator_count == -1))
drivers/opp/of.c
593
opp_table->regulator_count = 1;
drivers/opp/of.c
595
if (count != opp_table->regulator_count &&
drivers/opp/of.c
596
(!triplet || count != opp_table->regulator_count * 3)) {
drivers/opp/of.c
598
__func__, prop_type, count, opp_table->regulator_count);
drivers/opp/of.c
614
*triplet = count != opp_table->regulator_count;
drivers/opp/of.c
620
struct opp_table *opp_table, bool *triplet)
drivers/opp/of.c
624
microvolt = _parse_named_prop(opp, dev, opp_table, "microvolt", triplet);
drivers/opp/of.c
636
if (list_empty(&opp_table->opp_list) &&
drivers/opp/of.c
637
opp_table->regulator_count > 0) {
drivers/opp/of.c
64
if (opp_table->shared_opp == OPP_TABLE_ACCESS_SHARED)
drivers/opp/of.c
648
struct opp_table *opp_table)
drivers/opp/of.c
65
managed_table = dev_pm_opp_get_opp_table_ref(opp_table);
drivers/opp/of.c
654
microvolt = opp_parse_microvolt(opp, dev, opp_table, &triplet);
drivers/opp/of.c
658
microamp = _parse_named_prop(opp, dev, opp_table, "microamp", NULL);
drivers/opp/of.c
664
microwatt = _parse_named_prop(opp, dev, opp_table, "microwatt", NULL);
drivers/opp/of.c
674
if (unlikely(opp_table->regulator_count == -1)) {
drivers/opp/of.c
675
opp_table->regulator_count = 0;
drivers/opp/of.c
679
for (i = 0, j = 0; i < opp_table->regulator_count; i++) {
drivers/opp/of.c
722
static int _read_rate(struct dev_pm_opp *new_opp, struct opp_table *opp_table,
drivers/opp/of.c
734
if (opp_table->clk_count != count) {
drivers/opp/of.c
736
__func__, count, opp_table->clk_count);
drivers/opp/of.c
75
static struct dev_pm_opp *_find_opp_of_np(struct opp_table *opp_table,
drivers/opp/of.c
766
static int _read_bw(struct dev_pm_opp *new_opp, struct opp_table *opp_table,
drivers/opp/of.c
779
if (opp_table->path_count != count) {
drivers/opp/of.c
781
__func__, name, count, opp_table->path_count);
drivers/opp/of.c
80
guard(mutex)(&opp_table->lock);
drivers/opp/of.c
808
struct opp_table *opp_table, struct device_node *np)
drivers/opp/of.c
813
ret = _read_rate(new_opp, opp_table, np);
drivers/opp/of.c
82
list_for_each_entry(opp, &opp_table->opp_list, node) {
drivers/opp/of.c
824
ret = _read_bw(new_opp, opp_table, np, true);
drivers/opp/of.c
827
ret = _read_bw(new_opp, opp_table, np, false);
drivers/opp/of.c
867
static struct dev_pm_opp *_opp_add_static_v2(struct opp_table *opp_table,
drivers/opp/of.c
874
new_opp = _opp_allocate(opp_table);
drivers/opp/of.c
878
ret = _read_opp_key(new_opp, opp_table, np);
drivers/opp/of.c
885
if (!_opp_is_supported(dev, opp_table, np)) {
drivers/opp/of.c
897
ret = _of_opp_alloc_required_opps(opp_table, new_opp);
drivers/opp/of.c
904
ret = opp_parse_supplies(new_opp, dev, opp_table);
drivers/opp/of.c
908
ret = _opp_add(dev, new_opp, opp_table);
drivers/opp/of.c
918
if (opp_table->suspend_opp) {
drivers/opp/of.c
920
if (_opp_compare_key(opp_table, new_opp, opp_table->suspend_opp) == 1) {
drivers/opp/of.c
921
opp_table->suspend_opp->suspend = false;
drivers/opp/of.c
923
opp_table->suspend_opp = new_opp;
drivers/opp/of.c
927
opp_table->suspend_opp = new_opp;
drivers/opp/of.c
931
if (new_opp->clock_latency_ns > opp_table->clock_latency_ns_max)
drivers/opp/of.c
932
opp_table->clock_latency_ns_max = new_opp->clock_latency_ns;
drivers/opp/of.c
944
blocking_notifier_call_chain(&opp_table->head, OPP_EVENT_ADD, new_opp);
drivers/opp/of.c
948
_of_opp_free_required_opps(opp_table, new_opp);
drivers/opp/of.c
958
static int _of_add_opp_table_v2(struct device *dev, struct opp_table *opp_table)
drivers/opp/of.c
964
scoped_guard(mutex, &opp_table->lock) {
drivers/opp/of.c
965
if (opp_table->parsed_static_opps) {
drivers/opp/of.c
966
opp_table->parsed_static_opps++;
drivers/opp/of.c
97
static struct opp_table *_find_table_of_opp_np(struct device_node *opp_np)
drivers/opp/of.c
970
opp_table->parsed_static_opps = 1;
drivers/opp/of.c
974
for_each_available_child_of_node_scoped(opp_table->np, np) {
drivers/opp/of.c
975
opp = _opp_add_static_v2(opp_table, dev, np);
drivers/opp/of.c
99
struct opp_table *opp_table;
drivers/opp/of.c
993
lazy_link_required_opp_table(opp_table);
drivers/opp/of.c
998
_opp_remove_all_static(opp_table);
drivers/opp/opp.h
126
struct opp_table *opp_table;
drivers/opp/opp.h
227
struct opp_table **required_opp_tables;
drivers/opp/opp.h
253
bool _opp_remove_all_static(struct opp_table *opp_table);
drivers/opp/opp.h
254
int _get_opp_count(struct opp_table *opp_table);
drivers/opp/opp.h
255
struct opp_table *_find_opp_table(struct device *dev);
drivers/opp/opp.h
256
struct opp_device *_add_opp_dev(const struct device *dev, struct opp_table *opp_table);
drivers/opp/opp.h
257
struct dev_pm_opp *_opp_allocate(struct opp_table *opp_table);
drivers/opp/opp.h
259
int _opp_compare_key(struct opp_table *opp_table, struct dev_pm_opp *opp1, struct dev_pm_opp *opp2);
drivers/opp/opp.h
260
int _opp_add(struct device *dev, struct dev_pm_opp *new_opp, struct opp_table *opp_table);
drivers/opp/opp.h
261
int _opp_add_v1(struct opp_table *opp_table, struct device *dev, struct dev_pm_opp_data *data, bool dynamic);
drivers/opp/opp.h
263
struct opp_table *_add_opp_table_indexed(struct device *dev, int index, bool getclk);
drivers/opp/opp.h
266
static inline bool lazy_linking_pending(struct opp_table *opp_table)
drivers/opp/opp.h
268
return unlikely(!list_empty(&opp_table->lazy));
drivers/opp/opp.h
272
void _of_init_opp_table(struct opp_table *opp_table, struct device *dev, int index);
drivers/opp/opp.h
273
void _of_clear_opp_table(struct opp_table *opp_table);
drivers/opp/opp.h
274
struct opp_table *_managed_opp(struct device *dev, int index);
drivers/opp/opp.h
275
void _of_clear_opp(struct opp_table *opp_table, struct dev_pm_opp *opp);
drivers/opp/opp.h
277
static inline void _of_init_opp_table(struct opp_table *opp_table, struct device *dev, int index) {}
drivers/opp/opp.h
278
static inline void _of_clear_opp_table(struct opp_table *opp_table) {}
drivers/opp/opp.h
279
static inline struct opp_table *_managed_opp(struct device *dev, int index) { return NULL; }
drivers/opp/opp.h
280
static inline void _of_clear_opp(struct opp_table *opp_table, struct dev_pm_opp *opp) {}
drivers/opp/opp.h
285
void opp_debug_create_one(struct dev_pm_opp *opp, struct opp_table *opp_table);
drivers/opp/opp.h
286
void opp_debug_register(struct opp_device *opp_dev, struct opp_table *opp_table);
drivers/opp/opp.h
287
void opp_debug_unregister(struct opp_device *opp_dev, struct opp_table *opp_table);
drivers/opp/opp.h
292
struct opp_table *opp_table) { }
drivers/opp/opp.h
295
struct opp_table *opp_table) { }
drivers/opp/opp.h
298
struct opp_table *opp_table)
drivers/opp/opp.h
49
struct opp_table *opp_table;
drivers/pmdomain/core.c
2418
genpd->opp_table = NULL;
drivers/pmdomain/core.c
2721
genpd->opp_table = dev_pm_opp_get_opp_table(&genpd->dev);
drivers/pmdomain/core.c
2722
WARN_ON(IS_ERR(genpd->opp_table));
drivers/pmdomain/core.c
2735
if (genpd->opp_table) {
drivers/pmdomain/core.c
2736
dev_pm_opp_put_opp_table(genpd->opp_table);
drivers/pmdomain/core.c
2813
genpd->opp_table = dev_pm_opp_get_opp_table(&genpd->dev);
drivers/pmdomain/core.c
2814
WARN_ON(IS_ERR(genpd->opp_table));
drivers/pmdomain/core.c
2837
if (genpd->opp_table) {
drivers/pmdomain/core.c
2838
dev_pm_opp_put_opp_table(genpd->opp_table);
drivers/pmdomain/core.c
2871
if (gpd->opp_table) {
drivers/pmdomain/core.c
2872
dev_pm_opp_put_opp_table(gpd->opp_table);
drivers/pmdomain/core.c
402
return dev_pm_opp_xlate_performance_state(genpd->opp_table,
drivers/pmdomain/core.c
403
parent->opp_table,
drivers/soc/samsung/exynos-asv.c
114
dev_pm_opp_put_opp_table(opp_table);
drivers/soc/samsung/exynos-asv.c
83
struct opp_table *last_opp_table = NULL;
drivers/soc/samsung/exynos-asv.c
88
struct opp_table *opp_table;
drivers/soc/samsung/exynos-asv.c
94
opp_table = dev_pm_opp_get_opp_table(cpu);
drivers/soc/samsung/exynos-asv.c
95
if (IS_ERR(opp_table))
drivers/soc/samsung/exynos-asv.c
98
if (!last_opp_table || opp_table != last_opp_table) {
drivers/soc/samsung/exynos-asv.c
99
last_opp_table = opp_table;
drivers/ufs/core/ufshcd.c
1131
int ufshcd_opp_config_clks(struct device *dev, struct opp_table *opp_table,
include/linux/devfreq.h
191
struct opp_table *opp_table;
include/linux/pm_domain.h
193
struct opp_table;
include/linux/pm_domain.h
222
struct opp_table *opp_table; /* OPP table of the genpd */
include/linux/pm_opp.h
122
struct opp_table *dev_pm_opp_get_opp_table(struct device *dev);
include/linux/pm_opp.h
123
struct opp_table *dev_pm_opp_get_opp_table_ref(struct opp_table *opp_table);
include/linux/pm_opp.h
124
void dev_pm_opp_put_opp_table(struct opp_table *opp_table);
include/linux/pm_opp.h
211
struct opp_table *opp_table, struct dev_pm_opp *opp, void *data,
include/linux/pm_opp.h
214
struct dev_pm_opp *dev_pm_opp_xlate_required_opp(struct opp_table *src_table, struct opp_table *dst_table, struct dev_pm_opp *src_opp);
include/linux/pm_opp.h
215
int dev_pm_opp_xlate_performance_state(struct opp_table *src_table, struct opp_table *dst_table, unsigned int pstate);
include/linux/pm_opp.h
225
static inline struct opp_table *dev_pm_opp_get_opp_table(struct device *dev)
include/linux/pm_opp.h
230
static inline struct opp_table *dev_pm_opp_get_opp_table_indexed(struct device *dev, int index)
include/linux/pm_opp.h
235
static inline struct opp_table *dev_pm_opp_get_opp_table_ref(struct opp_table *opp_table)
include/linux/pm_opp.h
237
return opp_table;
include/linux/pm_opp.h
24
struct opp_table;
include/linux/pm_opp.h
240
static inline void dev_pm_opp_put_opp_table(struct opp_table *opp_table) {}
include/linux/pm_opp.h
445
struct opp_table *opp_table, struct dev_pm_opp *opp, void *data,
include/linux/pm_opp.h
451
static inline struct dev_pm_opp *dev_pm_opp_xlate_required_opp(struct opp_table *src_table,
include/linux/pm_opp.h
452
struct opp_table *dst_table, struct dev_pm_opp *src_opp)
include/linux/pm_opp.h
457
static inline int dev_pm_opp_xlate_performance_state(struct opp_table *src_table, struct opp_table *dst_table, unsigned int pstate)
include/linux/pm_opp.h
525
int dev_pm_opp_of_find_icc_paths(struct device *dev, struct opp_table *opp_table);
include/linux/pm_opp.h
54
typedef int (*config_clks_t)(struct device *dev, struct opp_table *opp_table,
include/linux/pm_opp.h
608
static inline int dev_pm_opp_of_find_icc_paths(struct device *dev, struct opp_table *opp_table)
include/linux/pm_opp.h
618
DEFINE_FREE(put_opp_table, struct opp_table *, if (!IS_ERR_OR_NULL(_T)) dev_pm_opp_put_opp_table(_T))
include/ufs/ufshcd.h
1491
int ufshcd_opp_config_clks(struct device *dev, struct opp_table *opp_table,