clk: Missing set_phase op is an error
If a clock's clk_ops doesn't have the set_phase op set we should return an error from clk_set_phase(). This way clock consumers know that when they tried to set a phase it didn't work, as opposed to the current behavior where the return value is 0 meaning success. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Michael Turquette <mturquette@linaro.org>
This commit is contained in:
parent
6b54783620
commit
08b9575660
1 changed files with 4 additions and 8 deletions
|
@ -2123,10 +2123,10 @@ EXPORT_SYMBOL_GPL(clk_set_parent);
|
|||
*/
|
||||
int clk_set_phase(struct clk *clk, int degrees)
|
||||
{
|
||||
int ret = 0;
|
||||
int ret = -EINVAL;
|
||||
|
||||
if (!clk)
|
||||
goto out;
|
||||
return 0;
|
||||
|
||||
/* sanity check degrees */
|
||||
degrees %= 360;
|
||||
|
@ -2135,18 +2135,14 @@ int clk_set_phase(struct clk *clk, int degrees)
|
|||
|
||||
clk_prepare_lock();
|
||||
|
||||
if (!clk->core->ops->set_phase)
|
||||
goto out_unlock;
|
||||
|
||||
ret = clk->core->ops->set_phase(clk->core->hw, degrees);
|
||||
if (clk->core->ops->set_phase)
|
||||
ret = clk->core->ops->set_phase(clk->core->hw, degrees);
|
||||
|
||||
if (!ret)
|
||||
clk->core->phase = degrees;
|
||||
|
||||
out_unlock:
|
||||
clk_prepare_unlock();
|
||||
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(clk_set_phase);
|
||||
|
|
Loading…
Reference in a new issue