From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> To: Eric Anholt <eric@anholt.net>, stefan.wahren@i2se.com, "Rafael J. Wysocki" <rjw@rjwysocki.net>, Viresh Kumar <viresh.kumar@linaro.org> Cc: linux-arm-kernel@lists.infradead.org, f.fainelli@gmail.com, ptesarik@suse.com, sboyd@kernel.org, mturquette@baylibre.com, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org, linux-clk@vger.kernel.org, mbrugger@suse.de, ssuloev@orpaltech.com Subject: Re: [PATCH 4/4] cpufreq: add driver for Raspbery Pi Date: Wed, 05 Jun 2019 11:12:25 +0200 [thread overview] Message-ID: <98f49600aa5adea62308a6fa23bca9b3a8007500.camel@suse.de> (raw) In-Reply-To: <87d0jszxxt.fsf@anholt.net> [-- Attachment #1: Type: text/plain, Size: 4024 bytes --] Hi Eric, On Tue, 2019-06-04 at 17:18 -0700, Eric Anholt wrote: > Nicolas Saenz Julienne <nsaenzjulienne@suse.de> writes: > > > Raspberry Pi's firmware offers and interface though which update it's > > performance requirements. It allows us to request for specific runtime > > frequencies, which the firmware might or might not respect, depending on > > the firmware configuration and thermals. > > > > As the maximum and minimum frequencies are configurable in the firmware > > there is no way to know in advance their values. So the Raspberry Pi > > cpufreq driver queries them, builds an opp frequency table to then > > launch cpufreq-dt. > > > > Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> > > --- > > > > Changes since RFC: > > - Alphabetically ordered relevant stuff > > - Updated Kconfig to select firmware interface > > - Correctly unref clk_dev after use > > - Remove all opps on failure > > - Remove use of dev_pm_opp_set_sharing_cpus() > > > > drivers/cpufreq/Kconfig.arm | 8 +++ > > drivers/cpufreq/Makefile | 1 + > > drivers/cpufreq/raspberrypi-cpufreq.c | 84 +++++++++++++++++++++++++++ > > 3 files changed, 93 insertions(+) > > create mode 100644 drivers/cpufreq/raspberrypi-cpufreq.c > > > > diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm > > index f8129edc145e..556d432cc826 100644 > > --- a/drivers/cpufreq/Kconfig.arm > > +++ b/drivers/cpufreq/Kconfig.arm > > @@ -133,6 +133,14 @@ config ARM_QCOM_CPUFREQ_HW > > The driver implements the cpufreq interface for this HW engine. > > Say Y if you want to support CPUFreq HW. > > > > +config ARM_RASPBERRYPI_CPUFREQ > > + tristate "Raspberry Pi cpufreq support" > > + select RASPBERRYPI_FIRMWARE > > + help > > + This adds the CPUFreq driver for Raspberry Pi > > + > > + If in doubt, say N. > > + > > config ARM_S3C_CPUFREQ > > bool > > help > > diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile > > index 689b26c6f949..121c1acb66c0 100644 > > --- a/drivers/cpufreq/Makefile > > +++ b/drivers/cpufreq/Makefile > > @@ -64,6 +64,7 @@ obj-$(CONFIG_ARM_PXA2xx_CPUFREQ) += pxa2xx-cpufreq.o > > obj-$(CONFIG_PXA3xx) += pxa3xx-cpufreq.o > > obj-$(CONFIG_ARM_QCOM_CPUFREQ_HW) += qcom-cpufreq-hw.o > > obj-$(CONFIG_ARM_QCOM_CPUFREQ_KRYO) += qcom-cpufreq-kryo.o > > +obj-$(CONFIG_ARM_RASPBERRYPI_CPUFREQ) += raspberrypi-cpufreq.o > > obj-$(CONFIG_ARM_S3C2410_CPUFREQ) += s3c2410-cpufreq.o > > obj-$(CONFIG_ARM_S3C2412_CPUFREQ) += s3c2412-cpufreq.o > > obj-$(CONFIG_ARM_S3C2416_CPUFREQ) += s3c2416-cpufreq.o > > diff --git a/drivers/cpufreq/raspberrypi-cpufreq.c > > b/drivers/cpufreq/raspberrypi-cpufreq.c > > new file mode 100644 > > index 000000000000..2b3a195a9d37 > > --- /dev/null > > +++ b/drivers/cpufreq/raspberrypi-cpufreq.c > > @@ -0,0 +1,84 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > +/* > > + * Raspberry Pi cpufreq driver > > + * > > + * Copyright (C) 2019, Nicolas Saenz Julienne <nsaenzjulienne@suse.de> > > + */ > > + > > +#include <linux/clk.h> > > +#include <linux/cpu.h> > > +#include <linux/cpufreq.h> > > +#include <linux/module.h> > > +#include <linux/of.h> > > +#include <linux/platform_device.h> > > +#include <linux/pm_opp.h> > > + > > +static const struct of_device_id machines[] __initconst = { > > + { .compatible = "raspberrypi,3-model-b-plus" }, > > + { .compatible = "raspberrypi,3-model-b" }, > > + { .compatible = "raspberrypi,2-model-b" }, > > + { /* sentinel */ } > > +}; > > I think I'd skip the compatible string check here. The firmware's > clock-management should be well-tested by folks playing with clocking in > the downstream tree. There aren't any firmware differences in the > processing of these clock management packets, to my recollection. Fair enough, I'll remove it. > Other than that, I'm happy with the series and would give it my > acked-by. Thanks! Regads, Nicolas [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 488 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> To: Eric Anholt <eric@anholt.net>, stefan.wahren@i2se.com, "Rafael J. Wysocki" <rjw@rjwysocki.net>, Viresh Kumar <viresh.kumar@linaro.org> Cc: f.fainelli@gmail.com, linux-pm@vger.kernel.org, sboyd@kernel.org, mturquette@baylibre.com, ptesarik@suse.com, linux-kernel@vger.kernel.org, mbrugger@suse.de, bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, ssuloev@orpaltech.com Subject: Re: [PATCH 4/4] cpufreq: add driver for Raspbery Pi Date: Wed, 05 Jun 2019 11:12:25 +0200 [thread overview] Message-ID: <98f49600aa5adea62308a6fa23bca9b3a8007500.camel@suse.de> (raw) In-Reply-To: <87d0jszxxt.fsf@anholt.net> [-- Attachment #1.1: Type: text/plain, Size: 4024 bytes --] Hi Eric, On Tue, 2019-06-04 at 17:18 -0700, Eric Anholt wrote: > Nicolas Saenz Julienne <nsaenzjulienne@suse.de> writes: > > > Raspberry Pi's firmware offers and interface though which update it's > > performance requirements. It allows us to request for specific runtime > > frequencies, which the firmware might or might not respect, depending on > > the firmware configuration and thermals. > > > > As the maximum and minimum frequencies are configurable in the firmware > > there is no way to know in advance their values. So the Raspberry Pi > > cpufreq driver queries them, builds an opp frequency table to then > > launch cpufreq-dt. > > > > Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> > > --- > > > > Changes since RFC: > > - Alphabetically ordered relevant stuff > > - Updated Kconfig to select firmware interface > > - Correctly unref clk_dev after use > > - Remove all opps on failure > > - Remove use of dev_pm_opp_set_sharing_cpus() > > > > drivers/cpufreq/Kconfig.arm | 8 +++ > > drivers/cpufreq/Makefile | 1 + > > drivers/cpufreq/raspberrypi-cpufreq.c | 84 +++++++++++++++++++++++++++ > > 3 files changed, 93 insertions(+) > > create mode 100644 drivers/cpufreq/raspberrypi-cpufreq.c > > > > diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm > > index f8129edc145e..556d432cc826 100644 > > --- a/drivers/cpufreq/Kconfig.arm > > +++ b/drivers/cpufreq/Kconfig.arm > > @@ -133,6 +133,14 @@ config ARM_QCOM_CPUFREQ_HW > > The driver implements the cpufreq interface for this HW engine. > > Say Y if you want to support CPUFreq HW. > > > > +config ARM_RASPBERRYPI_CPUFREQ > > + tristate "Raspberry Pi cpufreq support" > > + select RASPBERRYPI_FIRMWARE > > + help > > + This adds the CPUFreq driver for Raspberry Pi > > + > > + If in doubt, say N. > > + > > config ARM_S3C_CPUFREQ > > bool > > help > > diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile > > index 689b26c6f949..121c1acb66c0 100644 > > --- a/drivers/cpufreq/Makefile > > +++ b/drivers/cpufreq/Makefile > > @@ -64,6 +64,7 @@ obj-$(CONFIG_ARM_PXA2xx_CPUFREQ) += pxa2xx-cpufreq.o > > obj-$(CONFIG_PXA3xx) += pxa3xx-cpufreq.o > > obj-$(CONFIG_ARM_QCOM_CPUFREQ_HW) += qcom-cpufreq-hw.o > > obj-$(CONFIG_ARM_QCOM_CPUFREQ_KRYO) += qcom-cpufreq-kryo.o > > +obj-$(CONFIG_ARM_RASPBERRYPI_CPUFREQ) += raspberrypi-cpufreq.o > > obj-$(CONFIG_ARM_S3C2410_CPUFREQ) += s3c2410-cpufreq.o > > obj-$(CONFIG_ARM_S3C2412_CPUFREQ) += s3c2412-cpufreq.o > > obj-$(CONFIG_ARM_S3C2416_CPUFREQ) += s3c2416-cpufreq.o > > diff --git a/drivers/cpufreq/raspberrypi-cpufreq.c > > b/drivers/cpufreq/raspberrypi-cpufreq.c > > new file mode 100644 > > index 000000000000..2b3a195a9d37 > > --- /dev/null > > +++ b/drivers/cpufreq/raspberrypi-cpufreq.c > > @@ -0,0 +1,84 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > +/* > > + * Raspberry Pi cpufreq driver > > + * > > + * Copyright (C) 2019, Nicolas Saenz Julienne <nsaenzjulienne@suse.de> > > + */ > > + > > +#include <linux/clk.h> > > +#include <linux/cpu.h> > > +#include <linux/cpufreq.h> > > +#include <linux/module.h> > > +#include <linux/of.h> > > +#include <linux/platform_device.h> > > +#include <linux/pm_opp.h> > > + > > +static const struct of_device_id machines[] __initconst = { > > + { .compatible = "raspberrypi,3-model-b-plus" }, > > + { .compatible = "raspberrypi,3-model-b" }, > > + { .compatible = "raspberrypi,2-model-b" }, > > + { /* sentinel */ } > > +}; > > I think I'd skip the compatible string check here. The firmware's > clock-management should be well-tested by folks playing with clocking in > the downstream tree. There aren't any firmware differences in the > processing of these clock management packets, to my recollection. Fair enough, I'll remove it. > Other than that, I'm happy with the series and would give it my > acked-by. Thanks! Regads, Nicolas [-- Attachment #1.2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 488 bytes --] [-- Attachment #2: Type: text/plain, Size: 176 bytes --] _______________________________________________ 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-06-05 9:12 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-04 17:32 [PATCH 0/4] cpufreq support for the Raspberry Pi Nicolas Saenz Julienne 2019-06-04 17:32 ` Nicolas Saenz Julienne 2019-06-04 17:32 ` [PATCH 1/4] clk: bcm2835: remove pllb Nicolas Saenz Julienne 2019-06-04 17:32 ` Nicolas Saenz Julienne 2019-06-05 0:03 ` Eric Anholt 2019-06-05 0:03 ` Eric Anholt 2019-06-05 10:49 ` Stefan Wahren 2019-06-05 10:49 ` Stefan Wahren 2019-06-04 17:32 ` [PATCH 2/4] clk: bcm283x: add driver interfacing with Raspberry Pi's firmware Nicolas Saenz Julienne 2019-06-04 17:32 ` Nicolas Saenz Julienne 2019-06-05 10:44 ` Stefan Wahren 2019-06-05 10:44 ` Stefan Wahren 2019-06-05 12:23 ` Nicolas Saenz Julienne 2019-06-05 12:23 ` Nicolas Saenz Julienne 2019-06-04 17:32 ` [PATCH 3/4] clk: bcm2835: register Raspberry Pi's firmware clk device Nicolas Saenz Julienne 2019-06-04 17:32 ` Nicolas Saenz Julienne 2019-06-05 0:00 ` Eric Anholt 2019-06-05 0:00 ` Eric Anholt 2019-06-05 9:11 ` Nicolas Saenz Julienne 2019-06-05 9:11 ` Nicolas Saenz Julienne 2019-06-05 10:01 ` Stefan Wahren 2019-06-05 10:01 ` Stefan Wahren 2019-06-04 17:32 ` [PATCH 4/4] cpufreq: add driver for Raspbery Pi Nicolas Saenz Julienne 2019-06-04 17:32 ` Nicolas Saenz Julienne 2019-06-05 0:18 ` Eric Anholt 2019-06-05 0:18 ` Eric Anholt 2019-06-05 9:12 ` Nicolas Saenz Julienne [this message] 2019-06-05 9:12 ` Nicolas Saenz Julienne 2019-06-05 11:15 ` Stefan Wahren 2019-06-05 11:15 ` Stefan Wahren 2019-06-05 9:46 ` [PATCH 0/4] cpufreq support for the Raspberry Pi Stefan Wahren 2019-06-05 9:46 ` Stefan Wahren 2019-06-05 11:00 ` Nicolas Saenz Julienne 2019-06-05 11:00 ` Nicolas Saenz Julienne 2019-06-05 11:34 ` Stefan Wahren 2019-06-05 11:34 ` Stefan Wahren 2019-06-05 12:27 ` Nicolas Saenz Julienne 2019-06-05 12:27 ` Nicolas Saenz Julienne 2019-06-05 13:12 ` Stefan Wahren 2019-06-05 13:12 ` Stefan Wahren 2019-06-05 19:11 ` Nicolas Saenz Julienne 2019-06-05 19:11 ` Nicolas Saenz Julienne 2019-06-05 20:15 ` Stefan Wahren 2019-06-05 20:15 ` Stefan Wahren
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=98f49600aa5adea62308a6fa23bca9b3a8007500.camel@suse.de \ --to=nsaenzjulienne@suse.de \ --cc=bcm-kernel-feedback-list@broadcom.com \ --cc=eric@anholt.net \ --cc=f.fainelli@gmail.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux-rpi-kernel@lists.infradead.org \ --cc=mbrugger@suse.de \ --cc=mturquette@baylibre.com \ --cc=ptesarik@suse.com \ --cc=rjw@rjwysocki.net \ --cc=sboyd@kernel.org \ --cc=ssuloev@orpaltech.com \ --cc=stefan.wahren@i2se.com \ --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.