From: Sudeep Holla <sudeep.holla@arm.com> To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, arm@kernel.org Cc: Sudeep Holla <sudeep.holla@arm.com>, Liviu Dudau <liviu.dudau@arm.com>, Punit Agrawal <punit.agrawal@arm.com>, "Jon Medhurst (Tixy)" <tixy@linaro.org>, Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>, Arnd Bergmann <arnd@arndb.de>, Olof Johansson <olof@lixom.net>, Kevin Hilman <khilman@kernel.org>, Mike Turquette <mturquette@baylibre.com>, Liviu Dudau <Liviu.Dudau@arm.com>, linux-clk@vger.kernel.org Subject: [PATCH REPOST v6 4/8] clk: scpi: add support for cpufreq virtual device Date: Wed, 16 Sep 2015 18:16:35 +0100 [thread overview] Message-ID: <1442423799-23892-5-git-send-email-sudeep.holla@arm.com> (raw) In-Reply-To: <1442423799-23892-1-git-send-email-sudeep.holla@arm.com> The clocks for the CPUs are provided by SCP and are managed by this clock driver. So the cpufreq device needs to be added only after the clock get registered and removed when this driver is unloaded. This patch manages the cpufreq virtual device based on the clock availability. Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Acked-by: Stephen Boyd <sboyd@codeaurora.org> Cc: Mike Turquette <mturquette@baylibre.com> Cc: Liviu Dudau <Liviu.Dudau@arm.com> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: Jon Medhurst (Tixy) <tixy@linaro.org> Cc: linux-clk@vger.kernel.org --- drivers/clk/clk-scpi.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/clk/clk-scpi.c b/drivers/clk/clk-scpi.c index e8323db300e2..a201781287b3 100644 --- a/drivers/clk/clk-scpi.c +++ b/drivers/clk/clk-scpi.c @@ -34,6 +34,8 @@ struct scpi_clk { #define to_scpi_clk(clk) container_of(clk, struct scpi_clk, hw) +static struct platform_device *cpufreq_dev; + static unsigned long scpi_clk_recalc_rate(struct clk_hw *hw, unsigned long parent_rate) { @@ -263,6 +265,11 @@ static int scpi_clocks_remove(struct platform_device *pdev) struct device *dev = &pdev->dev; struct device_node *child, *np = dev->of_node; + if (cpufreq_dev) { + platform_device_unregister(cpufreq_dev); + cpufreq_dev = NULL; + } + for_each_available_child_of_node(np, child) of_clk_del_provider(np); return 0; @@ -288,6 +295,12 @@ static int scpi_clocks_probe(struct platform_device *pdev) return ret; } } + /* Add the virtual cpufreq device */ + cpufreq_dev = platform_device_register_simple("scpi-cpufreq", + -1, NULL, 0); + if (!cpufreq_dev) + pr_warn("unable to register cpufreq device"); + return 0; } -- 1.9.1
WARNING: multiple messages have this Message-ID (diff)
From: sudeep.holla@arm.com (Sudeep Holla) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH REPOST v6 4/8] clk: scpi: add support for cpufreq virtual device Date: Wed, 16 Sep 2015 18:16:35 +0100 [thread overview] Message-ID: <1442423799-23892-5-git-send-email-sudeep.holla@arm.com> (raw) In-Reply-To: <1442423799-23892-1-git-send-email-sudeep.holla@arm.com> The clocks for the CPUs are provided by SCP and are managed by this clock driver. So the cpufreq device needs to be added only after the clock get registered and removed when this driver is unloaded. This patch manages the cpufreq virtual device based on the clock availability. Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Acked-by: Stephen Boyd <sboyd@codeaurora.org> Cc: Mike Turquette <mturquette@baylibre.com> Cc: Liviu Dudau <Liviu.Dudau@arm.com> Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Cc: Jon Medhurst (Tixy) <tixy@linaro.org> Cc: linux-clk at vger.kernel.org --- drivers/clk/clk-scpi.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/clk/clk-scpi.c b/drivers/clk/clk-scpi.c index e8323db300e2..a201781287b3 100644 --- a/drivers/clk/clk-scpi.c +++ b/drivers/clk/clk-scpi.c @@ -34,6 +34,8 @@ struct scpi_clk { #define to_scpi_clk(clk) container_of(clk, struct scpi_clk, hw) +static struct platform_device *cpufreq_dev; + static unsigned long scpi_clk_recalc_rate(struct clk_hw *hw, unsigned long parent_rate) { @@ -263,6 +265,11 @@ static int scpi_clocks_remove(struct platform_device *pdev) struct device *dev = &pdev->dev; struct device_node *child, *np = dev->of_node; + if (cpufreq_dev) { + platform_device_unregister(cpufreq_dev); + cpufreq_dev = NULL; + } + for_each_available_child_of_node(np, child) of_clk_del_provider(np); return 0; @@ -288,6 +295,12 @@ static int scpi_clocks_probe(struct platform_device *pdev) return ret; } } + /* Add the virtual cpufreq device */ + cpufreq_dev = platform_device_register_simple("scpi-cpufreq", + -1, NULL, 0); + if (!cpufreq_dev) + pr_warn("unable to register cpufreq device"); + return 0; } -- 1.9.1
next prev parent reply other threads:[~2015-09-16 17:19 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-09-16 17:16 [PATCH REPOST v6 0/8] ARM64: juno: add SCPI mailbox protocol, clock and CPUFreq support Sudeep Holla 2015-09-16 17:16 ` Sudeep Holla 2015-09-16 17:16 ` [PATCH REPOST v6 1/8] Documentation: add DT binding for ARM System Control and Power Interface(SCPI) protocol Sudeep Holla 2015-09-16 17:16 ` Sudeep Holla 2015-09-16 17:16 ` [PATCH REPOST v6 2/8] firmware: add support " Sudeep Holla 2015-09-16 17:16 ` Sudeep Holla 2015-09-16 17:16 ` [PATCH REPOST v6 3/8] clk: add support for clocks provided by SCP(System Control Processor) Sudeep Holla 2015-09-16 17:16 ` Sudeep Holla 2015-09-16 17:16 ` Sudeep Holla [this message] 2015-09-16 17:16 ` [PATCH REPOST v6 4/8] clk: scpi: add support for cpufreq virtual device Sudeep Holla 2015-09-16 17:16 ` [PATCH REPOST v6 5/8] cpufreq: arm_big_little: add SCPI interface driver Sudeep Holla 2015-09-16 17:16 ` Sudeep Holla 2015-09-16 17:16 ` [PATCH REPOST v6 6/8] arm64: dts: add SRAM, MHU mailbox and SCPI support on Juno Sudeep Holla 2015-09-16 17:16 ` Sudeep Holla 2015-09-16 17:16 ` [PATCH REPOST v6 7/8] arm64: dts: add CPU topology " Sudeep Holla 2015-09-16 17:16 ` Sudeep Holla 2015-09-16 17:16 ` [PATCH REPOST v6 8/8] arm64: dts: add clock support for all the cpus Sudeep Holla 2015-09-16 17:16 ` Sudeep Holla
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=1442423799-23892-5-git-send-email-sudeep.holla@arm.com \ --to=sudeep.holla@arm.com \ --cc=arm@kernel.org \ --cc=arnd@arndb.de \ --cc=khilman@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=liviu.dudau@arm.com \ --cc=lorenzo.pieralisi@arm.com \ --cc=mturquette@baylibre.com \ --cc=olof@lixom.net \ --cc=punit.agrawal@arm.com \ --cc=tixy@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.