From: Viresh Kumar Date: Mon, 2 Jan 2017 09:10:58 +0000 (+0530) Subject: PM / OPP: Error out on failing to add static OPPs for v1 bindings X-Git-Tag: v4.14-rc1~1361^2~1^5~22 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=04a86a84c42ca18f37ab446127dc619b41dd3b23;p=platform%2Fkernel%2Flinux-rpi3.git PM / OPP: Error out on failing to add static OPPs for v1 bindings The code adding static OPPs for V2 bindings already does so. Make the V1 bindings specific code behave the same. Signed-off-by: Viresh Kumar Reviewed-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki --- diff --git a/drivers/base/power/opp/of.c b/drivers/base/power/opp/of.c index f8512ca..c8fe815 100644 --- a/drivers/base/power/opp/of.c +++ b/drivers/base/power/opp/of.c @@ -433,7 +433,7 @@ static int _of_add_opp_table_v1(struct device *dev) { const struct property *prop; const __be32 *val; - int nr; + int nr, ret; prop = of_find_property(dev->of_node, "operating-points", NULL); if (!prop) @@ -456,9 +456,13 @@ static int _of_add_opp_table_v1(struct device *dev) unsigned long freq = be32_to_cpup(val++) * 1000; unsigned long volt = be32_to_cpup(val++); - if (_opp_add_v1(dev, freq, volt, false)) - dev_warn(dev, "%s: Failed to add OPP %ld\n", - __func__, freq); + ret = _opp_add_v1(dev, freq, volt, false); + if (ret) { + dev_err(dev, "%s: Failed to add OPP %ld (%d)\n", + __func__, freq, ret); + dev_pm_opp_of_remove_table(dev); + return ret; + } nr -= 2; }