diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-11-10 14:25:55 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-11-10 14:25:55 -0500 |
commit | a1aa42f1d8c00a0767afee28d17caafd2a4dd8ff (patch) | |
tree | e366cf0393cc6b9017d4a1f171ba9d7bbbbfab7e | |
parent | ab6e1f378f546b0caa616ac0fcc730725cc2d222 (diff) | |
parent | 1aefa98b010e9cc7a07046cbcb1237ddad85b708 (diff) |
Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
Pull clk fixes from Stephen Boyd:
"A small set of fixes for clk drivers.
One to fix a DT refcount imbalance, two to mark some Amlogic clks as
critical, and one final one that fixes a clk name for the Qualcomm
driver merged this cycle"
* tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
clk: qcom: gcc: Fix board clock node name
clk: meson: axg: mark fdiv2 and fdiv3 as critical
clk: meson-gxbb: set fclk_div3 as CLK_IS_CRITICAL
clk: fixed-factor: fix of_node_get-put imbalance
-rw-r--r-- | drivers/clk/clk-fixed-factor.c | 1 | ||||
-rw-r--r-- | drivers/clk/meson/axg.c | 13 | ||||
-rw-r--r-- | drivers/clk/meson/gxbb.c | 12 | ||||
-rw-r--r-- | drivers/clk/qcom/gcc-qcs404.c | 2 |
4 files changed, 27 insertions, 1 deletions
diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/clk-fixed-factor.c index ef0ca9414f37..ff83e899df71 100644 --- a/drivers/clk/clk-fixed-factor.c +++ b/drivers/clk/clk-fixed-factor.c | |||
@@ -210,6 +210,7 @@ static int of_fixed_factor_clk_remove(struct platform_device *pdev) | |||
210 | { | 210 | { |
211 | struct clk *clk = platform_get_drvdata(pdev); | 211 | struct clk *clk = platform_get_drvdata(pdev); |
212 | 212 | ||
213 | of_clk_del_provider(pdev->dev.of_node); | ||
213 | clk_unregister_fixed_factor(clk); | 214 | clk_unregister_fixed_factor(clk); |
214 | 215 | ||
215 | return 0; | 216 | return 0; |
diff --git a/drivers/clk/meson/axg.c b/drivers/clk/meson/axg.c index c981159b02c0..792735d7e46e 100644 --- a/drivers/clk/meson/axg.c +++ b/drivers/clk/meson/axg.c | |||
@@ -325,6 +325,7 @@ static struct clk_regmap axg_fclk_div2 = { | |||
325 | .ops = &clk_regmap_gate_ops, | 325 | .ops = &clk_regmap_gate_ops, |
326 | .parent_names = (const char *[]){ "fclk_div2_div" }, | 326 | .parent_names = (const char *[]){ "fclk_div2_div" }, |
327 | .num_parents = 1, | 327 | .num_parents = 1, |
328 | .flags = CLK_IS_CRITICAL, | ||
328 | }, | 329 | }, |
329 | }; | 330 | }; |
330 | 331 | ||
@@ -349,6 +350,18 @@ static struct clk_regmap axg_fclk_div3 = { | |||
349 | .ops = &clk_regmap_gate_ops, | 350 | .ops = &clk_regmap_gate_ops, |
350 | .parent_names = (const char *[]){ "fclk_div3_div" }, | 351 | .parent_names = (const char *[]){ "fclk_div3_div" }, |
351 | .num_parents = 1, | 352 | .num_parents = 1, |
353 | /* | ||
354 | * FIXME: | ||
355 | * This clock, as fdiv2, is used by the SCPI FW and is required | ||
356 | * by the platform to operate correctly. | ||
357 | * Until the following condition are met, we need this clock to | ||
358 | * be marked as critical: | ||
359 | * a) The SCPI generic driver claims and enable all the clocks | ||
360 | * it needs | ||
361 | * b) CCF has a clock hand-off mechanism to make the sure the | ||
362 | * clock stays on until the proper driver comes along | ||
363 | */ | ||
364 | .flags = CLK_IS_CRITICAL, | ||
352 | }, | 365 | }, |
353 | }; | 366 | }; |
354 | 367 | ||
diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c index 9309cfaaa464..4ada9668fd49 100644 --- a/drivers/clk/meson/gxbb.c +++ b/drivers/clk/meson/gxbb.c | |||
@@ -506,6 +506,18 @@ static struct clk_regmap gxbb_fclk_div3 = { | |||
506 | .ops = &clk_regmap_gate_ops, | 506 | .ops = &clk_regmap_gate_ops, |
507 | .parent_names = (const char *[]){ "fclk_div3_div" }, | 507 | .parent_names = (const char *[]){ "fclk_div3_div" }, |
508 | .num_parents = 1, | 508 | .num_parents = 1, |
509 | /* | ||
510 | * FIXME: | ||
511 | * This clock, as fdiv2, is used by the SCPI FW and is required | ||
512 | * by the platform to operate correctly. | ||
513 | * Until the following condition are met, we need this clock to | ||
514 | * be marked as critical: | ||
515 | * a) The SCPI generic driver claims and enable all the clocks | ||
516 | * it needs | ||
517 | * b) CCF has a clock hand-off mechanism to make the sure the | ||
518 | * clock stays on until the proper driver comes along | ||
519 | */ | ||
520 | .flags = CLK_IS_CRITICAL, | ||
509 | }, | 521 | }, |
510 | }; | 522 | }; |
511 | 523 | ||
diff --git a/drivers/clk/qcom/gcc-qcs404.c b/drivers/clk/qcom/gcc-qcs404.c index e4ca6a45f313..ef1b267cb058 100644 --- a/drivers/clk/qcom/gcc-qcs404.c +++ b/drivers/clk/qcom/gcc-qcs404.c | |||
@@ -265,7 +265,7 @@ static struct clk_fixed_factor cxo = { | |||
265 | .div = 1, | 265 | .div = 1, |
266 | .hw.init = &(struct clk_init_data){ | 266 | .hw.init = &(struct clk_init_data){ |
267 | .name = "cxo", | 267 | .name = "cxo", |
268 | .parent_names = (const char *[]){ "xo_board" }, | 268 | .parent_names = (const char *[]){ "xo-board" }, |
269 | .num_parents = 1, | 269 | .num_parents = 1, |
270 | .ops = &clk_fixed_factor_ops, | 270 | .ops = &clk_fixed_factor_ops, |
271 | }, | 271 | }, |