GIT 52c18fd2dc5c6d96cec4f48c69fc17b00edd9860 master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq.git/ --- Signed-off-by: Andrew Morton --- arch/i386/kernel/cpu/cpufreq/longhaul.c | 4 ++-- arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c | 20 ++++++++++---------- arch/i386/kernel/cpu/cpufreq/speedstep-smi.c | 2 +- drivers/cpufreq/cpufreq.c | 6 +++++- 4 files changed, 18 insertions(+), 14 deletions(-) diff -puN arch/i386/kernel/cpu/cpufreq/longhaul.c~git-cpufreq arch/i386/kernel/cpu/cpufreq/longhaul.c --- devel/arch/i386/kernel/cpu/cpufreq/longhaul.c~git-cpufreq 2005-09-07 20:10:03.000000000 -0700 +++ devel-akpm/arch/i386/kernel/cpu/cpufreq/longhaul.c 2005-09-07 20:10:03.000000000 -0700 @@ -467,11 +467,11 @@ static void __init longhaul_setup_voltag } if (vrmrev==0) { - dprintk ("VRM 8.5 \n"); + dprintk ("VRM 8.5\n"); memcpy (voltage_table, vrm85scales, sizeof(voltage_table)); numvscales = (voltage_table[maxvid]-voltage_table[minvid])/25; } else { - dprintk ("Mobile VRM \n"); + dprintk ("Mobile VRM\n"); memcpy (voltage_table, mobilevrmscales, sizeof(voltage_table)); numvscales = (voltage_table[maxvid]-voltage_table[minvid])/5; } diff -puN arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c~git-cpufreq arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c --- devel/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c~git-cpufreq 2005-09-07 20:10:03.000000000 -0700 +++ devel-akpm/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c 2005-09-07 20:10:03.000000000 -0700 @@ -259,7 +259,7 @@ static int centrino_cpu_init_table(struc if (model->op_points == NULL) { /* Matched a non-match */ - dprintk(KERN_INFO PFX "no table support for CPU model \"%s\": \n", + dprintk(KERN_INFO PFX "no table support for CPU model \"%s\"\n", cpu->x86_model_id); #ifndef CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI dprintk(KERN_INFO PFX "try compiling with CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI enabled\n"); @@ -402,7 +402,7 @@ static int centrino_cpu_init_acpi(struct for (i=0; i p.states[0].core_frequency) { - dprintk("P%u has larger frequency (%u) than P0 (%u), skipping\n", i, + dprintk("P%u has larger frequency (%llu) than P0 (%llu), skipping\n", i, p.states[i].core_frequency, p.states[0].core_frequency); p.states[i].core_frequency = 0; continue; @@ -498,13 +498,6 @@ static int centrino_cpu_init(struct cpuf if (cpu->x86_vendor != X86_VENDOR_INTEL || !cpu_has(cpu, X86_FEATURE_EST)) 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 (is_const_loops_cpu(policy->cpu)) { centrino_driver.flags |= CPUFREQ_CONST_LOOPS; } @@ -513,6 +506,13 @@ static int centrino_cpu_init(struct cpuf 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(KERN_INFO PFX "found unsupported CPU with " "Enhanced SpeedStep: send /proc/cpuinfo to " diff -puN arch/i386/kernel/cpu/cpufreq/speedstep-smi.c~git-cpufreq arch/i386/kernel/cpu/cpufreq/speedstep-smi.c --- devel/arch/i386/kernel/cpu/cpufreq/speedstep-smi.c~git-cpufreq 2005-09-07 20:10:03.000000000 -0700 +++ devel-akpm/arch/i386/kernel/cpu/cpufreq/speedstep-smi.c 2005-09-07 20:10:03.000000000 -0700 @@ -99,7 +99,7 @@ static int speedstep_smi_get_freqs (unsi u32 function = GET_SPEEDSTEP_FREQS; if (!(ist_info.event & 0xFFFF)) { - dprintk("bug #1422 -- can't read freqs from BIOS\n", result); + dprintk("bug #1422 -- can't read freqs from BIOS\n"); return -ENODEV; } diff -puN drivers/cpufreq/cpufreq.c~git-cpufreq drivers/cpufreq/cpufreq.c --- devel/drivers/cpufreq/cpufreq.c~git-cpufreq 2005-09-07 20:10:03.000000000 -0700 +++ devel-akpm/drivers/cpufreq/cpufreq.c 2005-09-07 20:10:03.000000000 -0700 @@ -627,7 +627,7 @@ static int cpufreq_add_dev (struct sys_d ret = kobject_register(&policy->kobj); if (ret) - goto err_out; + goto err_out_driver_exit; /* set up files for this cpu device */ drv_attr = cpufreq_driver->attr; @@ -673,6 +673,10 @@ err_out_unregister: kobject_unregister(&policy->kobj); wait_for_completion(&policy->kobj_unregister); +err_out_driver_exit: + if (cpufreq_driver->exit) + cpufreq_driver->exit(policy); + err_out: kfree(policy); _