Message ID | 20170723102749.17323-6-icenowy@aosc.io (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Stephen Boyd |
Headers | show |
On 07/23, Icenowy Zheng wrote: > From: Chen-Yu Tsai <wens@csie.org> > > This patch utilizes the new PLL clk notifier to gate then ungate the > PLL CPU clock after rate changes. This should prevent any system hangs > resulting from cpufreq changes to the clk. > > Reported-by: Ondrej Jirman <megous@megous.com> > Signed-off-by: Chen-Yu Tsai <wens@csie.org> > Tested-by: Icenowy Zheng <icenowy@aosc.io> > --- Acked-by: Stephen Boyd <sboyd@codeaurora.org>
On Sun, Jul 23, 2017 at 6:27 PM, Icenowy Zheng <icenowy@aosc.io> wrote: > From: Chen-Yu Tsai <wens@csie.org> > > This patch utilizes the new PLL clk notifier to gate then ungate the > PLL CPU clock after rate changes. This should prevent any system hangs > resulting from cpufreq changes to the clk. > > Reported-by: Ondrej Jirman <megous@megous.com> > Signed-off-by: Chen-Yu Tsai <wens@csie.org> > Tested-by: Icenowy Zheng <icenowy@aosc.io> This is missing Fixes: 0577e4853bfb ("clk: sunxi-ng: Add H3 clocks") ChenYu -- To unsubscribe from this list: send the line "unsubscribe linux-clk" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Jul 26, 2017 at 3:14 PM, Chen-Yu Tsai <wens@csie.org> wrote: > On Sun, Jul 23, 2017 at 6:27 PM, Icenowy Zheng <icenowy@aosc.io> wrote: >> From: Chen-Yu Tsai <wens@csie.org> >> >> This patch utilizes the new PLL clk notifier to gate then ungate the >> PLL CPU clock after rate changes. This should prevent any system hangs >> resulting from cpufreq changes to the clk. >> >> Reported-by: Ondrej Jirman <megous@megous.com> >> Signed-off-by: Chen-Yu Tsai <wens@csie.org> >> Tested-by: Icenowy Zheng <icenowy@aosc.io> > > This is missing > > Fixes: 0577e4853bfb ("clk: sunxi-ng: Add H3 clocks") Applied for 4.14 with the Fixes tag and Stephen's ack. -- To unsubscribe from this list: send the line "unsubscribe linux-clk" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-h3.c b/drivers/clk/sunxi-ng/ccu-sun8i-h3.c index 62e4f0d2b2fc..406d0aac9fd6 100644 --- a/drivers/clk/sunxi-ng/ccu-sun8i-h3.c +++ b/drivers/clk/sunxi-ng/ccu-sun8i-h3.c @@ -1103,6 +1103,13 @@ static const struct sunxi_ccu_desc sun50i_h5_ccu_desc = { .num_resets = ARRAY_SIZE(sun50i_h5_ccu_resets), }; +static struct ccu_pll_nb sun8i_h3_pll_cpu_nb = { + .common = &pll_cpux_clk.common, + /* copy from pll_cpux_clk */ + .enable = BIT(31), + .lock = BIT(28), +}; + static struct ccu_mux_nb sun8i_h3_cpu_nb = { .common = &cpux_clk.common, .cm = &cpux_clk.mux, @@ -1130,6 +1137,10 @@ static void __init sunxi_h3_h5_ccu_init(struct device_node *node, sunxi_ccu_probe(node, reg, desc); + /* Gate then ungate PLL CPU after any rate changes */ + ccu_pll_notifier_register(&sun8i_h3_pll_cpu_nb); + + /* Reparent CPU during PLL CPU rate changes */ ccu_mux_notifier_register(pll_cpux_clk.common.hw.clk, &sun8i_h3_cpu_nb); }