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 <angelogioacchino.delregno@collabora.com> Tested-by: Miles Chen <miles.chen@mediatek.com> Link: https://lore.kernel.org/r/20230120092053.182923-7-angelogioacchino.delregno@collabora.com Tested-by: Mingming Su <mingming.su@mediatek.com> Signed-off-by: Stephen Boyd <sboyd@kernel.org>
This commit is contained in:
Родитель
01a6c1ab57
Коммит
d3d6bd5e25
|
@ -826,7 +826,8 @@ static int clk_mt6765_top_probe(struct platform_device *pdev)
|
|||
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,
|
||||
&mt6765_clk_lock, clk_data);
|
||||
mtk_clk_register_gates(&pdev->dev, node, top_clks,
|
||||
ARRAY_SIZE(top_clks), clk_data);
|
||||
|
|
|
@ -1244,8 +1244,9 @@ static int clk_mt6779_top_probe(struct platform_device *pdev)
|
|||
|
||||
mtk_clk_register_factors(top_divs, ARRAY_SIZE(top_divs), clk_data);
|
||||
|
||||
mtk_clk_register_muxes(top_muxes, ARRAY_SIZE(top_muxes),
|
||||
node, &mt6779_clk_lock, clk_data);
|
||||
mtk_clk_register_muxes(&pdev->dev, top_muxes,
|
||||
ARRAY_SIZE(top_muxes), node,
|
||||
&mt6779_clk_lock, clk_data);
|
||||
|
||||
mtk_clk_register_composites(&pdev->dev, top_aud_muxes,
|
||||
ARRAY_SIZE(top_aud_muxes), base,
|
||||
|
|
|
@ -552,7 +552,8 @@ static int clk_mt6795_topckgen_probe(struct platform_device *pdev)
|
|||
if (ret)
|
||||
goto unregister_fixed_clks;
|
||||
|
||||
ret = mtk_clk_register_muxes(top_muxes, ARRAY_SIZE(top_muxes), node,
|
||||
ret = mtk_clk_register_muxes(&pdev->dev, top_muxes,
|
||||
ARRAY_SIZE(top_muxes), node,
|
||||
&mt6795_top_clk_lock, clk_data);
|
||||
if (ret)
|
||||
goto unregister_factors;
|
||||
|
|
|
@ -190,7 +190,8 @@ static int clk_mt7986_infracfg_probe(struct platform_device *pdev)
|
|||
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);
|
||||
|
|
|
@ -303,7 +303,8 @@ static int clk_mt7986_topckgen_probe(struct platform_device *pdev)
|
|||
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);
|
||||
|
|
|
@ -1166,8 +1166,9 @@ static int clk_mt8183_top_probe(struct platform_device *pdev)
|
|||
|
||||
mtk_clk_register_factors(top_divs, ARRAY_SIZE(top_divs), top_clk_data);
|
||||
|
||||
mtk_clk_register_muxes(top_muxes, ARRAY_SIZE(top_muxes),
|
||||
node, &mt8183_clk_lock, top_clk_data);
|
||||
mtk_clk_register_muxes(&pdev->dev, top_muxes,
|
||||
ARRAY_SIZE(top_muxes), node,
|
||||
&mt8183_clk_lock, top_clk_data);
|
||||
|
||||
mtk_clk_register_composites(&pdev->dev, top_aud_muxes,
|
||||
ARRAY_SIZE(top_aud_muxes), base,
|
||||
|
|
|
@ -737,7 +737,8 @@ static int clk_mt8186_topck_probe(struct platform_device *pdev)
|
|||
if (r)
|
||||
goto unregister_fixed_clks;
|
||||
|
||||
r = mtk_clk_register_muxes(top_mtk_muxes, ARRAY_SIZE(top_mtk_muxes), node,
|
||||
r = mtk_clk_register_muxes(&pdev->dev, top_mtk_muxes,
|
||||
ARRAY_SIZE(top_mtk_muxes), node,
|
||||
&mt8186_clk_lock, clk_data);
|
||||
if (r)
|
||||
goto unregister_factors;
|
||||
|
|
|
@ -1112,7 +1112,8 @@ static int clk_mt8192_top_probe(struct platform_device *pdev)
|
|||
if (r)
|
||||
goto unregister_early_factors;
|
||||
|
||||
r = mtk_clk_register_muxes(top_mtk_muxes, ARRAY_SIZE(top_mtk_muxes), node,
|
||||
r = mtk_clk_register_muxes(&pdev->dev, top_mtk_muxes,
|
||||
ARRAY_SIZE(top_mtk_muxes), node,
|
||||
&mt8192_clk_lock, top_clk_data);
|
||||
if (r)
|
||||
goto unregister_factors;
|
||||
|
|
|
@ -1262,7 +1262,8 @@ static int clk_mt8195_topck_probe(struct platform_device *pdev)
|
|||
if (r)
|
||||
goto unregister_fixed_clks;
|
||||
|
||||
r = mtk_clk_register_muxes(top_mtk_muxes, ARRAY_SIZE(top_mtk_muxes), node,
|
||||
r = mtk_clk_register_muxes(&pdev->dev, top_mtk_muxes,
|
||||
ARRAY_SIZE(top_mtk_muxes), node,
|
||||
&mt8195_clk_lock, top_clk_data);
|
||||
if (r)
|
||||
goto unregister_factors;
|
||||
|
|
|
@ -947,7 +947,8 @@ static int clk_mt8365_top_probe(struct platform_device *pdev)
|
|||
if (ret)
|
||||
goto unregister_fixed_clks;
|
||||
|
||||
ret = mtk_clk_register_muxes(top_muxes, ARRAY_SIZE(top_muxes), node,
|
||||
ret = mtk_clk_register_muxes(&pdev->dev, top_muxes,
|
||||
ARRAY_SIZE(top_muxes), node,
|
||||
&mt8365_clk_lock, clk_data);
|
||||
if (ret)
|
||||
goto unregister_factors;
|
||||
|
|
|
@ -154,9 +154,10 @@ const struct clk_ops mtk_mux_gate_clr_set_upd_ops = {
|
|||
};
|
||||
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_mux(const struct mtk_mux *mux,
|
|||
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(struct clk_hw *hw)
|
|||
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 mtk_mux *muxes,
|
|||
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,
|
||||
|
|
|
@ -83,7 +83,8 @@ extern const struct clk_ops mtk_mux_gate_clr_set_upd_ops;
|
|||
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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче