ANDROID: GKI: clk: Add support for clock providers with sync state

Clock providers whose drivers have sync_state() implemented will disable
their clocks once all their consumers have probed. So during
late_initcall_sync(), don't disable unused clocks of these clock
providers.

Also, provide a clk_sync_state() API that clock providers can use to
disable all their unused clocks once they get their sync_state()
callback.

Bug: 144066914
Signed-off-by: Saravana Kannan <saravanak@google.com>
Change-Id: Id01bfc15347812faa19802463c088db162c7d117
This commit is contained in:
Saravana Kannan
2019-11-06 12:21:35 -08:00
parent 3bcfe0980f
commit 44ee1179cb
2 changed files with 67 additions and 0 deletions

View File

@@ -32,6 +32,7 @@
#define CLK_OPS_PARENT_ENABLE BIT(12)
/* duty cycle call may be forwarded to the parent clock */
#define CLK_DUTY_CYCLE_PARENT BIT(13)
#define CLK_DONT_HOLD_STATE BIT(14) /* Don't hold state */
struct clk;
struct clk_hw;
@@ -815,6 +816,7 @@ void devm_clk_unregister(struct device *dev, struct clk *clk);
void clk_hw_unregister(struct clk_hw *hw);
void devm_clk_hw_unregister(struct device *dev, struct clk_hw *hw);
void clk_sync_state(struct device *dev);
/* helper functions */
const char *__clk_get_name(const struct clk *clk);