56 lines
1.6 KiB
Diff
56 lines
1.6 KiB
Diff
|
From: Ben Hutchings <ben@decadent.org.uk>
|
||
|
Date: Mon, 18 Jun 2012 02:56:40 +0100
|
||
|
Subject: Partially revert "cpufreq: Add support for x86 cpuinfo auto loading
|
||
|
v4"
|
||
|
|
||
|
This reverts commit fa8031aefec0cf7ea6c2387c93610d99d9659aa2 in
|
||
|
drivers/cpufreq/e_powersaver.c only.
|
||
|
|
||
|
e_powersaver may cause the CPU to run too fast on some systems, and is
|
||
|
therefore unsafe to auto-load.
|
||
|
---
|
||
|
drivers/cpufreq/e_powersaver.c | 20 +++++++++-----------
|
||
|
1 file changed, 9 insertions(+), 11 deletions(-)
|
||
|
|
||
|
diff --git a/drivers/cpufreq/e_powersaver.c b/drivers/cpufreq/e_powersaver.c
|
||
|
index 3fffbe6..4bd6815 100644
|
||
|
--- a/drivers/cpufreq/e_powersaver.c
|
||
|
+++ b/drivers/cpufreq/e_powersaver.c
|
||
|
@@ -16,7 +16,6 @@
|
||
|
#include <linux/io.h>
|
||
|
#include <linux/delay.h>
|
||
|
|
||
|
-#include <asm/cpu_device_id.h>
|
||
|
#include <asm/msr.h>
|
||
|
#include <asm/tsc.h>
|
||
|
|
||
|
@@ -438,19 +437,18 @@ static struct cpufreq_driver eps_driver = {
|
||
|
.attr = eps_attr,
|
||
|
};
|
||
|
|
||
|
-
|
||
|
-/* This driver will work only on Centaur C7 processors with
|
||
|
- * Enhanced SpeedStep/PowerSaver registers */
|
||
|
-static const struct x86_cpu_id eps_cpu_id[] = {
|
||
|
- { X86_VENDOR_CENTAUR, 6, X86_MODEL_ANY, X86_FEATURE_EST },
|
||
|
- {}
|
||
|
-};
|
||
|
-MODULE_DEVICE_TABLE(x86cpu, eps_cpu_id);
|
||
|
-
|
||
|
static int __init eps_init(void)
|
||
|
{
|
||
|
- if (!x86_match_cpu(eps_cpu_id) || boot_cpu_data.x86_model < 10)
|
||
|
+ struct cpuinfo_x86 *c = &cpu_data(0);
|
||
|
+
|
||
|
+ /* This driver will work only on Centaur C7 processors with
|
||
|
+ * Enhanced SpeedStep/PowerSaver registers */
|
||
|
+ if (c->x86_vendor != X86_VENDOR_CENTAUR
|
||
|
+ || c->x86 != 6 || c->x86_model < 10)
|
||
|
+ return -ENODEV;
|
||
|
+ if (!cpu_has(c, X86_FEATURE_EST))
|
||
|
return -ENODEV;
|
||
|
+
|
||
|
if (cpufreq_register_driver(&eps_driver))
|
||
|
return -EINVAL;
|
||
|
return 0;
|