Skip to contentSkip to conversation

the overdue removal of X86_SPEEDSTEP_CENTRINO_ACPI

PATCH In review Adrian Bunk 3 participants 4 messages Feb 20, 2007 – Apr 6, 2007 Documentation

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 the overdue removal of X86_SPEEDSTEP_CENTRINO_ACPI

This patch contains the overdue removal of X86_SPEEDSTEP_CENTRINO_ACPI.

---

 Documentation/feature-removal-schedule.txt        |   22 -
 arch/i386/kernel/cpu/cpufreq/Kconfig              |   19 
 arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c |  280 --------------
 arch/x86_64/kernel/cpufreq/Kconfig                |    7 
 4 files changed, 21 insertions(+), 307 deletions(-)
arch/i386/kernel/cpu/cpufreq/Kconfig renamed from arch/i386/kernel/cpu/cpufreq/Kconfig.old +2 -17
@@ -109,7 +109,7 @@
 config X86_SPEEDSTEP_CENTRINO
 	tristate "Intel Enhanced SpeedStep"
 	select CPU_FREQ_TABLE
-	select X86_SPEEDSTEP_CENTRINO_TABLE if (!X86_SPEEDSTEP_CENTRINO_ACPI)
+	select X86_SPEEDSTEP_CENTRINO_TABLE
 	help
 	  This adds the CPUFreq driver for Enhanced SpeedStep enabled
 	  mobile CPUs.  This means Intel Pentium M (Centrino) CPUs. However,
@@ -121,21 +121,6 @@
 
 	  If in doubt, say N.
 
-config X86_SPEEDSTEP_CENTRINO_ACPI
-	bool "Use ACPI tables to decode valid frequency/voltage (deprecated)"
-	depends on X86_SPEEDSTEP_CENTRINO && ACPI_PROCESSOR
-	depends on !(X86_SPEEDSTEP_CENTRINO = y && ACPI_PROCESSOR = m)
-	default y
-	help
-	  This is deprecated and this functionality is now merged into
-	  acpi_cpufreq (X86_ACPI_CPUFREQ). Use that driver instead of
-	  speedstep_centrino.
-	  Use primarily the information provided in the BIOS ACPI tables
-	  to determine valid CPU frequency and voltage pairings. It is
-	  required for the driver to work on non-Banias CPUs.
-
-	  If in doubt, say Y.
-
 config X86_SPEEDSTEP_CENTRINO_TABLE
 	bool "Built-in tables for Banias CPUs"
 	depends on X86_SPEEDSTEP_CENTRINO
@@ -222,7 +207,7 @@
 config X86_ACPI_CPUFREQ_PROC_INTF
 	bool "/proc/acpi/processor/../performance interface (deprecated)"
 	depends on PROC_FS
-	depends on X86_ACPI_CPUFREQ || X86_SPEEDSTEP_CENTRINO_ACPI || X86_POWERNOW_K7_ACPI || X86_POWERNOW_K8_ACPI
+	depends on X86_ACPI_CPUFREQ || X86_POWERNOW_K7_ACPI || X86_POWERNOW_K8_ACPI
 	help
 	  This enables the deprecated /proc/acpi/processor/../performance
 	  interface. While it is helpful for debugging, the generic,
arch/x86_64/kernel/cpufreq/Kconfig renamed from arch/x86_64/kernel/cpufreq/Kconfig.old +1 -6
@@ -42,11 +42,6 @@
 
 	  If in doubt, say N.
 
-config X86_SPEEDSTEP_CENTRINO_ACPI
-	bool
-	depends on X86_SPEEDSTEP_CENTRINO
-	default y
-
 config X86_ACPI_CPUFREQ
 	tristate "ACPI Processor P-States driver"
 	select CPU_FREQ_TABLE
@@ -65,7 +60,7 @@
 config X86_ACPI_CPUFREQ_PROC_INTF
         bool "/proc/acpi/processor/../performance interface (deprecated)"
 	depends on PROC_FS
