From: Thomas Renninger <trenn@suse.de>
To: Arkadiusz Miskiewicz <arekm@maven.pl>
Cc: linux-kernel@vger.kernel.org, cpufreq@lists.linux.org.uk,
Andrew Morton <akpm@linux-foundation.org>,
gnorton@novell.com, miguel@novell.com,
linux-acpi <linux-acpi@vger.kernel.org>,
Dave Jones <davej@redhat.com>
Subject: [PATCH] Re: cpufreq limits avilable frequencies to 800MHz on git kernel
Date: Thu, 17 Jul 2008 15:48:02 +0200 [thread overview]
Message-ID: <200807171548.04584.trenn@suse.de> (raw)
In-Reply-To: <200805261823.03140.arekm@maven.pl>
Hi,
maybe I found something..., can someone review/test this.
Thanks,
Thomas
------------
CPUFREQ ACPI: Only call _PPC after cpufreq ACPI init funcs got called already
Ingo Molnar provided a fix to not call _PPC at processor driver initialization
time.
Git commit #e4233dec749a3519069d9390561b5636a75c7579
But it can still happen that _PPC is called at processor driver
initialization time.
This patch should make sure that this is not possible anymore.
Signed-off-by: Thomas Renninger <trenn@suse.de>
---
arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c | 6 ++++++
drivers/acpi/processor_perflib.c | 13 ++++++++++++-
drivers/cpufreq/cpufreq.c | 3 +++
include/linux/cpufreq.h | 1 +
4 files changed, 22 insertions(+), 1 deletions(-)
diff --git a/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c
b/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c
index 69288f6..3233fe8 100644
--- a/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c
+++ b/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c
@@ -96,6 +96,12 @@ static int pmi_notifier(struct notifier_block *nb,
struct cpufreq_frequency_table *cbe_freqs;
u8 node;
+ /* Should this really be called for CPUFREQ_ADJUST, CPUFREQ_INCOMPATIBLE
+ * and CPUFREQ_NOTIFY policy events?)
+ */
+ if (event == CPUFREQ_START)
+ return 0;
+
cbe_freqs = cpufreq_frequency_get_table(policy->cpu);
node = cbe_cpu_to_node(policy->cpu);
diff --git a/drivers/acpi/processor_perflib.c
b/drivers/acpi/processor_perflib.c
index b474996..63ccf80 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -72,7 +72,13 @@ MODULE_PARM_DESC(ignore_ppc, "If the frequency of your
machine gets wrongly" \
#define PPC_REGISTERED 1
#define PPC_IN_USE 2
-static int acpi_processor_ppc_status = 0;
+/* ignore_ppc:
+ * -1 -> cpufreq low level drivers not initialized -> _PSS, etc. not called
yet
+ * ignore _PPC
+ * 0 -> cpufreq low level drivers initialized -> consider _PPC values
+ * 1 -> ignore _PPC totally -> forced by user through boot param
+ */
+static int acpi_processor_ppc_status = -1;
static int acpi_processor_ppc_notifier(struct notifier_block *nb,
unsigned long event, void *data)
@@ -81,6 +87,11 @@ static int acpi_processor_ppc_notifier(struct
notifier_block *nb,
struct acpi_processor *pr;
unsigned int ppc = 0;
+ if (event == CPUFREQ_START && ignore_ppc <= 0) {
+ ignore_ppc = 0;
+ return 0;
+ }
+
if (ignore_ppc)
return 0;
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 1d41496..0471ef5 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -825,6 +825,9 @@ static int cpufreq_add_dev(struct sys_device *sys_dev)
policy->user_policy.min = policy->cpuinfo.min_freq;
policy->user_policy.max = policy->cpuinfo.max_freq;
+ blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
+ CPUFREQ_START, policy);
+
#ifdef CONFIG_SMP
#ifdef CONFIG_HOTPLUG_CPU
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
index e7e91db..07cb761 100644
--- a/include/linux/cpufreq.h
+++ b/include/linux/cpufreq.h
@@ -109,6 +109,7 @@ struct cpufreq_policy {
#define CPUFREQ_ADJUST (0)
#define CPUFREQ_INCOMPATIBLE (1)
#define CPUFREQ_NOTIFY (2)
+#define CPUFREQ_START (3)
#define CPUFREQ_SHARED_TYPE_NONE (0) /* None */
#define CPUFREQ_SHARED_TYPE_HW (1) /* HW does needed coordination */
--
1.5.4.5
next prev parent reply other threads:[~2008-07-17 13:48 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-23 17:44 cpufreq limits avilable frequencies to 800MHz on git kernel Arkadiusz Miskiewicz
2008-05-23 17:44 ` Arkadiusz Miskiewicz
2008-05-24 1:25 ` Andrew Morton
2008-05-25 9:36 ` Arkadiusz Miskiewicz
2008-05-25 9:36 ` Arkadiusz Miskiewicz
2008-05-25 15:03 ` Thomas Renninger
2008-05-25 15:03 ` Thomas Renninger
2008-05-26 7:07 ` Arkadiusz Miskiewicz
2008-05-26 11:37 ` Thomas Renninger
2008-05-26 11:37 ` Thomas Renninger
2008-05-26 16:15 ` Arkadiusz Miskiewicz
2008-05-26 16:23 ` Arkadiusz Miskiewicz
2008-05-26 16:23 ` Arkadiusz Miskiewicz
2008-07-17 13:48 ` Thomas Renninger [this message]
2008-07-17 21:40 ` [PATCH] " Andrew Morton
2008-07-18 2:46 ` Thomas Renninger
2008-07-18 10:41 ` Laurence Darby
2008-07-18 10:36 ` Thomas Renninger
2008-07-18 11:38 ` Laurence Darby
2008-05-27 9:35 ` Thomas Renninger
2008-05-26 12:28 ` Thomas Renninger
2008-05-26 12:28 ` Thomas Renninger
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=200807171548.04584.trenn@suse.de \
--to=trenn@suse.de \
--cc=akpm@linux-foundation.org \
--cc=arekm@maven.pl \
--cc=cpufreq@lists.linux.org.uk \
--cc=davej@redhat.com \
--cc=gnorton@novell.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miguel@novell.com \
/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: link
Be 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.