[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1465971998-29619-5-git-send-email-xuejiancheng@hisilicon.com>
Date: Wed, 15 Jun 2016 14:26:37 +0800
From: Jiancheng Xue <xuejiancheng@...ilicon.com>
To: <mturquette@...libre.com>, <sboyd@...eaurora.org>,
<p.zabel@...gutronix.de>
CC: <linux-clk@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<yanhaifeng@...ilicon.com>, <yanghongwei@...ilicon.com>,
Jiancheng Xue <xuejiancheng@...ilicon.com>
Subject: [PATCH v2 4/5] clk: hisilicon: add hisi_clk_unregister_* functions
Add hisi_clk_unregister_* functions.
Signed-off-by: Jiancheng Xue <xuejiancheng@...ilicon.com>
---
drivers/clk/hisilicon/clk.h | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/drivers/clk/hisilicon/clk.h b/drivers/clk/hisilicon/clk.h
index 2575329..4e1d1af 100644
--- a/drivers/clk/hisilicon/clk.h
+++ b/drivers/clk/hisilicon/clk.h
@@ -128,4 +128,25 @@ void hisi_clk_register_gate_sep(const struct hisi_gate_clock *,
int, struct hisi_clock_data *);
void hi6220_clk_register_divider(const struct hi6220_divider_clock *,
int, struct hisi_clock_data *);
+
+#define hisi_clk_unregister(type) \
+static inline \
+void hisi_clk_unregister_##type(const struct hisi_##type##_clock *clks, \
+ int nums, struct hisi_clock_data *data) \
+{ \
+ struct clk **clocks = data->clk_data.clks; \
+ int i; \
+ for (i = 0; i < nums; i++) { \
+ int id = clks[i].id; \
+ if (clocks[id]) \
+ clk_unregister_##type(clocks[id]); \
+ } \
+}
+
+hisi_clk_unregister(fixed_rate)
+hisi_clk_unregister(fixed_factor)
+hisi_clk_unregister(mux)
+hisi_clk_unregister(divider)
+hisi_clk_unregister(gate)
+
#endif /* __HISI_CLK_H */
--
1.9.1
Powered by blists - more mailing lists