-	depends on X86_ACPI_CPUFREQ || X86_SPEEDSTEP_CENTRINO_ACPI || X86_POWERNOW_K8_ACPI
+	depends on X86_ACPI_CPUFREQ || X86_POWERNOW_K8_ACPI
 	help
 	  This enables the deprecated /proc/acpi/processor/../performance
 	  interface. While it is helpful for debugging, the generic,
arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +18 -262

324 lines not on this page · raw message

Documentation/feature-removal-schedule.txt renamed from Documentation/feature-removal-schedule.txt.old +0 -22
@@ -214,28 +214,6 @@
 
 ---------------------------
 
-What:	ACPI hooks (X86_SPEEDSTEP_CENTRINO_ACPI) in speedstep-centrino driver
-When:	December 2006
-Why:	Speedstep-centrino driver with ACPI hooks and acpi-cpufreq driver are
-	functionally very much similar. They talk to ACPI in same way. Only
-	difference between them is the way they do frequency transitions.
-	One uses MSRs and the other one uses IO ports. Functionaliy of
-	speedstep_centrino with ACPI hooks is now merged into acpi-cpufreq.
-	That means one common driver will support all Intel Enhanced Speedstep
-	capable CPUs. That means less confusion over name of
-	speedstep-centrino driver (with that driver supposed to be used on
-	non-centrino platforms). That means less duplication of code and
-	less maintenance effort and no possibility of these two drivers
-	going out of sync.
-	Current users of speedstep_centrino with ACPI hooks are requested to
-	switch over to acpi-cpufreq driver. speedstep-centrino will continue
-	to work using older non-ACPI static table based scheme even after this
-	date.
-
-Who:	Venkatesh Pallipadi <[email protected]>
-
----------------------------
-
 What:	/sys/firmware/acpi/namespace
 When:	2.6.21
 Why:	The ACPI namespace is effectively the symbol list for
#1 lore raw

Ack.

Dave: Can you add this patch to cpufreq.git -> mm.

Thanks,
Venki

Quoted 99 lines

-----Original Message-----
From: Adrian Bunk [mailto:[email protected]]
Sent: Monday, February 19, 2007 4:07 PM
To: Pallipadi, Venkatesh
Cc: [email protected]; [email protected]; [email protected]
Subject: [2.6 patch] the overdue removal of X86_SPEEDSTEP_CENTRINO_ACPI

This patch contains the overdue removal of X86_SPEEDSTEP_CENTRINO_ACPI.

---

Documentation/feature-removal-schedule.txt        |   22 -
arch/i386/kernel/cpu/cpufreq/Kconfig              |   19 
arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c |  280 
--------------
arch/x86_64/kernel/cpufreq/Kconfig                |    7 
4 files changed, 21 insertions(+), 307 deletions(-)

---
linux-2.6.19-rc6-mm2/arch/i386/kernel/cpu/cpufreq/Kconfig.old

2006-12-01 07:23:38.000000000 +0100
+++ linux-2.6.19-rc6-mm2/arch/i386/kernel/cpu/cpufreq/Kconfig	
2006-12-01 07:24:02.000000000 +0100
(quoted diff) +0 -0
@@ -109,7 +109,7 @@

config X86_SPEEDSTEP_CENTRINO
tristate "Intel Enhanced SpeedStep"
select CPU_FREQ_TABLE

(quoted diff) +0 -1
-	select X86_SPEEDSTEP_CENTRINO_TABLE if 

(!X86_SPEEDSTEP_CENTRINO_ACPI)

arch/i386/kernel/cpu/cpufreq/Kconfig renamed from arch/i386/kernel/cpu/cpufreq/Kconfig.old +1 -0
+	select X86_SPEEDSTEP_CENTRINO_TABLE

help
This adds the CPUFreq driver for Enhanced SpeedStep enabled mobile CPUs. This means Intel Pentium M (Centrino)
CPUs. However,

arch/i386/kernel/cpu/cpufreq/Kconfig renamed from arch/i386/kernel/cpu/cpufreq/Kconfig.old +0 -2
@@ -121,21 +121,6 @@
 
 	  If in doubt, say N.
 
-config X86_SPEEDSTEP_CENTRINO_ACPI
-	bool "Use ACPI tables to decode valid frequency/voltage 

