Skip to content

Commit

Permalink
clk: Document and simplify clk_core_get_rate_nolock()
Browse files Browse the repository at this point in the history
This function uses a few gotos and doesn't explain why parents and
numbers of parents are being checked before returning different values
for the clk's rate. Document and simplify this function somewhat to make
this better.

Signed-off-by: Stephen Boyd <sboyd@kernel.org>
  • Loading branch information
Stephen Boyd committed Feb 1, 2019
1 parent 7374faa commit 73d4f94
Showing 1 changed file with 10 additions and 15 deletions.
25 changes: 10 additions & 15 deletions drivers/clk/clk.c
Original file line number Diff line number Diff line change
Expand Up @@ -345,23 +345,18 @@ unsigned int __clk_get_enable_count(struct clk *clk)

static unsigned long clk_core_get_rate_nolock(struct clk_core *core)
{
unsigned long ret;

if (!core) {
ret = 0;
goto out;
}

ret = core->rate;

if (!core->num_parents)
goto out;
if (!core)
return 0;

if (!core->parent)
ret = 0;
if (!core->num_parents || core->parent)
return core->rate;

out:
return ret;
/*
* Clk must have a parent because num_parents > 0 but the parent isn't
* known yet. Best to return 0 as the rate of this clk until we can
* properly recalc the rate based on the parent's rate.
*/
return 0;
}

unsigned long clk_hw_get_rate(const struct clk_hw *hw)
Expand Down

0 comments on commit 73d4f94

Please sign in to comment.