From 760be6586fbcc0a5a3b7892e3fe664a3f0530631 Mon Sep 17 00:00:00 2001 From: Jeffrey Hugo Date: Sun, 10 Feb 2019 13:14:05 -0700 Subject: clk: qcom: Make common clk_hw registrations Several clock controller drivers define a list of clk_hw devices, and then register those devices in probe() before using common code to process the rest of initialization. Extend the common code to accept a list of clk_hw devices to process, thus eliminating many duplicate implementations. Signed-off-by: Jeffrey Hugo Suggested-by: Stephen Boyd Reviewed-by: Vinod Koul Tested-by: Vinod Koul Signed-off-by: Stephen Boyd --- drivers/clk/qcom/common.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'drivers/clk/qcom/common.c') diff --git a/drivers/clk/qcom/common.c b/drivers/clk/qcom/common.c index 0a48ed56833b..a6b2f86112d8 100644 --- a/drivers/clk/qcom/common.c +++ b/drivers/clk/qcom/common.c @@ -231,6 +231,8 @@ int qcom_cc_really_probe(struct platform_device *pdev, struct gdsc_desc *scd; size_t num_clks = desc->num_clks; struct clk_regmap **rclks = desc->clks; + size_t num_clk_hws = desc->num_clk_hws; + struct clk_hw **clk_hws = desc->clk_hws; cc = devm_kzalloc(dev, sizeof(*cc), GFP_KERNEL); if (!cc) @@ -269,6 +271,12 @@ int qcom_cc_really_probe(struct platform_device *pdev, qcom_cc_drop_protected(dev, cc); + for (i = 0; i < num_clk_hws; i++) { + ret = devm_clk_hw_register(dev, clk_hws[i]); + if (ret) + return ret; + } + for (i = 0; i < num_clks; i++) { if (!rclks[i]) continue; -- cgit v1.2.3