aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Renninger <trenn@suse.de>2006-06-27 00:06:37 -0400
committerLen Brown <len.brown@intel.com>2006-06-27 00:06:37 -0400
commitd7fa2589bbe7ab53fd5eb20e8c7e388d5aff6f16 (patch)
treee3481b52e4d950ffa4580680b11d9815d5c7e60b
parent6468463abd7051fcc29f3ee7c931f9bbbb26f5a4 (diff)
parent46f18e3a28295a9e11a6ffa4478241c19bc93735 (diff)
Pull bugzilla-5737 into release branch
-rw-r--r--arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c8
-rw-r--r--arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c8
-rw-r--r--drivers/acpi/processor_perflib.c8
-rw-r--r--include/linux/cpufreq.h6
4 files changed, 22 insertions, 8 deletions
diff --git a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
index 5fd65325b81a..cf0ddc9ee0cd 100644
--- a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
+++ b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
@@ -418,8 +418,14 @@ acpi_cpufreq_cpu_init (
418 goto err_free; 418 goto err_free;
419 419
420 perf = data->acpi_data; 420 perf = data->acpi_data;
421 policy->cpus = perf->shared_cpu_map;
422 policy->shared_type = perf->shared_type; 421 policy->shared_type = perf->shared_type;
422 /*
423 * Will let policy->cpus know about dependency only when software
424 * coordination is required.
425 */
426 if (policy->shared_type == CPUFREQ_SHARED_TYPE_ALL ||
427 policy->shared_type == CPUFREQ_SHARED_TYPE_ANY)
428 policy->cpus = perf->shared_cpu_map;
423 429
424 if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) { 430 if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) {
425 acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS; 431 acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS;
diff --git a/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c b/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
index f7e4356f6820..8d765509ef59 100644
--- a/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
+++ b/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
@@ -399,8 +399,14 @@ static int centrino_cpu_init_acpi(struct cpufreq_policy *policy)
399 dprintk(PFX "obtaining ACPI data failed\n"); 399 dprintk(PFX "obtaining ACPI data failed\n");
400 return -EIO; 400 return -EIO;
401 } 401 }
402 policy->cpus = p->shared_cpu_map;
403 policy->shared_type = p->shared_type; 402 policy->shared_type = p->shared_type;
403 /*
404 * Will let policy->cpus know about dependency only when software
405 * coordination is required.
406 */
407 if (policy->shared_type == CPUFREQ_SHARED_TYPE_ALL ||
408 policy->shared_type == CPUFREQ_SHARED_TYPE_ANY)
409 policy->cpus = p->shared_cpu_map;
404 410
405 /* verify the acpi_data */ 411 /* verify the acpi_data */
406 if (p->state_count <= 1) { 412 if (p->state_count <= 1) {
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 8bd7500c6121..5c24ac45717c 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -691,12 +691,12 @@ int acpi_processor_preregister_performance(
691 /* Validate the Domain info */ 691 /* Validate the Domain info */
692 count_target = pdomain->num_processors; 692 count_target = pdomain->num_processors;
693 count = 1; 693 count = 1;
694 if (pdomain->coord_type == DOMAIN_COORD_TYPE_SW_ALL || 694 if (pdomain->coord_type == DOMAIN_COORD_TYPE_SW_ALL)
695 pdomain->coord_type == DOMAIN_COORD_TYPE_HW_ALL) {
696 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ALL; 695 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ALL;
697 } else if (pdomain->coord_type == DOMAIN_COORD_TYPE_SW_ANY) { 696 else if (pdomain->coord_type == DOMAIN_COORD_TYPE_HW_ALL)
697 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_HW;
698 else if (pdomain->coord_type == DOMAIN_COORD_TYPE_SW_ANY)
698 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY; 699 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY;
699 }
700 700
701 for_each_possible_cpu(j) { 701 for_each_possible_cpu(j) {
702 if (i == j) 702 if (i == j)
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
index 466fbe9e4899..35e137636b0b 100644
--- a/include/linux/cpufreq.h
+++ b/include/linux/cpufreq.h
@@ -100,8 +100,10 @@ struct cpufreq_policy {
100#define CPUFREQ_INCOMPATIBLE (1) 100#define CPUFREQ_INCOMPATIBLE (1)
101#define CPUFREQ_NOTIFY (2) 101#define CPUFREQ_NOTIFY (2)
102 102
103#define CPUFREQ_SHARED_TYPE_ALL (0) /* All dependent CPUs should set freq */ 103#define CPUFREQ_SHARED_TYPE_NONE (0) /* None */
104#define CPUFREQ_SHARED_TYPE_ANY (1) /* Freq can be set from any dependent CPU */ 104#define CPUFREQ_SHARED_TYPE_HW (1) /* HW does needed coordination */
105#define CPUFREQ_SHARED_TYPE_ALL (2) /* All dependent CPUs should set freq */
106#define CPUFREQ_SHARED_TYPE_ANY (3) /* Freq can be set from any dependent CPU*/
105 107
106/******************** cpufreq transition notifiers *******************/ 108/******************** cpufreq transition notifiers *******************/
107 109