[PATCH v2 04/11] clk: mediatek: Replace 'struct clk' with 'struct clk_hw'
Miles Chen
miles.chen at mediatek.com
Thu May 12 07:18:51 PDT 2022
> As part of the effort to improve the MediaTek clk drivers, the next step
> is to switch from the old 'struct clk' clk prodivder APIs to the new
> 'struct clk_hw' ones.
>
> Instead of adding new APIs to the MediaTek clk driver library mirroring
> the existing ones, moving all drivers to the new APIs, and then removing
> the old ones, just migrate everything at the same time. This involves
> replacing 'struct clk' with 'struct clk_hw', and 'struct clk_onecell_data'
> with 'struct clk_hw_onecell_data', and fixing up all usages.
>
> This is done with the following coccinelle script.
>
> To avoid a really large patch, the changes have been split into multiple
> ones. This patch covers the common MediaTek clk library.
>
> // Replace type
...snip...
> +++ b/drivers/clk/mediatek/clk-mtk.c
> @@ -21,7 +21,7 @@
> struct clk_hw_onecell_data *mtk_alloc_clk_data(unsigned int clk_num)
> {
> int i;
> - struct clk_onecell_data *clk_data;
> + struct clk_hw_onecell_data *clk_data;
oh, clk_onecell_data is converted to clk_hw_onecell_data here
Reviewed-by: Miles Chen <miles.chen at mediatek.com>
>
> clk_data = kzalloc(struct_size(clk_data, hws, clk_num), GFP_KERNEL);
> if (!clk_data)
> @@ -43,7 +43,7 @@ void mtk_free_clk_data(struct clk_hw_onecell_data *clk_data)
> EXPORT_SYMBOL_GPL(mtk_free_clk_data);
>
> int mtk_clk_register_fixed_clks(const struct mtk_fixed_clk *clks, int num,
> - struct clk_onecell_data *clk_data)
> + struct clk_hw_onecell_data *clk_data)
> {
> int i;
> struct clk *clk;
> @@ -54,7 +54,7 @@ int mtk_clk_register_fixed_clks(const struct mtk_fixed_clk *clks, int num,
> for (i = 0; i < num; i++) {
> const struct mtk_fixed_clk *rc = &clks[i];
>
> - if (!IS_ERR_OR_NULL(clk_data->clks[rc->id])) {
> + if (!IS_ERR_OR_NULL(clk_data->hws[rc->id])) {
> pr_warn("Trying to register duplicate clock ID: %d\n", rc->id);
> continue;
> }
> @@ -67,7 +67,7 @@ int mtk_clk_register_fixed_clks(const struct mtk_fixed_clk *clks, int num,
> goto err;
> }
>
> - clk_data->clks[rc->id] = clk;
> + clk_data->hws[rc->id] = __clk_get_hw(clk);
> }
>
> return 0;
> @@ -76,11 +76,11 @@ int mtk_clk_register_fixed_clks(const struct mtk_fixed_clk *clks, int num,
> while (--i >= 0) {
> const struct mtk_fixed_clk *rc = &clks[i];
>
> - if (IS_ERR_OR_NULL(clk_data->clks[rc->id]))
> + if (IS_ERR_OR_NULL(clk_data->hws[rc->id]))
> continue;
>
> - clk_unregister_fixed_rate(clk_data->clks[rc->id]);
> - clk_data->clks[rc->id] = ERR_PTR(-ENOENT);
> + clk_unregister_fixed_rate(clk_data->hws[rc->id]->clk);
> + clk_data->hws[rc->id] = ERR_PTR(-ENOENT);
> }
>
> return PTR_ERR(clk);
> @@ -88,7 +88,7 @@ int mtk_clk_register_fixed_clks(const struct mtk_fixed_clk *clks, int num,
> EXPORT_SYMBOL_GPL(mtk_clk_register_fixed_clks);
>
> void mtk_clk_unregister_fixed_clks(const struct mtk_fixed_clk *clks, int num,
> - struct clk_onecell_data *clk_data)
> + struct clk_hw_onecell_data *clk_data)
> {
> int i;
>
> @@ -98,17 +98,17 @@ void mtk_clk_unregister_fixed_clks(const struct mtk_fixed_clk *clks, int num,
> for (i = num; i > 0; i--) {
> const struct mtk_fixed_clk *rc = &clks[i - 1];
>
> - if (IS_ERR_OR_NULL(clk_data->clks[rc->id]))
> + if (IS_ERR_OR_NULL(clk_data->hws[rc->id]))
> continue;
>
> - clk_unregister_fixed_rate(clk_data->clks[rc->id]);
> - clk_data->clks[rc->id] = ERR_PTR(-ENOENT);
> + clk_unregister_fixed_rate(clk_data->hws[rc->id]->clk);
> + clk_data->hws[rc->id] = ERR_PTR(-ENOENT);
> }
> }
> EXPORT_SYMBOL_GPL(mtk_clk_unregister_fixed_clks);
>
> int mtk_clk_register_factors(const struct mtk_fixed_factor *clks, int num,
> - struct clk_onecell_data *clk_data)
> + struct clk_hw_onecell_data *clk_data)
> {
> int i;
> struct clk *clk;
> @@ -119,7 +119,7 @@ int mtk_clk_register_factors(const struct mtk_fixed_factor *clks, int num,
> for (i = 0; i < num; i++) {
> const struct mtk_fixed_factor *ff = &clks[i];
>
> - if (!IS_ERR_OR_NULL(clk_data->clks[ff->id])) {
> + if (!IS_ERR_OR_NULL(clk_data->hws[ff->id])) {
> pr_warn("Trying to register duplicate clock ID: %d\n", ff->id);
> continue;
> }
> @@ -132,7 +132,7 @@ int mtk_clk_register_factors(const struct mtk_fixed_factor *clks, int num,
> goto err;
> }
>
> - clk_data->clks[ff->id] = clk;
> + clk_data->hws[ff->id] = __clk_get_hw(clk);
> }
>
> return 0;
> @@ -141,11 +141,11 @@ int mtk_clk_register_factors(const struct mtk_fixed_factor *clks, int num,
> while (--i >= 0) {
> const struct mtk_fixed_factor *ff = &clks[i];
>
> - if (IS_ERR_OR_NULL(clk_data->clks[ff->id]))
> + if (IS_ERR_OR_NULL(clk_data->hws[ff->id]))
> continue;
>
> - clk_unregister_fixed_factor(clk_data->clks[ff->id]);
> - clk_data->clks[ff->id] = ERR_PTR(-ENOENT);
> + clk_unregister_fixed_factor(clk_data->hws[ff->id]->clk);
> + clk_data->hws[ff->id] = ERR_PTR(-ENOENT);
> }
>
> return PTR_ERR(clk);
> @@ -153,7 +153,7 @@ int mtk_clk_register_factors(const struct mtk_fixed_factor *clks, int num,
> EXPORT_SYMBOL_GPL(mtk_clk_register_factors);
>
> void mtk_clk_unregister_factors(const struct mtk_fixed_factor *clks, int num,
> - struct clk_onecell_data *clk_data)
> + struct clk_hw_onecell_data *clk_data)
> {
> int i;
>
> @@ -163,11 +163,11 @@ void mtk_clk_unregister_factors(const struct mtk_fixed_factor *clks, int num,
> for (i = num; i > 0; i--) {
> const struct mtk_fixed_factor *ff = &clks[i - 1];
>
> - if (IS_ERR_OR_NULL(clk_data->clks[ff->id]))
> + if (IS_ERR_OR_NULL(clk_data->hws[ff->id]))
> continue;
>
> - clk_unregister_fixed_factor(clk_data->clks[ff->id]);
> - clk_data->clks[ff->id] = ERR_PTR(-ENOENT);
> + clk_unregister_fixed_factor(clk_data->hws[ff->id]->clk);
> + clk_data->hws[ff->id] = ERR_PTR(-ENOENT);
> }
> }
> EXPORT_SYMBOL_GPL(mtk_clk_unregister_factors);
> @@ -287,7 +287,7 @@ static void mtk_clk_unregister_composite(struct clk *clk)
>
> int mtk_clk_register_composites(const struct mtk_composite *mcs, int num,
> void __iomem *base, spinlock_t *lock,
> - struct clk_onecell_data *clk_data)
> + struct clk_hw_onecell_data *clk_data)
> {
> struct clk *clk;
> int i;
> @@ -298,7 +298,7 @@ int mtk_clk_register_composites(const struct mtk_composite *mcs, int num,
> for (i = 0; i < num; i++) {
> const struct mtk_composite *mc = &mcs[i];
>
> - if (!IS_ERR_OR_NULL(clk_data->clks[mc->id])) {
> + if (!IS_ERR_OR_NULL(clk_data->hws[mc->id])) {
> pr_warn("Trying to register duplicate clock ID: %d\n",
> mc->id);
> continue;
> @@ -311,7 +311,7 @@ int mtk_clk_register_composites(const struct mtk_composite *mcs, int num,
> goto err;
> }
>
> - clk_data->clks[mc->id] = clk;
> + clk_data->hws[mc->id] = __clk_get_hw(clk);
> }
>
> return 0;
> @@ -320,11 +320,11 @@ int mtk_clk_register_composites(const struct mtk_composite *mcs, int num,
> while (--i >= 0) {
> const struct mtk_composite *mc = &mcs[i];
>
> - if (IS_ERR_OR_NULL(clk_data->clks[mcs->id]))
> + if (IS_ERR_OR_NULL(clk_data->hws[mcs->id]))
> continue;
>
> - mtk_clk_unregister_composite(clk_data->clks[mc->id]);
> - clk_data->clks[mc->id] = ERR_PTR(-ENOENT);
> + mtk_clk_unregister_composite(clk_data->hws[mc->id]->clk);
> + clk_data->hws[mc->id] = ERR_PTR(-ENOENT);
> }
>
> return PTR_ERR(clk);
> @@ -332,7 +332,7 @@ int mtk_clk_register_composites(const struct mtk_composite *mcs, int num,
> EXPORT_SYMBOL_GPL(mtk_clk_register_composites);
>
> void mtk_clk_unregister_composites(const struct mtk_composite *mcs, int num,
> - struct clk_onecell_data *clk_data)
> + struct clk_hw_onecell_data *clk_data)
> {
> int i;
>
> @@ -342,18 +342,18 @@ void mtk_clk_unregister_composites(const struct mtk_composite *mcs, int num,
> for (i = num; i > 0; i--) {
> const struct mtk_composite *mc = &mcs[i - 1];
>
> - if (IS_ERR_OR_NULL(clk_data->clks[mc->id]))
> + if (IS_ERR_OR_NULL(clk_data->hws[mc->id]))
> continue;
>
> - mtk_clk_unregister_composite(clk_data->clks[mc->id]);
> - clk_data->clks[mc->id] = ERR_PTR(-ENOENT);
> + mtk_clk_unregister_composite(clk_data->hws[mc->id]->clk);
> + clk_data->hws[mc->id] = ERR_PTR(-ENOENT);
> }
> }
> EXPORT_SYMBOL_GPL(mtk_clk_unregister_composites);
>
> int mtk_clk_register_dividers(const struct mtk_clk_divider *mcds, int num,
> void __iomem *base, spinlock_t *lock,
> - struct clk_onecell_data *clk_data)
> + struct clk_hw_onecell_data *clk_data)
> {
> struct clk *clk;
> int i;
> @@ -364,7 +364,7 @@ int mtk_clk_register_dividers(const struct mtk_clk_divider *mcds, int num,
> for (i = 0; i < num; i++) {
> const struct mtk_clk_divider *mcd = &mcds[i];
>
> - if (!IS_ERR_OR_NULL(clk_data->clks[mcd->id])) {
> + if (!IS_ERR_OR_NULL(clk_data->hws[mcd->id])) {
> pr_warn("Trying to register duplicate clock ID: %d\n",
> mcd->id);
> continue;
> @@ -379,7 +379,7 @@ int mtk_clk_register_dividers(const struct mtk_clk_divider *mcds, int num,
> goto err;
> }
>
> - clk_data->clks[mcd->id] = clk;
> + clk_data->hws[mcd->id] = __clk_get_hw(clk);
> }
>
> return 0;
> @@ -388,18 +388,18 @@ int mtk_clk_register_dividers(const struct mtk_clk_divider *mcds, int num,
> while (--i >= 0) {
> const struct mtk_clk_divider *mcd = &mcds[i];
>
> - if (IS_ERR_OR_NULL(clk_data->clks[mcd->id]))
> + if (IS_ERR_OR_NULL(clk_data->hws[mcd->id]))
> continue;
>
> - mtk_clk_unregister_composite(clk_data->clks[mcd->id]);
> - clk_data->clks[mcd->id] = ERR_PTR(-ENOENT);
> + mtk_clk_unregister_composite(clk_data->hws[mcd->id]->clk);
> + clk_data->hws[mcd->id] = ERR_PTR(-ENOENT);
> }
>
> return PTR_ERR(clk);
> }
>
> void mtk_clk_unregister_dividers(const struct mtk_clk_divider *mcds, int num,
> - struct clk_onecell_data *clk_data)
> + struct clk_hw_onecell_data *clk_data)
> {
> int i;
>
> @@ -409,18 +409,18 @@ void mtk_clk_unregister_dividers(const struct mtk_clk_divider *mcds, int num,
> for (i = num; i > 0; i--) {
> const struct mtk_clk_divider *mcd = &mcds[i - 1];
>
> - if (IS_ERR_OR_NULL(clk_data->clks[mcd->id]))
> + if (IS_ERR_OR_NULL(clk_data->hws[mcd->id]))
> continue;
>
> - clk_unregister_divider(clk_data->clks[mcd->id]);
> - clk_data->clks[mcd->id] = ERR_PTR(-ENOENT);
> + clk_unregister_divider(clk_data->hws[mcd->id]->clk);
> + clk_data->hws[mcd->id] = ERR_PTR(-ENOENT);
> }
> }
>
> int mtk_clk_simple_probe(struct platform_device *pdev)
> {
> const struct mtk_clk_desc *mcd;
> - struct clk_onecell_data *clk_data;
> + struct clk_hw_onecell_data *clk_data;
> struct device_node *node = pdev->dev.of_node;
> int r;
>
> @@ -436,7 +436,7 @@ int mtk_clk_simple_probe(struct platform_device *pdev)
> if (r)
> goto free_data;
>
> - r = of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
> + r = of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data);
> if (r)
> goto unregister_clks;
>
> @@ -454,7 +454,7 @@ int mtk_clk_simple_probe(struct platform_device *pdev)
> int mtk_clk_simple_remove(struct platform_device *pdev)
> {
> const struct mtk_clk_desc *mcd = of_device_get_match_data(&pdev->dev);
> - struct clk_onecell_data *clk_data = platform_get_drvdata(pdev);
> + struct clk_hw_onecell_data *clk_data = platform_get_drvdata(pdev);
> struct device_node *node = pdev->dev.of_node;
>
> of_clk_del_provider(node);
> diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h
> index 787fdeb1bd93..e736420170a2 100644
> --- a/drivers/clk/mediatek/clk-mtk.h
> +++ b/drivers/clk/mediatek/clk-mtk.h
> @@ -35,9 +35,9 @@ struct mtk_fixed_clk {
> }
>
> int mtk_clk_register_fixed_clks(const struct mtk_fixed_clk *clks, int num,
> - struct clk_onecell_data *clk_data);
> + struct clk_hw_onecell_data *clk_data);
> void mtk_clk_unregister_fixed_clks(const struct mtk_fixed_clk *clks, int num,
> - struct clk_onecell_data *clk_data);
> + struct clk_hw_onecell_data *clk_data);
>
> struct mtk_fixed_factor {
> int id;
> @@ -56,9 +56,9 @@ struct mtk_fixed_factor {
> }
>
> int mtk_clk_register_factors(const struct mtk_fixed_factor *clks, int num,
> - struct clk_onecell_data *clk_data);
> + struct clk_hw_onecell_data *clk_data);
> void mtk_clk_unregister_factors(const struct mtk_fixed_factor *clks, int num,
> - struct clk_onecell_data *clk_data);
> + struct clk_hw_onecell_data *clk_data);
>
> struct mtk_composite {
> int id;
> @@ -149,9 +149,9 @@ struct mtk_composite {
>
> int mtk_clk_register_composites(const struct mtk_composite *mcs, int num,
> void __iomem *base, spinlock_t *lock,
> - struct clk_onecell_data *clk_data);
> + struct clk_hw_onecell_data *clk_data);
> void mtk_clk_unregister_composites(const struct mtk_composite *mcs, int num,
> - struct clk_onecell_data *clk_data);
> + struct clk_hw_onecell_data *clk_data);
>
> struct mtk_clk_divider {
> int id;
> @@ -177,9 +177,9 @@ struct mtk_clk_divider {
>
> int mtk_clk_register_dividers(const struct mtk_clk_divider *mcds, int num,
> void __iomem *base, spinlock_t *lock,
> - struct clk_onecell_data *clk_data);
> + struct clk_hw_onecell_data *clk_data);
> void mtk_clk_unregister_dividers(const struct mtk_clk_divider *mcds, int num,
> - struct clk_onecell_data *clk_data);
> + struct clk_hw_onecell_data *clk_data);
>
> struct clk_hw_onecell_data *mtk_alloc_clk_data(unsigned int clk_num);
> void mtk_free_clk_data(struct clk_hw_onecell_data *clk_data);
> diff --git a/drivers/clk/mediatek/clk-mux.c b/drivers/clk/mediatek/clk-mux.c
> index 21ad5a4afd65..2f47e59cc528 100644
> --- a/drivers/clk/mediatek/clk-mux.c
> +++ b/drivers/clk/mediatek/clk-mux.c
> @@ -193,7 +193,7 @@ static void mtk_clk_unregister_mux(struct clk *clk)
> int mtk_clk_register_muxes(const struct mtk_mux *muxes,
> int num, struct device_node *node,
> spinlock_t *lock,
> - struct clk_onecell_data *clk_data)
> + struct clk_hw_onecell_data *clk_data)
> {
> struct regmap *regmap;
> struct clk *clk;
> @@ -208,7 +208,7 @@ int mtk_clk_register_muxes(const struct mtk_mux *muxes,
> for (i = 0; i < num; i++) {
> const struct mtk_mux *mux = &muxes[i];
>
> - if (!IS_ERR_OR_NULL(clk_data->clks[mux->id])) {
> + if (!IS_ERR_OR_NULL(clk_data->hws[mux->id])) {
> pr_warn("%pOF: Trying to register duplicate clock ID: %d\n",
> node, mux->id);
> continue;
> @@ -221,7 +221,7 @@ int mtk_clk_register_muxes(const struct mtk_mux *muxes,
> goto err;
> }
>
> - clk_data->clks[mux->id] = clk;
> + clk_data->hws[mux->id] = __clk_get_hw(clk);
> }
>
> return 0;
> @@ -230,11 +230,11 @@ int mtk_clk_register_muxes(const struct mtk_mux *muxes,
> while (--i >= 0) {
> const struct mtk_mux *mux = &muxes[i];
>
> - if (IS_ERR_OR_NULL(clk_data->clks[mux->id]))
> + if (IS_ERR_OR_NULL(clk_data->hws[mux->id]))
> continue;
>
> - mtk_clk_unregister_mux(clk_data->clks[mux->id]);
> - clk_data->clks[mux->id] = ERR_PTR(-ENOENT);
> + mtk_clk_unregister_mux(clk_data->hws[mux->id]->clk);
> + clk_data->hws[mux->id] = ERR_PTR(-ENOENT);
> }
>
> return PTR_ERR(clk);
> @@ -242,7 +242,7 @@ int mtk_clk_register_muxes(const struct mtk_mux *muxes,
> EXPORT_SYMBOL_GPL(mtk_clk_register_muxes);
>
> void mtk_clk_unregister_muxes(const struct mtk_mux *muxes, int num,
> - struct clk_onecell_data *clk_data)
> + struct clk_hw_onecell_data *clk_data)
> {
> int i;
>
> @@ -252,11 +252,11 @@ void mtk_clk_unregister_muxes(const struct mtk_mux *muxes, int num,
> for (i = num; i > 0; i--) {
> const struct mtk_mux *mux = &muxes[i - 1];
>
> - if (IS_ERR_OR_NULL(clk_data->clks[mux->id]))
> + if (IS_ERR_OR_NULL(clk_data->hws[mux->id]))
> continue;
>
> - mtk_clk_unregister_mux(clk_data->clks[mux->id]);
> - clk_data->clks[mux->id] = ERR_PTR(-ENOENT);
> + mtk_clk_unregister_mux(clk_data->hws[mux->id]->clk);
> + clk_data->hws[mux->id] = ERR_PTR(-ENOENT);
> }
> }
> EXPORT_SYMBOL_GPL(mtk_clk_unregister_muxes);
> diff --git a/drivers/clk/mediatek/clk-mux.h b/drivers/clk/mediatek/clk-mux.h
> index 903a3c937959..6539c58f5d7d 100644
> --- a/drivers/clk/mediatek/clk-mux.h
> +++ b/drivers/clk/mediatek/clk-mux.h
> @@ -11,7 +11,7 @@
> #include <linux/types.h>
>
> struct clk;
> -struct clk_onecell_data;
> +struct clk_hw_onecell_data;
> struct clk_ops;
> struct device_node;
>
> @@ -84,9 +84,9 @@ extern const struct clk_ops mtk_mux_gate_clr_set_upd_ops;
> int mtk_clk_register_muxes(const struct mtk_mux *muxes,
> int num, struct device_node *node,
> spinlock_t *lock,
> - struct clk_onecell_data *clk_data);
> + struct clk_hw_onecell_data *clk_data);
>
> void mtk_clk_unregister_muxes(const struct mtk_mux *muxes, int num,
> - struct clk_onecell_data *clk_data);
> + struct clk_hw_onecell_data *clk_data);
>
> #endif /* __DRV_CLK_MTK_MUX_H */
> diff --git a/drivers/clk/mediatek/clk-pll.c b/drivers/clk/mediatek/clk-pll.c
> index ccaa2085ab4d..89350a1a158c 100644
> --- a/drivers/clk/mediatek/clk-pll.c
> +++ b/drivers/clk/mediatek/clk-pll.c
> @@ -379,7 +379,7 @@ static void mtk_clk_unregister_pll(struct clk *clk)
>
> int mtk_clk_register_plls(struct device_node *node,
> const struct mtk_pll_data *plls, int num_plls,
> - struct clk_onecell_data *clk_data)
> + struct clk_hw_onecell_data *clk_data)
> {
> void __iomem *base;
> int i;
> @@ -394,7 +394,7 @@ int mtk_clk_register_plls(struct device_node *node,
> for (i = 0; i < num_plls; i++) {
> const struct mtk_pll_data *pll = &plls[i];
>
> - if (!IS_ERR_OR_NULL(clk_data->clks[pll->id])) {
> + if (!IS_ERR_OR_NULL(clk_data->hws[pll->id])) {
> pr_warn("%pOF: Trying to register duplicate clock ID: %d\n",
> node, pll->id);
> continue;
> @@ -407,7 +407,7 @@ int mtk_clk_register_plls(struct device_node *node,
> goto err;
> }
>
> - clk_data->clks[pll->id] = clk;
> + clk_data->hws[pll->id] = __clk_get_hw(clk);
> }
>
> return 0;
> @@ -416,8 +416,8 @@ int mtk_clk_register_plls(struct device_node *node,
> while (--i >= 0) {
> const struct mtk_pll_data *pll = &plls[i];
>
> - mtk_clk_unregister_pll(clk_data->clks[pll->id]);
> - clk_data->clks[pll->id] = ERR_PTR(-ENOENT);
> + mtk_clk_unregister_pll(clk_data->hws[pll->id]->clk);
> + clk_data->hws[pll->id] = ERR_PTR(-ENOENT);
> }
>
> iounmap(base);
> @@ -426,17 +426,16 @@ int mtk_clk_register_plls(struct device_node *node,
> }
> EXPORT_SYMBOL_GPL(mtk_clk_register_plls);
>
> -static __iomem void *mtk_clk_pll_get_base(struct clk *clk,
> +static __iomem void *mtk_clk_pll_get_base(struct clk_hw *hw,
> const struct mtk_pll_data *data)
> {
> - struct clk_hw *hw = __clk_get_hw(clk);
> struct mtk_clk_pll *pll = to_mtk_clk_pll(hw);
>
> return pll->base_addr - data->reg;
> }
>
> void mtk_clk_unregister_plls(const struct mtk_pll_data *plls, int num_plls,
> - struct clk_onecell_data *clk_data)
> + struct clk_hw_onecell_data *clk_data)
> {
> __iomem void *base = NULL;
> int i;
> @@ -447,7 +446,7 @@ void mtk_clk_unregister_plls(const struct mtk_pll_data *plls, int num_plls,
> for (i = num_plls; i > 0; i--) {
> const struct mtk_pll_data *pll = &plls[i - 1];
>
> - if (IS_ERR_OR_NULL(clk_data->clks[pll->id]))
> + if (IS_ERR_OR_NULL(clk_data->hws[pll->id]))
> continue;
>
> /*
> @@ -456,10 +455,10 @@ void mtk_clk_unregister_plls(const struct mtk_pll_data *plls, int num_plls,
> * pointer to the I/O region base address. We have to fetch
> * it from one of the registered clks.
> */
> - base = mtk_clk_pll_get_base(clk_data->clks[pll->id], pll);
> + base = mtk_clk_pll_get_base(clk_data->hws[pll->id], pll);
>
> - mtk_clk_unregister_pll(clk_data->clks[pll->id]);
> - clk_data->clks[pll->id] = ERR_PTR(-ENOENT);
> + mtk_clk_unregister_pll(clk_data->hws[pll->id]->clk);
> + clk_data->hws[pll->id] = ERR_PTR(-ENOENT);
> }
>
> iounmap(base);
> diff --git a/drivers/clk/mediatek/clk-pll.h b/drivers/clk/mediatek/clk-pll.h
> index bf06e44caef9..fe3199715688 100644
> --- a/drivers/clk/mediatek/clk-pll.h
> +++ b/drivers/clk/mediatek/clk-pll.h
> @@ -10,7 +10,7 @@
> #include <linux/types.h>
>
> struct clk_ops;
> -struct clk_onecell_data;
> +struct clk_hw_onecell_data;
> struct device_node;
>
> struct mtk_pll_div_table {
> @@ -50,8 +50,8 @@ struct mtk_pll_data {
>
> int mtk_clk_register_plls(struct device_node *node,
> const struct mtk_pll_data *plls, int num_plls,
> - struct clk_onecell_data *clk_data);
> + struct clk_hw_onecell_data *clk_data);
> void mtk_clk_unregister_plls(const struct mtk_pll_data *plls, int num_plls,
> - struct clk_onecell_data *clk_data);
> + struct clk_hw_onecell_data *clk_data);
>
> #endif /* __DRV_CLK_MTK_PLL_H */
> --
> 2.36.0.512.ge40c2bad7a-goog
>
>
More information about the Linux-mediatek
mailing list