From 511f7b03fed9b30b2c95fc1af895325ccaa82e15 Mon Sep 17 00:00:00 2001 From: Bjorn Andersson Date: Wed, 12 Jul 2017 15:04:16 -0700 Subject: [PATCH] UPSTREAM: clk: Provide bulk prepare_enable disable_unprepare variants This extends the existing set of bulk helpers with prepare_enable and disable_unprepare variants. Change-Id: I38d42d5d028f3d096cbd5b7b8d369ff250f038dc Cc: Russell King , Cc: Dong Aisheng Signed-off-by: Bjorn Andersson Signed-off-by: Stephen Boyd Signed-off-by: Tao Huang (cherry picked from commit 3c48d86cc959309ee168fb87737a8cb3f97c5224) --- include/linux/clk.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/linux/clk.h b/include/linux/clk.h index 1ebccf366485..d288a38e4a04 100644 --- a/include/linux/clk.h +++ b/include/linux/clk.h @@ -657,6 +657,28 @@ static inline void clk_disable_unprepare(struct clk *clk) clk_unprepare(clk); } +static inline int clk_bulk_prepare_enable(int num_clks, + struct clk_bulk_data *clks) +{ + int ret; + + ret = clk_bulk_prepare(num_clks, clks); + if (ret) + return ret; + ret = clk_bulk_enable(num_clks, clks); + if (ret) + clk_bulk_unprepare(num_clks, clks); + + return ret; +} + +static inline void clk_bulk_disable_unprepare(int num_clks, + struct clk_bulk_data *clks) +{ + clk_bulk_disable(num_clks, clks); + clk_bulk_unprepare(num_clks, clks); +} + #if defined(CONFIG_OF) && defined(CONFIG_COMMON_CLK) struct clk *of_clk_get(struct device_node *np, int index); struct clk *of_clk_get_by_name(struct device_node *np, const char *name);