diff options
-rw-r--r-- | drivers/clk/clk.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 647d056df88c..8a1860a36c77 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c | |||
@@ -1564,6 +1564,9 @@ static void clk_change_rate(struct clk_core *core) | |||
1564 | best_parent_rate = core->parent->rate; | 1564 | best_parent_rate = core->parent->rate; |
1565 | } | 1565 | } |
1566 | 1566 | ||
1567 | if (clk_pm_runtime_get(core)) | ||
1568 | return; | ||
1569 | |||
1567 | if (core->flags & CLK_SET_RATE_UNGATE) { | 1570 | if (core->flags & CLK_SET_RATE_UNGATE) { |
1568 | unsigned long flags; | 1571 | unsigned long flags; |
1569 | 1572 | ||
@@ -1634,6 +1637,8 @@ static void clk_change_rate(struct clk_core *core) | |||
1634 | /* handle the new child who might not be in core->children yet */ | 1637 | /* handle the new child who might not be in core->children yet */ |
1635 | if (core->new_child) | 1638 | if (core->new_child) |
1636 | clk_change_rate(core->new_child); | 1639 | clk_change_rate(core->new_child); |
1640 | |||
1641 | clk_pm_runtime_put(core); | ||
1637 | } | 1642 | } |
1638 | 1643 | ||
1639 | static int clk_core_set_rate_nolock(struct clk_core *core, | 1644 | static int clk_core_set_rate_nolock(struct clk_core *core, |