From: Gregory CLEMENT <gregory.clement@bootlin.com> To: "Rafael J. Wysocki" <rjw@rjwysocki.net>, Viresh Kumar <viresh.kumar@linaro.org>, linux-pm@vger.kernel.org Cc: "Christian Neubert" <christian.neubert.86@gmail.com>, "Ilias Apalodimas" <ilias.apalodimas@linaro.org>, "Vincent Guittot" <vincent.guittot@linaro.org>, "Jason Cooper" <jason@lakedaemon.net>, "Andrew Lunn" <andrew@lunn.ch>, "Sebastian Hesselbarth" <sebastian.hesselbarth@gmail.com>, "Gregory CLEMENT" <gregory.clement@bootlin.com>, "Thomas Petazzoni" <thomas.petazzoni@bootlin.com>, linux-arm-kernel@lists.infradead.org, "Antoine Tenart" <antoine.tenart@bootlin.com>, "Miquèl Raynal" <miquel.raynal@bootlin.com>, "Maxime Chevallier" <maxime.chevallier@bootlin.com>, stable@vger.kernel.org Subject: [PATCH 1/2] cpufreq: armada-37xx: fix clock parenting Date: Fri, 8 Mar 2019 17:47:09 +0100 [thread overview] Message-ID: <20190308164710.10597-2-gregory.clement@bootlin.com> (raw) In-Reply-To: <20190308164710.10597-1-gregory.clement@bootlin.com> From: Christian Neubert <christian.neubert.86@gmail.com> The clock parenting was not setup properly when DVFS was enabled. It was expected that the same clock source was used with and without DVFS which was not the case. This patch fixes this issue, allowing to make the cpufreq support work when the CPU clock source are not the default ones. Fixes: 92ce45fb875d ("cpufreq: Add DVFS support for Armada 37xx") Cc: <stable@vger.kernel.org> [gregory: extract from a larger patch, modify comments and commit log] Signed-off-by: Christian Neubert <christian.neubert.86@gmail.com> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com> --- drivers/cpufreq/armada-37xx-cpufreq.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/drivers/cpufreq/armada-37xx-cpufreq.c b/drivers/cpufreq/armada-37xx-cpufreq.c index 75491fc841a6..ad4463e4266e 100644 --- a/drivers/cpufreq/armada-37xx-cpufreq.c +++ b/drivers/cpufreq/armada-37xx-cpufreq.c @@ -162,11 +162,25 @@ static void __init armada37xx_cpufreq_dvfs_setup(struct regmap *base, } /* - * Set cpu clock source, for all the level we keep the same - * clock source that the one already configured. For this one - * we need to use the clock framework + * Set CPU clock source, for all the level we keep the same + * clock source that the one already configured with DVS + * disabled. For this one we need to use the clock framework */ parent = clk_get_parent(clk); + + /* + * Unset parent clock to force the clock framework setting again + * the clock parent + */ + clk_set_parent(clk, NULL); + + /* + * For the Armada 37xx CPU clocks, setting the parent will + * actually configure the parent when DVFS is enabled. At + * hardware level it will be a different register from the one + * read when doing clk_get_parent that will be set with + * clk_set_parent. + */ clk_set_parent(clk, parent); } -- 2.20.1
WARNING: multiple messages have this Message-ID (diff)
From: Gregory CLEMENT <gregory.clement@bootlin.com> To: "Rafael J. Wysocki" <rjw@rjwysocki.net>, Viresh Kumar <viresh.kumar@linaro.org>, linux-pm@vger.kernel.org Cc: "Andrew Lunn" <andrew@lunn.ch>, "Vincent Guittot" <vincent.guittot@linaro.org>, "Jason Cooper" <jason@lakedaemon.net>, "Christian Neubert" <christian.neubert.86@gmail.com>, "Antoine Tenart" <antoine.tenart@bootlin.com>, "Gregory CLEMENT" <gregory.clement@bootlin.com>, "Ilias Apalodimas" <ilias.apalodimas@linaro.org>, stable@vger.kernel.org, "Maxime Chevallier" <maxime.chevallier@bootlin.com>, "Thomas Petazzoni" <thomas.petazzoni@bootlin.com>, "Miquèl Raynal" <miquel.raynal@bootlin.com>, linux-arm-kernel@lists.infradead.org, "Sebastian Hesselbarth" <sebastian.hesselbarth@gmail.com> Subject: [PATCH 1/2] cpufreq: armada-37xx: fix clock parenting Date: Fri, 8 Mar 2019 17:47:09 +0100 [thread overview] Message-ID: <20190308164710.10597-2-gregory.clement@bootlin.com> (raw) In-Reply-To: <20190308164710.10597-1-gregory.clement@bootlin.com> From: Christian Neubert <christian.neubert.86@gmail.com> The clock parenting was not setup properly when DVFS was enabled. It was expected that the same clock source was used with and without DVFS which was not the case. This patch fixes this issue, allowing to make the cpufreq support work when the CPU clock source are not the default ones. Fixes: 92ce45fb875d ("cpufreq: Add DVFS support for Armada 37xx") Cc: <stable@vger.kernel.org> [gregory: extract from a larger patch, modify comments and commit log] Signed-off-by: Christian Neubert <christian.neubert.86@gmail.com> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com> --- drivers/cpufreq/armada-37xx-cpufreq.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/drivers/cpufreq/armada-37xx-cpufreq.c b/drivers/cpufreq/armada-37xx-cpufreq.c index 75491fc841a6..ad4463e4266e 100644 --- a/drivers/cpufreq/armada-37xx-cpufreq.c +++ b/drivers/cpufreq/armada-37xx-cpufreq.c @@ -162,11 +162,25 @@ static void __init armada37xx_cpufreq_dvfs_setup(struct regmap *base, } /* - * Set cpu clock source, for all the level we keep the same - * clock source that the one already configured. For this one - * we need to use the clock framework + * Set CPU clock source, for all the level we keep the same + * clock source that the one already configured with DVS + * disabled. For this one we need to use the clock framework */ parent = clk_get_parent(clk); + + /* + * Unset parent clock to force the clock framework setting again + * the clock parent + */ + clk_set_parent(clk, NULL); + + /* + * For the Armada 37xx CPU clocks, setting the parent will + * actually configure the parent when DVFS is enabled. At + * hardware level it will be a different register from the one + * read when doing clk_get_parent that will be set with + * clk_set_parent. + */ clk_set_parent(clk, parent); } -- 2.20.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-03-08 16:47 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-03-08 16:47 [PATCH 0/2] Fix various issue on CPU freq for Armada 37xx Gregory CLEMENT 2019-03-08 16:47 ` Gregory CLEMENT 2019-03-08 16:47 ` Gregory CLEMENT [this message] 2019-03-08 16:47 ` [PATCH 1/2] cpufreq: armada-37xx: fix clock parenting Gregory CLEMENT 2019-03-11 5:31 ` Viresh Kumar 2019-03-11 5:31 ` Viresh Kumar 2019-03-13 16:39 ` Gregory CLEMENT 2019-03-13 16:39 ` Gregory CLEMENT 2019-03-14 12:13 ` Ilias Apalodimas 2019-03-14 12:13 ` Ilias Apalodimas 2019-03-08 16:47 ` [PATCH 2/2] cpufreq: armada-37xx: fix frequency calculation for opp Gregory CLEMENT 2019-03-08 16:47 ` Gregory CLEMENT 2019-03-11 5:33 ` Viresh Kumar 2019-03-11 5:33 ` Viresh Kumar 2019-04-29 9:53 ` Viresh Kumar 2019-04-29 9:53 ` Viresh Kumar
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190308164710.10597-2-gregory.clement@bootlin.com \ --to=gregory.clement@bootlin.com \ --cc=andrew@lunn.ch \ --cc=antoine.tenart@bootlin.com \ --cc=christian.neubert.86@gmail.com \ --cc=ilias.apalodimas@linaro.org \ --cc=jason@lakedaemon.net \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-pm@vger.kernel.org \ --cc=maxime.chevallier@bootlin.com \ --cc=miquel.raynal@bootlin.com \ --cc=rjw@rjwysocki.net \ --cc=sebastian.hesselbarth@gmail.com \ --cc=stable@vger.kernel.org \ --cc=thomas.petazzoni@bootlin.com \ --cc=vincent.guittot@linaro.org \ --cc=viresh.kumar@linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.