From: Jiancheng Xue Date: Wed, 15 Jun 2016 06:26:37 +0000 (+0800) Subject: clk: hisilicon: add hisi_clk_unregister_* functions X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=fbf0410ed5f96ae63fcb221ab785e746871a4e62;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git clk: hisilicon: add hisi_clk_unregister_* functions Add hisi_clk_unregister_* functions. Signed-off-by: Jiancheng Xue Signed-off-by: Stephen Boyd --- diff --git a/drivers/clk/hisilicon/clk.h b/drivers/clk/hisilicon/clk.h index 257532945c58..4e1d1affc6f5 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 */