Loading drivers/clk/hisilicon/clk.c +50 −10 Original line number Diff line number Diff line Loading @@ -102,7 +102,7 @@ struct hisi_clock_data *hisi_clk_init(struct device_node *np, } EXPORT_SYMBOL_GPL(hisi_clk_init); void hisi_clk_register_fixed_rate(const struct hisi_fixed_rate_clock *clks, int hisi_clk_register_fixed_rate(const struct hisi_fixed_rate_clock *clks, int nums, struct hisi_clock_data *data) { struct clk *clk; Loading @@ -116,14 +116,22 @@ void hisi_clk_register_fixed_rate(const struct hisi_fixed_rate_clock *clks, if (IS_ERR(clk)) { pr_err("%s: failed to register clock %s\n", __func__, clks[i].name); continue; goto err; } data->clk_data.clks[clks[i].id] = clk; } return 0; err: while (i--) clk_unregister_fixed_rate(data->clk_data.clks[clks[i].id]); return PTR_ERR(clk); } EXPORT_SYMBOL_GPL(hisi_clk_register_fixed_rate); void hisi_clk_register_fixed_factor(const struct hisi_fixed_factor_clock *clks, int hisi_clk_register_fixed_factor(const struct hisi_fixed_factor_clock *clks, int nums, struct hisi_clock_data *data) { Loading @@ -138,14 +146,22 @@ void hisi_clk_register_fixed_factor(const struct hisi_fixed_factor_clock *clks, if (IS_ERR(clk)) { pr_err("%s: failed to register clock %s\n", __func__, clks[i].name); continue; goto err; } data->clk_data.clks[clks[i].id] = clk; } return 0; err: while (i--) clk_unregister_fixed_factor(data->clk_data.clks[clks[i].id]); return PTR_ERR(clk); } EXPORT_SYMBOL_GPL(hisi_clk_register_fixed_factor); void hisi_clk_register_mux(const struct hisi_mux_clock *clks, int hisi_clk_register_mux(const struct hisi_mux_clock *clks, int nums, struct hisi_clock_data *data) { struct clk *clk; Loading @@ -164,7 +180,7 @@ void hisi_clk_register_mux(const struct hisi_mux_clock *clks, if (IS_ERR(clk)) { pr_err("%s: failed to register clock %s\n", __func__, clks[i].name); continue; goto err; } if (clks[i].alias) Loading @@ -172,10 +188,18 @@ void hisi_clk_register_mux(const struct hisi_mux_clock *clks, data->clk_data.clks[clks[i].id] = clk; } return 0; err: while (i--) clk_unregister_mux(data->clk_data.clks[clks[i].id]); return PTR_ERR(clk); } EXPORT_SYMBOL_GPL(hisi_clk_register_mux); void hisi_clk_register_divider(const struct hisi_divider_clock *clks, int hisi_clk_register_divider(const struct hisi_divider_clock *clks, int nums, struct hisi_clock_data *data) { struct clk *clk; Loading @@ -194,7 +218,7 @@ void hisi_clk_register_divider(const struct hisi_divider_clock *clks, if (IS_ERR(clk)) { pr_err("%s: failed to register clock %s\n", __func__, clks[i].name); continue; goto err; } if (clks[i].alias) Loading @@ -202,10 +226,18 @@ void hisi_clk_register_divider(const struct hisi_divider_clock *clks, data->clk_data.clks[clks[i].id] = clk; } return 0; err: while (i--) clk_unregister_divider(data->clk_data.clks[clks[i].id]); return PTR_ERR(clk); } EXPORT_SYMBOL_GPL(hisi_clk_register_divider); void hisi_clk_register_gate(const struct hisi_gate_clock *clks, int hisi_clk_register_gate(const struct hisi_gate_clock *clks, int nums, struct hisi_clock_data *data) { struct clk *clk; Loading @@ -223,7 +255,7 @@ void hisi_clk_register_gate(const struct hisi_gate_clock *clks, if (IS_ERR(clk)) { pr_err("%s: failed to register clock %s\n", __func__, clks[i].name); continue; goto err; } if (clks[i].alias) Loading @@ -231,6 +263,14 @@ void hisi_clk_register_gate(const struct hisi_gate_clock *clks, data->clk_data.clks[clks[i].id] = clk; } return 0; err: while (i--) clk_unregister_gate(data->clk_data.clks[clks[i].id]); return PTR_ERR(clk); } EXPORT_SYMBOL_GPL(hisi_clk_register_gate); Loading drivers/clk/hisilicon/clk.h +5 −5 Original line number Diff line number Diff line Loading @@ -114,15 +114,15 @@ struct clk *hi6220_register_clkdiv(struct device *dev, const char *name, struct hisi_clock_data *hisi_clk_alloc(struct platform_device *, int); struct hisi_clock_data *hisi_clk_init(struct device_node *, int); void hisi_clk_register_fixed_rate(const struct hisi_fixed_rate_clock *, int hisi_clk_register_fixed_rate(const struct hisi_fixed_rate_clock *, int, struct hisi_clock_data *); void hisi_clk_register_fixed_factor(const struct hisi_fixed_factor_clock *, int hisi_clk_register_fixed_factor(const struct hisi_fixed_factor_clock *, int, struct hisi_clock_data *); void hisi_clk_register_mux(const struct hisi_mux_clock *, int, int hisi_clk_register_mux(const struct hisi_mux_clock *, int, struct hisi_clock_data *); void hisi_clk_register_divider(const struct hisi_divider_clock *, int hisi_clk_register_divider(const struct hisi_divider_clock *, int, struct hisi_clock_data *); void hisi_clk_register_gate(const struct hisi_gate_clock *, int hisi_clk_register_gate(const struct hisi_gate_clock *, int, struct hisi_clock_data *); void hisi_clk_register_gate_sep(const struct hisi_gate_clock *, int, struct hisi_clock_data *); Loading Loading
drivers/clk/hisilicon/clk.c +50 −10 Original line number Diff line number Diff line Loading @@ -102,7 +102,7 @@ struct hisi_clock_data *hisi_clk_init(struct device_node *np, } EXPORT_SYMBOL_GPL(hisi_clk_init); void hisi_clk_register_fixed_rate(const struct hisi_fixed_rate_clock *clks, int hisi_clk_register_fixed_rate(const struct hisi_fixed_rate_clock *clks, int nums, struct hisi_clock_data *data) { struct clk *clk; Loading @@ -116,14 +116,22 @@ void hisi_clk_register_fixed_rate(const struct hisi_fixed_rate_clock *clks, if (IS_ERR(clk)) { pr_err("%s: failed to register clock %s\n", __func__, clks[i].name); continue; goto err; } data->clk_data.clks[clks[i].id] = clk; } return 0; err: while (i--) clk_unregister_fixed_rate(data->clk_data.clks[clks[i].id]); return PTR_ERR(clk); } EXPORT_SYMBOL_GPL(hisi_clk_register_fixed_rate); void hisi_clk_register_fixed_factor(const struct hisi_fixed_factor_clock *clks, int hisi_clk_register_fixed_factor(const struct hisi_fixed_factor_clock *clks, int nums, struct hisi_clock_data *data) { Loading @@ -138,14 +146,22 @@ void hisi_clk_register_fixed_factor(const struct hisi_fixed_factor_clock *clks, if (IS_ERR(clk)) { pr_err("%s: failed to register clock %s\n", __func__, clks[i].name); continue; goto err; } data->clk_data.clks[clks[i].id] = clk; } return 0; err: while (i--) clk_unregister_fixed_factor(data->clk_data.clks[clks[i].id]); return PTR_ERR(clk); } EXPORT_SYMBOL_GPL(hisi_clk_register_fixed_factor); void hisi_clk_register_mux(const struct hisi_mux_clock *clks, int hisi_clk_register_mux(const struct hisi_mux_clock *clks, int nums, struct hisi_clock_data *data) { struct clk *clk; Loading @@ -164,7 +180,7 @@ void hisi_clk_register_mux(const struct hisi_mux_clock *clks, if (IS_ERR(clk)) { pr_err("%s: failed to register clock %s\n", __func__, clks[i].name); continue; goto err; } if (clks[i].alias) Loading @@ -172,10 +188,18 @@ void hisi_clk_register_mux(const struct hisi_mux_clock *clks, data->clk_data.clks[clks[i].id] = clk; } return 0; err: while (i--) clk_unregister_mux(data->clk_data.clks[clks[i].id]); return PTR_ERR(clk); } EXPORT_SYMBOL_GPL(hisi_clk_register_mux); void hisi_clk_register_divider(const struct hisi_divider_clock *clks, int hisi_clk_register_divider(const struct hisi_divider_clock *clks, int nums, struct hisi_clock_data *data) { struct clk *clk; Loading @@ -194,7 +218,7 @@ void hisi_clk_register_divider(const struct hisi_divider_clock *clks, if (IS_ERR(clk)) { pr_err("%s: failed to register clock %s\n", __func__, clks[i].name); continue; goto err; } if (clks[i].alias) Loading @@ -202,10 +226,18 @@ void hisi_clk_register_divider(const struct hisi_divider_clock *clks, data->clk_data.clks[clks[i].id] = clk; } return 0; err: while (i--) clk_unregister_divider(data->clk_data.clks[clks[i].id]); return PTR_ERR(clk); } EXPORT_SYMBOL_GPL(hisi_clk_register_divider); void hisi_clk_register_gate(const struct hisi_gate_clock *clks, int hisi_clk_register_gate(const struct hisi_gate_clock *clks, int nums, struct hisi_clock_data *data) { struct clk *clk; Loading @@ -223,7 +255,7 @@ void hisi_clk_register_gate(const struct hisi_gate_clock *clks, if (IS_ERR(clk)) { pr_err("%s: failed to register clock %s\n", __func__, clks[i].name); continue; goto err; } if (clks[i].alias) Loading @@ -231,6 +263,14 @@ void hisi_clk_register_gate(const struct hisi_gate_clock *clks, data->clk_data.clks[clks[i].id] = clk; } return 0; err: while (i--) clk_unregister_gate(data->clk_data.clks[clks[i].id]); return PTR_ERR(clk); } EXPORT_SYMBOL_GPL(hisi_clk_register_gate); Loading
drivers/clk/hisilicon/clk.h +5 −5 Original line number Diff line number Diff line Loading @@ -114,15 +114,15 @@ struct clk *hi6220_register_clkdiv(struct device *dev, const char *name, struct hisi_clock_data *hisi_clk_alloc(struct platform_device *, int); struct hisi_clock_data *hisi_clk_init(struct device_node *, int); void hisi_clk_register_fixed_rate(const struct hisi_fixed_rate_clock *, int hisi_clk_register_fixed_rate(const struct hisi_fixed_rate_clock *, int, struct hisi_clock_data *); void hisi_clk_register_fixed_factor(const struct hisi_fixed_factor_clock *, int hisi_clk_register_fixed_factor(const struct hisi_fixed_factor_clock *, int, struct hisi_clock_data *); void hisi_clk_register_mux(const struct hisi_mux_clock *, int, int hisi_clk_register_mux(const struct hisi_mux_clock *, int, struct hisi_clock_data *); void hisi_clk_register_divider(const struct hisi_divider_clock *, int hisi_clk_register_divider(const struct hisi_divider_clock *, int, struct hisi_clock_data *); void hisi_clk_register_gate(const struct hisi_gate_clock *, int hisi_clk_register_gate(const struct hisi_gate_clock *, int, struct hisi_clock_data *); void hisi_clk_register_gate_sep(const struct hisi_gate_clock *, int, struct hisi_clock_data *); Loading