From: Greg Kroah-Hartman Date: Mon, 2 Dec 2019 16:26:01 +0000 (+0100) Subject: 4.14-stable patches X-Git-Tag: v5.4.2~51 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a63c8a4f5a3457e5b6f11b0772ca6260646a75f5;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: clk-at91-fix-update-bit-maps-on-cfg_mor-write.patch clk-at91-generated-set-audio_pll_allowed-in-at91_clk_register_generated.patch --- diff --git a/queue-4.14/clk-at91-fix-update-bit-maps-on-cfg_mor-write.patch b/queue-4.14/clk-at91-fix-update-bit-maps-on-cfg_mor-write.patch new file mode 100644 index 00000000000..5e3509b1742 --- /dev/null +++ b/queue-4.14/clk-at91-fix-update-bit-maps-on-cfg_mor-write.patch @@ -0,0 +1,38 @@ +From 263eaf8f172d9f44e15d6aca85fe40ec18d2c477 Mon Sep 17 00:00:00 2001 +From: Eugen Hristev +Date: Mon, 9 Sep 2019 15:30:31 +0000 +Subject: clk: at91: fix update bit maps on CFG_MOR write + +From: Eugen Hristev + +commit 263eaf8f172d9f44e15d6aca85fe40ec18d2c477 upstream. + +The regmap update bits call was not selecting the proper mask, considering +the bits which was updating. +Update the mask from call to also include OSCBYPASS. +Removed MOSCEN which was not updated. + +Fixes: 1bdf02326b71 ("clk: at91: make use of syscon/regmap internally") +Signed-off-by: Eugen Hristev +Link: https://lkml.kernel.org/r/1568042692-11784-1-git-send-email-eugen.hristev@microchip.com +Acked-by: Alexandre Belloni +Reviewed-by: Claudiu Beznea +Signed-off-by: Stephen Boyd +Signed-off-by: Lee Jones +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/clk/at91/clk-main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/clk/at91/clk-main.c ++++ b/drivers/clk/at91/clk-main.c +@@ -162,7 +162,7 @@ at91_clk_register_main_osc(struct regmap + if (bypass) + regmap_update_bits(regmap, + AT91_CKGR_MOR, MOR_KEY_MASK | +- AT91_PMC_MOSCEN, ++ AT91_PMC_OSCBYPASS, + AT91_PMC_OSCBYPASS | AT91_PMC_KEY); + + hw = &osc->hw; diff --git a/queue-4.14/clk-at91-generated-set-audio_pll_allowed-in-at91_clk_register_generated.patch b/queue-4.14/clk-at91-generated-set-audio_pll_allowed-in-at91_clk_register_generated.patch new file mode 100644 index 00000000000..c6353ac8e94 --- /dev/null +++ b/queue-4.14/clk-at91-generated-set-audio_pll_allowed-in-at91_clk_register_generated.patch @@ -0,0 +1,91 @@ +From c1e4580a1d0ff510d56268c1fc7fcfeec366fe70 Mon Sep 17 00:00:00 2001 +From: Alexandre Belloni +Date: Tue, 16 Oct 2018 16:21:43 +0200 +Subject: clk: at91: generated: set audio_pll_allowed in at91_clk_register_generated() + +From: Alexandre Belloni + +commit c1e4580a1d0ff510d56268c1fc7fcfeec366fe70 upstream. + +Set gck->audio_pll_allowed in at91_clk_register_generated. This makes it +easier to do it from code that is not parsing device tree. + +Also, this fixes an issue where the resulting clk_hw can be dereferenced +before being tested for error. + +Fixes: 1a1a36d72e3d ("clk: at91: clk-generated: make gclk determine audio_pll rate") +Signed-off-by: Alexandre Belloni +Signed-off-by: Stephen Boyd +Signed-off-by: Lee Jones +Signed-off-by: Greg Kroah-Hartman +--- + drivers/clk/at91/clk-generated.c | 28 ++++++++++------------------ + 1 file changed, 10 insertions(+), 18 deletions(-) + +--- a/drivers/clk/at91/clk-generated.c ++++ b/drivers/clk/at91/clk-generated.c +@@ -284,7 +284,7 @@ static void clk_generated_startup(struct + static struct clk_hw * __init + at91_clk_register_generated(struct regmap *regmap, spinlock_t *lock, + const char *name, const char **parent_names, +- u8 num_parents, u8 id, ++ u8 num_parents, u8 id, bool pll_audio, + const struct clk_range *range) + { + struct clk_generated *gck; +@@ -308,6 +308,7 @@ at91_clk_register_generated(struct regma + gck->regmap = regmap; + gck->lock = lock; + gck->range = *range; ++ gck->audio_pll_allowed = pll_audio; + + clk_generated_startup(gck); + hw = &gck->hw; +@@ -333,7 +334,6 @@ static void __init of_sama5d2_clk_genera + struct device_node *gcknp; + struct clk_range range = CLK_RANGE(0, 0); + struct regmap *regmap; +- struct clk_generated *gck; + + num_parents = of_clk_get_parent_count(np); + if (num_parents == 0 || num_parents > GENERATED_SOURCE_MAX) +@@ -350,6 +350,8 @@ static void __init of_sama5d2_clk_genera + return; + + for_each_child_of_node(np, gcknp) { ++ bool pll_audio = false; ++ + if (of_property_read_u32(gcknp, "reg", &id)) + continue; + +@@ -362,24 +364,14 @@ static void __init of_sama5d2_clk_genera + of_at91_get_clk_range(gcknp, "atmel,clk-output-range", + &range); + ++ if (of_device_is_compatible(np, "atmel,sama5d2-clk-generated") && ++ (id == GCK_ID_I2S0 || id == GCK_ID_I2S1 || ++ id == GCK_ID_CLASSD)) ++ pll_audio = true; ++ + hw = at91_clk_register_generated(regmap, &pmc_pcr_lock, name, + parent_names, num_parents, +- id, &range); +- +- gck = to_clk_generated(hw); +- +- if (of_device_is_compatible(np, +- "atmel,sama5d2-clk-generated")) { +- if (gck->id == GCK_ID_SSC0 || gck->id == GCK_ID_SSC1 || +- gck->id == GCK_ID_I2S0 || gck->id == GCK_ID_I2S1 || +- gck->id == GCK_ID_CLASSD) +- gck->audio_pll_allowed = true; +- else +- gck->audio_pll_allowed = false; +- } else { +- gck->audio_pll_allowed = false; +- } +- ++ id, pll_audio, &range); + if (IS_ERR(hw)) + continue; + diff --git a/queue-4.14/series b/queue-4.14/series index 39816a40fa9..b676fb9638e 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -154,3 +154,5 @@ f2fs-fix-to-data-block-override-node-segment-by-mist.patch powerpc-pseries-dlpar-fix-a-missing-check-in-dlpar_p.patch mtd-remove-a-debug-trace-in-mtdpart.c.patch mm-gup-add-missing-refcount-overflow-checks-on-s390.patch +clk-at91-fix-update-bit-maps-on-cfg_mor-write.patch +clk-at91-generated-set-audio_pll_allowed-in-at91_clk_register_generated.patch