提交 fbe31057 编写于 作者: A Andrzej Hajda 提交者: Mark Brown

regulator: fixed regulator_bulk_enable unwinding code

Unwinding code disables all successfully enabled regulators.
Error is logged for every failed regulator.
Signed-off-by: NAndrzej Hajda <a.hajda@samsung.com>
Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
上级 2730fd82
...@@ -3057,9 +3057,13 @@ int regulator_bulk_enable(int num_consumers, ...@@ -3057,9 +3057,13 @@ int regulator_bulk_enable(int num_consumers,
return 0; return 0;
err: err:
pr_err("Failed to enable %s: %d\n", consumers[i].supply, ret); for (i = 0; i < num_consumers; i++) {
while (--i >= 0) if (consumers[i].ret < 0)
regulator_disable(consumers[i].consumer); pr_err("Failed to enable %s: %d\n", consumers[i].supply,
consumers[i].ret);
else
regulator_disable(consumers[i].consumer);
}
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册