123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- From 5d911479e4c732729bfa798e4a9e3e5aec3e30a7 Mon Sep 17 00:00:00 2001
- From: AngeloGioacchino Del Regno <[email protected]>
- Date: Fri, 20 Jan 2023 10:20:36 +0100
- Subject: [PATCH 04/15] clk: mediatek: clk-mux: Propagate struct device for
- mtk-mux
- Like done for other clocks, propagate struct device for mtk mux clocks
- registered through clk-mux helpers to enable runtime pm support.
- Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
- Tested-by: Miles Chen <[email protected]>
- Link: https://lore.kernel.org/r/[email protected]
- Tested-by: Mingming Su <[email protected]>
- Signed-off-by: Stephen Boyd <[email protected]>
- [[email protected]: removed parts not relevant for OpenWrt]
- ---
- drivers/clk/mediatek/clk-mt7986-infracfg.c | 3 ++-
- drivers/clk/mediatek/clk-mt7986-topckgen.c | 3 ++-
- drivers/clk/mediatek/clk-mux.c | 14 ++++++++------
- drivers/clk/mediatek/clk-mux.h | 3 ++-
- 4 files changed, 14 insertions(+), 9 deletions(-)
- --- a/drivers/clk/mediatek/clk-mt7986-infracfg.c
- +++ b/drivers/clk/mediatek/clk-mt7986-infracfg.c
- @@ -178,7 +178,8 @@ static int clk_mt7986_infracfg_probe(str
- return -ENOMEM;
-
- mtk_clk_register_factors(infra_divs, ARRAY_SIZE(infra_divs), clk_data);
- - mtk_clk_register_muxes(infra_muxes, ARRAY_SIZE(infra_muxes), node,
- + mtk_clk_register_muxes(&pdev->dev, infra_muxes,
- + ARRAY_SIZE(infra_muxes), node,
- &mt7986_clk_lock, clk_data);
- mtk_clk_register_gates(&pdev->dev, node, infra_clks,
- ARRAY_SIZE(infra_clks), clk_data);
- --- a/drivers/clk/mediatek/clk-mt7986-topckgen.c
- +++ b/drivers/clk/mediatek/clk-mt7986-topckgen.c
- @@ -303,7 +303,8 @@ static int clk_mt7986_topckgen_probe(str
- mtk_clk_register_fixed_clks(top_fixed_clks, ARRAY_SIZE(top_fixed_clks),
- clk_data);
- mtk_clk_register_factors(top_divs, ARRAY_SIZE(top_divs), clk_data);
- - mtk_clk_register_muxes(top_muxes, ARRAY_SIZE(top_muxes), node,
- + mtk_clk_register_muxes(&pdev->dev, top_muxes,
- + ARRAY_SIZE(top_muxes), node,
- &mt7986_clk_lock, clk_data);
-
- clk_prepare_enable(clk_data->hws[CLK_TOP_SYSAXI_SEL]->clk);
- --- a/drivers/clk/mediatek/clk-mux.c
- +++ b/drivers/clk/mediatek/clk-mux.c
- @@ -154,9 +154,10 @@ const struct clk_ops mtk_mux_gate_clr_se
- };
- EXPORT_SYMBOL_GPL(mtk_mux_gate_clr_set_upd_ops);
-
- -static struct clk_hw *mtk_clk_register_mux(const struct mtk_mux *mux,
- - struct regmap *regmap,
- - spinlock_t *lock)
- +static struct clk_hw *mtk_clk_register_mux(struct device *dev,
- + const struct mtk_mux *mux,
- + struct regmap *regmap,
- + spinlock_t *lock)
- {
- struct mtk_clk_mux *clk_mux;
- struct clk_init_data init = {};
- @@ -177,7 +178,7 @@ static struct clk_hw *mtk_clk_register_m
- clk_mux->lock = lock;
- clk_mux->hw.init = &init;
-
- - ret = clk_hw_register(NULL, &clk_mux->hw);
- + ret = clk_hw_register(dev, &clk_mux->hw);
- if (ret) {
- kfree(clk_mux);
- return ERR_PTR(ret);
- @@ -198,7 +199,8 @@ static void mtk_clk_unregister_mux(struc
- kfree(mux);
- }
-
- -int mtk_clk_register_muxes(const struct mtk_mux *muxes,
- +int mtk_clk_register_muxes(struct device *dev,
- + const struct mtk_mux *muxes,
- int num, struct device_node *node,
- spinlock_t *lock,
- struct clk_hw_onecell_data *clk_data)
- @@ -222,7 +224,7 @@ int mtk_clk_register_muxes(const struct
- continue;
- }
-
- - hw = mtk_clk_register_mux(mux, regmap, lock);
- + hw = mtk_clk_register_mux(dev, mux, regmap, lock);
-
- if (IS_ERR(hw)) {
- pr_err("Failed to register clk %s: %pe\n", mux->name,
- --- a/drivers/clk/mediatek/clk-mux.h
- +++ b/drivers/clk/mediatek/clk-mux.h
- @@ -83,7 +83,8 @@ extern const struct clk_ops mtk_mux_gate
- 0, _upd_ofs, _upd, CLK_SET_RATE_PARENT, \
- mtk_mux_clr_set_upd_ops)
-
- -int mtk_clk_register_muxes(const struct mtk_mux *muxes,
- +int mtk_clk_register_muxes(struct device *dev,
- + const struct mtk_mux *muxes,
- int num, struct device_node *node,
- spinlock_t *lock,
- struct clk_hw_onecell_data *clk_data);
|