2
0

223-v6.3-clk-mediatek-clk-mux-Propagate-struct-device-for-mtk.patch 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. From 5d911479e4c732729bfa798e4a9e3e5aec3e30a7 Mon Sep 17 00:00:00 2001
  2. From: AngeloGioacchino Del Regno <[email protected]>
  3. Date: Fri, 20 Jan 2023 10:20:36 +0100
  4. Subject: [PATCH 04/15] clk: mediatek: clk-mux: Propagate struct device for
  5. mtk-mux
  6. Like done for other clocks, propagate struct device for mtk mux clocks
  7. registered through clk-mux helpers to enable runtime pm support.
  8. Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
  9. Tested-by: Miles Chen <[email protected]>
  10. Link: https://lore.kernel.org/r/[email protected]
  11. Tested-by: Mingming Su <[email protected]>
  12. Signed-off-by: Stephen Boyd <[email protected]>
  13. [[email protected]: removed parts not relevant for OpenWrt]
  14. ---
  15. drivers/clk/mediatek/clk-mt7986-infracfg.c | 3 ++-
  16. drivers/clk/mediatek/clk-mt7986-topckgen.c | 3 ++-
  17. drivers/clk/mediatek/clk-mux.c | 14 ++++++++------
  18. drivers/clk/mediatek/clk-mux.h | 3 ++-
  19. 4 files changed, 14 insertions(+), 9 deletions(-)
  20. --- a/drivers/clk/mediatek/clk-mt7986-infracfg.c
  21. +++ b/drivers/clk/mediatek/clk-mt7986-infracfg.c
  22. @@ -178,7 +178,8 @@ static int clk_mt7986_infracfg_probe(str
  23. return -ENOMEM;
  24. mtk_clk_register_factors(infra_divs, ARRAY_SIZE(infra_divs), clk_data);
  25. - mtk_clk_register_muxes(infra_muxes, ARRAY_SIZE(infra_muxes), node,
  26. + mtk_clk_register_muxes(&pdev->dev, infra_muxes,
  27. + ARRAY_SIZE(infra_muxes), node,
  28. &mt7986_clk_lock, clk_data);
  29. mtk_clk_register_gates(&pdev->dev, node, infra_clks,
  30. ARRAY_SIZE(infra_clks), clk_data);
  31. --- a/drivers/clk/mediatek/clk-mt7986-topckgen.c
  32. +++ b/drivers/clk/mediatek/clk-mt7986-topckgen.c
  33. @@ -303,7 +303,8 @@ static int clk_mt7986_topckgen_probe(str
  34. mtk_clk_register_fixed_clks(top_fixed_clks, ARRAY_SIZE(top_fixed_clks),
  35. clk_data);
  36. mtk_clk_register_factors(top_divs, ARRAY_SIZE(top_divs), clk_data);
  37. - mtk_clk_register_muxes(top_muxes, ARRAY_SIZE(top_muxes), node,
  38. + mtk_clk_register_muxes(&pdev->dev, top_muxes,
  39. + ARRAY_SIZE(top_muxes), node,
  40. &mt7986_clk_lock, clk_data);
  41. clk_prepare_enable(clk_data->hws[CLK_TOP_SYSAXI_SEL]->clk);
  42. --- a/drivers/clk/mediatek/clk-mux.c
  43. +++ b/drivers/clk/mediatek/clk-mux.c
  44. @@ -154,9 +154,10 @@ const struct clk_ops mtk_mux_gate_clr_se
  45. };
  46. EXPORT_SYMBOL_GPL(mtk_mux_gate_clr_set_upd_ops);
  47. -static struct clk_hw *mtk_clk_register_mux(const struct mtk_mux *mux,
  48. - struct regmap *regmap,
  49. - spinlock_t *lock)
  50. +static struct clk_hw *mtk_clk_register_mux(struct device *dev,
  51. + const struct mtk_mux *mux,
  52. + struct regmap *regmap,
  53. + spinlock_t *lock)
  54. {
  55. struct mtk_clk_mux *clk_mux;
  56. struct clk_init_data init = {};
  57. @@ -177,7 +178,7 @@ static struct clk_hw *mtk_clk_register_m
  58. clk_mux->lock = lock;
  59. clk_mux->hw.init = &init;
  60. - ret = clk_hw_register(NULL, &clk_mux->hw);
  61. + ret = clk_hw_register(dev, &clk_mux->hw);
  62. if (ret) {
  63. kfree(clk_mux);
  64. return ERR_PTR(ret);
  65. @@ -198,7 +199,8 @@ static void mtk_clk_unregister_mux(struc
  66. kfree(mux);
  67. }
  68. -int mtk_clk_register_muxes(const struct mtk_mux *muxes,
  69. +int mtk_clk_register_muxes(struct device *dev,
  70. + const struct mtk_mux *muxes,
  71. int num, struct device_node *node,
  72. spinlock_t *lock,
  73. struct clk_hw_onecell_data *clk_data)
  74. @@ -222,7 +224,7 @@ int mtk_clk_register_muxes(const struct
  75. continue;
  76. }
  77. - hw = mtk_clk_register_mux(mux, regmap, lock);
  78. + hw = mtk_clk_register_mux(dev, mux, regmap, lock);
  79. if (IS_ERR(hw)) {
  80. pr_err("Failed to register clk %s: %pe\n", mux->name,
  81. --- a/drivers/clk/mediatek/clk-mux.h
  82. +++ b/drivers/clk/mediatek/clk-mux.h
  83. @@ -83,7 +83,8 @@ extern const struct clk_ops mtk_mux_gate
  84. 0, _upd_ofs, _upd, CLK_SET_RATE_PARENT, \
  85. mtk_mux_clr_set_upd_ops)
  86. -int mtk_clk_register_muxes(const struct mtk_mux *muxes,
  87. +int mtk_clk_register_muxes(struct device *dev,
  88. + const struct mtk_mux *muxes,
  89. int num, struct device_node *node,
  90. spinlock_t *lock,
  91. struct clk_hw_onecell_data *clk_data);