(deprecated)"

arch/i386/kernel/cpu/cpufreq/Kconfig renamed from arch/i386/kernel/cpu/cpufreq/Kconfig.old +0 -13
-	depends on X86_SPEEDSTEP_CENTRINO && ACPI_PROCESSOR
-	depends on !(X86_SPEEDSTEP_CENTRINO = y && ACPI_PROCESSOR = m)
-	default y
-	help
-	  This is deprecated and this functionality is now merged into
-	  acpi_cpufreq (X86_ACPI_CPUFREQ). Use that driver instead of
-	  speedstep_centrino.
-	  Use primarily the information provided in the BIOS ACPI tables
-	  to determine valid CPU frequency and voltage pairings. It is
-	  required for the driver to work on non-Banias CPUs.
-
-	  If in doubt, say Y.
-

config X86_SPEEDSTEP_CENTRINO_TABLE
bool "Built-in tables for Banias CPUs"
depends on X86_SPEEDSTEP_CENTRINO

(quoted diff) +0 -0
@@ -222,7 +207,7 @@

config X86_ACPI_CPUFREQ_PROC_INTF
bool "/proc/acpi/processor/../performance interface
(deprecated)"
depends on PROC_FS

(quoted diff) +0 -1
-	depends on X86_ACPI_CPUFREQ || 

X86_SPEEDSTEP_CENTRINO_ACPI || X86_POWERNOW_K7_ACPI || X86_POWERNOW_K8_ACPI

(quoted diff) +1 -0
+	depends on X86_ACPI_CPUFREQ || X86_POWERNOW_K7_ACPI || 

X86_POWERNOW_K8_ACPI
help
This enables the deprecated
/proc/acpi/processor/../performance
interface. While it is helpful for debugging, the generic,
---
linux-2.6.19-rc6-mm2/arch/x86_64/kernel/cpufreq/Kconfig.old

2006-12-01 07:24:11.000000000 +0100
+++ linux-2.6.19-rc6-mm2/arch/x86_64/kernel/cpufreq/Kconfig	
2006-12-01 07:24:21.000000000 +0100
arch/x86_64/kernel/cpufreq/Kconfig renamed from arch/x86_64/kernel/cpufreq/Kconfig.old +0 -5
@@ -42,11 +42,6 @@
 
 	  If in doubt, say N.
 
-config X86_SPEEDSTEP_CENTRINO_ACPI
-	bool
-	depends on X86_SPEEDSTEP_CENTRINO
-	default y
-

config X86_ACPI_CPUFREQ
tristate "ACPI Processor P-States driver"
select CPU_FREQ_TABLE

(quoted diff) +0 -0
@@ -65,7 +60,7 @@

config X86_ACPI_CPUFREQ_PROC_INTF
bool "/proc/acpi/processor/../performance interface
(deprecated)"
depends on PROC_FS

(quoted diff) +0 -1
-	depends on X86_ACPI_CPUFREQ || 

X86_SPEEDSTEP_CENTRINO_ACPI || X86_POWERNOW_K8_ACPI

arch/x86_64/kernel/cpufreq/Kconfig renamed from arch/x86_64/kernel/cpufreq/Kconfig.old +1 -0
+	depends on X86_ACPI_CPUFREQ || X86_POWERNOW_K8_ACPI
Quoted 6 lines

help
This enables the deprecated
/proc/acpi/processor/../performance
interface. While it is helpful for debugging, the generic,
---
linux-2.6.20-mm1/arch/i386/kernel/cpu/cpufreq/speedstep-centrin

o.c.old 2007-02-17 23:29:53.000000000 +0100

Quoted 2 lines

+++
linux-2.6.20-mm1/arch/i386/kernel/cpu/cpufreq/speedstep-cen

trino.c 2007-02-17 23:30:44.000000000 +0100

Quoted 414 lines
arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +1 -15
@@ -21,12 +21,6 @@
 #include <linux/delay.h>
 #include <linux/compiler.h>
 
