From: Len Brown Date: Sun, 5 Apr 2009 06:14:15 +0000 (-0400) Subject: Merge branch 'linus' into release X-Git-Tag: v2.6.30-rc1~199^2~3 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=commitdiff_plain;h=478c6a43fcbc6c11609f8cee7c7b57223907754f Merge branch 'linus' into release Conflicts: arch/x86/kernel/cpu/cpufreq/longhaul.c Signed-off-by: Len Brown --- 478c6a43fcbc6c11609f8cee7c7b57223907754f diff --cc MAINTAINERS index e40379e31921,6360b9b9bbbd..446821b9fac9 --- a/MAINTAINERS +++ b/MAINTAINERS @@@ -4290,8 -4368,24 +4373,21 @@@ L: tlan-devel@lists.sourceforge.net (su W: http://sourceforge.net/projects/tlan/ S: Maintained + TOMOYO SECURITY MODULE + P: Kentaro Takeda + M: takedakn@nttdata.co.jp + P: Tetsuo Handa + M: penguin-kernel@I-love.SAKURA.ne.jp + L: linux-kernel@vger.kernel.org (kernel issues) + L: tomoyo-users-en@lists.sourceforge.jp (subscribers-only, for developers and users in English) + L: tomoyo-dev@lists.sourceforge.jp (subscribers-only, for developers in Japanese) + L: tomoyo-users@lists.sourceforge.jp (subscribers-only, for users in Japanese) + W: http://tomoyo.sourceforge.jp/ + T: quilt http://svn.sourceforge.jp/svnroot/tomoyo/trunk/2.2.x/tomoyo-lsm/patches/ + S: Maintained + TOSHIBA ACPI EXTRAS DRIVER -P: John Belmonte -M: toshiba_acpi@memebeam.org -W: http://memebeam.org/toys/ToshibaAcpiDriver -S: Maintained +S: Orphan TOSHIBA SMM DRIVER P: Jonathan Buzzard diff --cc arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c index 89c676d6caf7,23da96e57b17..022222c76e3b --- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c +++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c @@@ -680,22 -680,10 +680,22 @@@ static int acpi_cpufreq_cpu_init(struc perf->states[i].transition_latency * 1000; } + /* Check for high latency (>20uS) from buggy BIOSes, like on T42 */ + if (perf->control_register.space_id == ACPI_ADR_SPACE_FIXED_HARDWARE && + policy->cpuinfo.transition_latency > 20 * 1000) { + static int print_once; + policy->cpuinfo.transition_latency = 20 * 1000; + if (!print_once) { + print_once = 1; + printk(KERN_INFO "Capping off P-state tranision latency" + " at 20 uS\n"); + } + } + data->max_freq = perf->states[0].core_frequency * 1000; /* table init */ - for (i=0; istate_count; i++) { - if (i>0 && perf->states[i].core_frequency >= + for (i = 0; i < perf->state_count; i++) { + if (i > 0 && perf->states[i].core_frequency >= data->freq_table[valid_states-1].frequency / 1000) continue; diff --cc arch/x86/kernel/cpu/cpufreq/longhaul.c index 4e18d5119828,f1c51aea064d..0bd48e65a0ca --- a/arch/x86/kernel/cpu/cpufreq/longhaul.c +++ b/arch/x86/kernel/cpu/cpufreq/longhaul.c @@@ -326,10 -328,10 +328,10 @@@ retry_loop case TYPE_POWERSAVER: if (longhaul_flags & USE_ACPI_C3) { /* Don't allow wakeup */ - acpi_set_register(ACPI_BITREG_BUS_MASTER_RLD, 0); + acpi_write_bit_register(ACPI_BITREG_BUS_MASTER_RLD, 0); - do_powersaver(cx->address, clock_ratio_index, dir); + do_powersaver(cx->address, mults_index, dir); } else { - do_powersaver(0, clock_ratio_index, dir); + do_powersaver(0, mults_index, dir); } break; } @@@ -339,10 -341,10 +341,10 @@@ outb(0, 0x22); } else if ((pr != NULL) && pr->flags.bm_control) { /* Enable bus master arbitration */ - acpi_set_register(ACPI_BITREG_ARB_DISABLE, 0); + acpi_write_bit_register(ACPI_BITREG_ARB_DISABLE, 0); } - outb(pic2_mask,0xA1); /* restore mask */ - outb(pic1_mask,0x21); + outb(pic2_mask, 0xA1); /* restore mask */ + outb(pic1_mask, 0x21); local_irq_restore(flags); preempt_enable(); diff --cc drivers/acpi/acpica/tbxface.c index dbca22651504,ab0aff3c7d6a..a88f02bd6c94 --- a/drivers/acpi/acpica/tbxface.c +++ b/drivers/acpi/acpica/tbxface.c @@@ -373,10 -375,11 +373,11 @@@ ACPI_EXPORT_SYMBOL(acpi_unload_table_id * * DESCRIPTION: Finds and verifies an ACPI table. * - *****************************************************************************/ + ******************************************************************************/ acpi_status - acpi_get_table(char *signature, - u32 instance, struct acpi_table_header **out_table) + acpi_get_table_with_size(char *signature, + u32 instance, struct acpi_table_header **out_table, + acpi_size *tbl_size) { u32 i; u32 j; diff --cc drivers/acpi/processor_perflib.c index 215f1bf7d4c1,68fd3d292799..cafb41000f6b --- a/drivers/acpi/processor_perflib.c +++ b/drivers/acpi/processor_perflib.c @@@ -521,22 -513,15 +521,22 @@@ int acpi_processor_preregister_performa if (pr->performance) { retval = -EBUSY; - continue; + goto err_out; } - if (!performance || !percpu_ptr(performance, i)) { + if (!performance || !per_cpu_ptr(performance, i)) { retval = -EINVAL; - continue; + goto err_out; } + } + + /* Call _PSD for all CPUs */ + for_each_possible_cpu(i) { + pr = per_cpu(processors, i); + if (!pr) + continue; - pr->performance = percpu_ptr(performance, i); + pr->performance = per_cpu_ptr(performance, i); cpumask_set_cpu(i, pr->performance->shared_cpu_map); if (acpi_processor_get_psd(pr)) { retval = -EINVAL;