diff options
author | Nicola Mazzucato <nicola.mazzucato@arm.com> | 2020-12-08 17:42:27 +0000 |
---|---|---|
committer | Viresh Kumar <viresh.kumar@linaro.org> | 2020-12-09 11:23:46 +0530 |
commit | 6ee70e8c34e37a34f4dc2c8bc06febffd375fac4 (patch) | |
tree | aa4c790bbcc63816e6edc29cdc9292447b25e4ef | |
parent | 24b3c963c0108f3da6d978d74a745c824ab551dc (diff) | |
download | linux-6ee70e8c34e37a34f4dc2c8bc06febffd375fac4.tar.gz linux-6ee70e8c34e37a34f4dc2c8bc06febffd375fac4.tar.bz2 linux-6ee70e8c34e37a34f4dc2c8bc06febffd375fac4.zip |
opp: of: Allow empty opp-table with opp-shared
The opp binding now allows to have an empty opp table and shared-opp to
still describe that devices share v/f lines.
When initialising an empty opp table, allow such case by:
- treating such conditions with warnings in place of errors
- don't fail on empty table
Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
-rw-r--r-- | drivers/opp/of.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/opp/of.c b/drivers/opp/of.c index 874b58756220..96113fc0e18c 100644 --- a/drivers/opp/of.c +++ b/drivers/opp/of.c @@ -169,7 +169,8 @@ static void _opp_table_alloc_required_tables(struct opp_table *opp_table, /* Traversing the first OPP node is all we need */ np = of_get_next_available_child(opp_np, NULL); if (!np) { - dev_err(dev, "Empty OPP table\n"); + dev_warn(dev, "Empty OPP table\n"); + return; } @@ -377,7 +378,9 @@ int dev_pm_opp_of_find_icc_paths(struct device *dev, struct icc_path **paths; ret = _bandwidth_supported(dev, opp_table); - if (ret <= 0) + if (ret == -EINVAL) + return 0; /* Empty OPP table is a valid corner-case, let's not fail */ + else if (ret <= 0) return ret; ret = 0; |