-#ifdef CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI
-#include <linux/acpi.h>
-#include <linux/dmi.h>
-#include <acpi/processor.h>
-#endif
-
 #include <asm/msr.h>
 #include <asm/processor.h>
 #include <asm/cpufeature.h>
@@ -257,9 +251,7 @@
 		/* Matched a non-match */
 		dprintk("no table support for CPU model \"%s\"\n",
 		       cpu->x86_model_id);
-#ifndef CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI
-		dprintk("try compiling with 
 CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI enabled\n");
-#endif
+		dprintk("try using the acpi-cpufreq driver\n");
 		return -ENOENT;
 	}
@@ -346,213 +338,6 @@
 }
 
 
-#ifdef CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI
-
-static struct acpi_processor_performance *acpi_perf_data[NR_CPUS];
-
-/*
- * centrino_cpu_early_init_acpi - Do the preregistering with 

ACPI P-States
- * library
- *
- * Before doing the actual init, we need to do _PSD related setup whenever
- * supported by the BIOS. These are handled by this early_init routine.
- */

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -7
-static int centrino_cpu_early_init_acpi(void)
-{
-	unsigned int	i, j;
-	struct acpi_processor_performance	*data;
-
-	for_each_possible_cpu(i) {
-		data = kzalloc(sizeof(struct 

acpi_processor_performance),

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -19
-				GFP_KERNEL);
-		if (!data) {
-			for_each_possible_cpu(j) {
-				kfree(acpi_perf_data[j]);
-				acpi_perf_data[j] = NULL;
-			}
-			return (-ENOMEM);
-		}
-		acpi_perf_data[i] = data;
-	}
-
-	acpi_processor_preregister_performance(acpi_perf_data);
-	return 0;
-}
-
-
-#ifdef CONFIG_SMP
-/*
- * Some BIOSes do SW_ANY coordination internally, either set 

it up in hw
- * or do it in BIOS firmware and won't inform about it to OS. If not
- * detected, this has a side effect of making CPU run at a different speed
- * than OS intended it to run at. Detect it and handle it cleanly.
- */

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -25
-static int bios_with_sw_any_bug;
-static int sw_any_bug_found(struct dmi_system_id *d)
-{
-	bios_with_sw_any_bug = 1;
-	return 0;
-}
-
-static struct dmi_system_id sw_any_bug_dmi_table[] = {
-	{
-		.callback = sw_any_bug_found,
-		.ident = "Supermicro Server X6DLP",
-		.matches = {
-			DMI_MATCH(DMI_SYS_VENDOR, "Supermicro"),
-			DMI_MATCH(DMI_BIOS_VERSION, "080010"),
-			DMI_MATCH(DMI_PRODUCT_NAME, "X6DLP"),
-		},
-	},
-	{ }
-};
-#endif
-
-/*
- * centrino_cpu_init_acpi - register with ACPI P-States library
- *
- * Register with the ACPI P-States library (part of 

drivers/acpi/processor.c)
- * in order to determine correct frequency and voltage pairings by reading
- * the _PSS of the ACPI DSDT or SSDT tables.
- */

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -18
-static int centrino_cpu_init_acpi(struct cpufreq_policy *policy)
-{
-	unsigned long			cur_freq;
-	int				result = 0, i;
-	unsigned int			cpu = policy->cpu;
-	struct acpi_processor_performance	*p;
-
-	p = acpi_perf_data[cpu];
-
-	/* register with ACPI core */
-	if (acpi_processor_register_performance(p, cpu)) {
-		dprintk(PFX "obtaining ACPI data failed\n");
-		return -EIO;
-	}
-
-	policy->shared_type = p->shared_type;
-	/*
-	 * Will let policy->cpus know about dependency only 

when software

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -23
-	 * coordination is required.
-	 */
-	if (policy->shared_type == CPUFREQ_SHARED_TYPE_ALL ||
-	    policy->shared_type == CPUFREQ_SHARED_TYPE_ANY) {
-		policy->cpus = p->shared_cpu_map;
-	}
-
-#ifdef CONFIG_SMP
-	dmi_check_system(sw_any_bug_dmi_table);
-	if (bios_with_sw_any_bug && cpus_weight(policy->cpus) == 1) {
-		policy->shared_type = CPUFREQ_SHARED_TYPE_ALL;
-		policy->cpus = cpu_core_map[cpu];
-	}
-#endif
-
-	/* verify the acpi_data */
-	if (p->state_count <= 1) {
-		dprintk("No P-States\n");
-		result = -ENODEV;
-		goto err_unreg;
-	}
-
-	if ((p->control_register.space_id != 

ACPI_ADR_SPACE_FIXED_HARDWARE) ||

(quoted diff) +0 -1
-	    (p->status_register.space_id != 

ACPI_ADR_SPACE_FIXED_HARDWARE)) {

(quoted diff) +0 -2
-		dprintk("Invalid control/status registers (%x - %x)\n",
-			p->control_register.space_id, 

p->status_register.space_id);

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -8
-		result = -EIO;
-		goto err_unreg;
-	}
-
-	for (i=0; i<p->state_count; i++) {
-		if ((p->states[i].control & INTEL_MSR_RANGE) !=
-		    (p->states[i].status & INTEL_MSR_RANGE)) {
-			dprintk("Different MSR bits in control 

(%llu) and status (%llu)\n",

(quoted diff) +0 -1
-				p->states[i].control, 

p->states[i].status);

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -6
-			result = -EINVAL;
-			goto err_unreg;
-		}
-
-		if (!p->states[i].core_frequency) {
-			dprintk("Zero core frequency for state 

%u\n", i);

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -5
-			result = -EINVAL;
-			goto err_unreg;
-		}
-
-		if (p->states[i].core_frequency > 

p->states[0].core_frequency) {

(quoted diff) +0 -1
-			dprintk("P%u has larger frequency 

(%llu) than P0 (%llu), skipping\n", i,

(quoted diff) +0 -1
-				p->states[i].core_frequency, 

p->states[0].core_frequency);

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -6
-			p->states[i].core_frequency = 0;
-			continue;
-		}
-	}
-
-	centrino_model[cpu] = kzalloc(sizeof(struct cpu_model), 

GFP_KERNEL);

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -7
-	if (!centrino_model[cpu]) {
-		result = -ENOMEM;
-		goto err_unreg;
-	}
-
-	centrino_model[cpu]->model_name=NULL;
-	centrino_model[cpu]->max_freq = 

p->states[0].core_frequency * 1000;

(quoted diff) +0 -1
-	centrino_model[cpu]->op_points =  kmalloc(sizeof(struct 

cpufreq_frequency_table) *

(quoted diff) +0 -1
-					     (p->state_count + 

1), GFP_KERNEL);

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -7
-        if (!centrino_model[cpu]->op_points) {
-                result = -ENOMEM;
-                goto err_kfree;
-        }
-
-        for (i=0; i<p->state_count; i++) {
-		centrino_model[cpu]->op_points[i].index = 

p->states[i].control & INTEL_MSR_RANGE;

(quoted diff) +0 -1
-		centrino_model[cpu]->op_points[i].frequency = 

p->states[i].core_frequency * 1000;

(quoted diff) +0 -1
-		dprintk("adding state %i with frequency %u and 

control value %04x\n",

(quoted diff) +0 -1
-			i, 

centrino_model[cpu]->op_points[i].frequency,
centrino_model[cpu]->op_points[i].index);

(quoted diff) +0 -2
-	}
-	

centrino_model[cpu]->op_points[p->state_count].frequency = CPUFREQ_TABLE_END;

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -7
-
-	cur_freq = get_cur_freq(cpu);
-
-	for (i=0; i<p->state_count; i++) {
-		if (!p->states[i].core_frequency) {
-			dprintk("skipping state %u\n", i);
-			

centrino_model[cpu]->op_points[i].frequency = CPUFREQ_ENTRY_INVALID;

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -4
-			continue;
-		}
-		
-		if 

(extract_clock(centrino_model[cpu]->op_points[i].index, cpu, 0) !=

(quoted diff) +0 -2
-		    (centrino_model[cpu]->op_points[i].frequency)) {
-			dprintk("Invalid encoded frequency (%u 

vs. %u)\n",

(quoted diff) +0 -1
-				

extract_clock(centrino_model[cpu]->op_points[i].index, cpu, 0),

(quoted diff) +0 -1
-				

centrino_model[cpu]->op_points[i].frequency);

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -5
-			result = -EINVAL;
-			goto err_kfree_all;
-		}
-
-		if (cur_freq == 

centrino_model[cpu]->op_points[i].frequency)

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -22
-			p->state = i;
-	}
-
-	/* notify BIOS that we exist */
-	acpi_processor_notify_smm(THIS_MODULE);
-	printk("speedstep-centrino with X86_SPEEDSTEP_CENTRINO_ACPI "
-	       "config is deprecated.\n "
-	       "Use X86_ACPI_CPUFREQ (acpi-cpufreq) instead.\n" );
-
-	return 0;
-
- err_kfree_all:
-	kfree(centrino_model[cpu]->op_points);
- err_kfree:
-	kfree(centrino_model[cpu]);
- err_unreg:
-	acpi_processor_unregister_performance(p, cpu);
-	dprintk(PFX "invalid ACPI data\n");
-	return (result);
-}
-#else
-static inline int centrino_cpu_init_acpi(struct 

cpufreq_policy *policy) { return -ENODEV; }

arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -3
-static inline int centrino_cpu_early_init_acpi(void) { return 0; }
-#endif
-

static int centrino_cpu_init(struct cpufreq_policy *policy)

{
	struct cpuinfo_x86 *cpu = &cpu_data[policy->cpu];
arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +17 -33
@@ -568,27 +353,25 @@
 	if (cpu_has(cpu, X86_FEATURE_CONSTANT_TSC))
 		centrino_driver.flags |= CPUFREQ_CONST_LOOPS;
 
-	if (centrino_cpu_init_acpi(policy)) {
-		if (policy->cpu != 0)
-			return -ENODEV;
+	if (policy->cpu != 0)
+		return -ENODEV;
 
-		for (i = 0; i < N_IDS; i++)
-			if (centrino_verify_cpu_id(cpu, &cpu_ids[i]))
-				break;
-
-		if (i != N_IDS)
-			centrino_cpu[policy->cpu] = &cpu_ids[i];
-
-		if (!centrino_cpu[policy->cpu]) {
-			dprintk("found unsupported CPU with "
-			"Enhanced SpeedStep: send /proc/cpuinfo to "
-			MAINTAINER "\n");
-			return -ENODEV;
-		}
+	for (i = 0; i < N_IDS; i++)
+		if (centrino_verify_cpu_id(cpu, &cpu_ids[i]))
+			break;
 
-		if (centrino_cpu_init_table(policy)) {
-			return -ENODEV;
-		}
+	if (i != N_IDS)
+		centrino_cpu[policy->cpu] = &cpu_ids[i];
+
+	if (!centrino_cpu[policy->cpu]) {
+		dprintk("found unsupported CPU with "
+		"Enhanced SpeedStep: send /proc/cpuinfo to "
+		MAINTAINER "\n");
+		return -ENODEV;
+	}
+
+	if (centrino_cpu_init_table(policy)) {
+		return -ENODEV;
 	}
 
 	/* Check to see if Enhanced SpeedStep is enabled, and try to
@@ -634,20 +417,6 @@
 
 	cpufreq_frequency_table_put_attr(cpu);
 
-#ifdef CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI
-	if (!centrino_model[cpu]->model_name) {
-		static struct acpi_processor_performance *p;
-
-		if (acpi_perf_data[cpu]) {
-			p = acpi_perf_data[cpu];
-			dprintk("unregistering and freeing ACPI 
 data\n");
-			acpi_processor_unregister_performance(p, cpu);
-			kfree(centrino_model[cpu]->op_points);
-			kfree(centrino_model[cpu]);
-		}
-	}
-#endif
-
 	centrino_model[cpu] = NULL;
 
	return 0;
arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c renamed from arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c.old +0 -14
@@ -841,25 +610,12 @@
 	if (!cpu_has(cpu, X86_FEATURE_EST))
 		return -ENODEV;
 
-	centrino_cpu_early_init_acpi();
-
 	return cpufreq_register_driver(&centrino_driver);
 }
 
 static void __exit centrino_exit(void)
 {
-#ifdef CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI
-	unsigned int j;
-#endif
-	
 	cpufreq_unregister_driver(&centrino_driver);
-
-#ifdef CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI
-	for_each_possible_cpu(j) {
-		kfree(acpi_perf_data[j]);
-		acpi_perf_data[j] = NULL;
-	}
-#endif
 }
 
 MODULE_AUTHOR ("Jeremy Fitzhardinge <[email protected]>");
--- 

linux-2.6.20-mm1/Documentation/feature-removal-schedule.
txt.old 2007-02-17 23:33:09.000000000 +0100
+++
linux-2.6.20-mm1/Documentation/feature-removal-schedule.txt

2007-02-17 23:33:46.000000000 +0100
(quoted diff) +0 -2
@@ -214,28 +214,6 @@
 
---------------------------
 
-What:	ACPI hooks (X86_SPEEDSTEP_CENTRINO_ACPI) in 

speedstep-centrino driver

(quoted diff) +0 -2
-When:	December 2006
-Why:	Speedstep-centrino driver with ACPI hooks and 

acpi-cpufreq driver are

(quoted diff) +0 -1
-	functionally very much similar. They talk to ACPI in 

same way. Only

(quoted diff) +0 -1
-	difference between them is the way they do frequency 

transitions.

(quoted diff) +0 -2
-	One uses MSRs and the other one uses IO ports. Functionaliy of
-	speedstep_centrino with ACPI hooks is now merged into 

acpi-cpufreq.

(quoted diff) +0 -1
-	That means one common driver will support all Intel 

Enhanced Speedstep

(quoted diff) +0 -2
-	capable CPUs. That means less confusion over name of
-	speedstep-centrino driver (with that driver supposed to 

be used on

Documentation/feature-removal-schedule.txt renamed from Documentation/feature-removal-schedule.txt.old +0 -4
-	non-centrino platforms). That means less duplication of code and
-	less maintenance effort and no possibility of these two drivers
-	going out of sync.
-	Current users of speedstep_centrino with ACPI hooks are 

requested to

(quoted diff) +0 -1
-	switch over to acpi-cpufreq driver. speedstep-centrino 

will continue

(quoted diff) +0 -1
-	to work using older non-ACPI static table based scheme 

even after this

Documentation/feature-removal-schedule.txt renamed from Documentation/feature-removal-schedule.txt.old +0 -6
-	date.
-
-Who:	Venkatesh Pallipadi <[email protected]>
-
----------------------------
-

What: /sys/firmware/acpi/namespace
When: 2.6.21
Why: The ACPI namespace is effectively the symbol list for

#2 lore raw
In reply to Adrian Bunk
Quoted 4 lines · Adrian Bunk

This patch contains the overdue removal of X86_SPEEDSTEP_CENTRINO_ACPI.

It would be really nice, when removing features used on computers which are only a few years old, if you noted what replaces this functionality. Yes, people can take 10-15 minutes to find and read previous discussion, but one or two sentences who generate less concern and noise on the list.

Signature · 3 lines
Bill Davidsen <[email protected]>
  "We have more to fear from the bungling of the incompetent than from
the machinations of the wicked."  - from Slashdot
#3 lore raw
Quoted 9 lines · Bill Davidsen
Quoted 4 lines · Adrian Bunk

This patch contains the overdue removal of X86_SPEEDSTEP_CENTRINO_ACPI.

It would be really nice, when removing features used on computers which are only a few years old, if you noted what replaces this functionality. Yes, people can take 10-15 minutes to find and read previous discussion, but one or two sentences who generate less concern and noise on the list.

For everyone on linux-kernel, the text my patch removes in feature-removal-schedule.txt should be sufficient.

Users already had a printk() stating that it was deprecated.

Quoted 1 line

Bill Davidsen

cu
Adrian

Signature · 4 lines
       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed