summaryrefslogtreecommitdiff
path: root/include/acpi/processor.h
AgeCommit message (Collapse)Author
2007-11-02ACPI: disable lower idle C-states across suspend/resumeThomas Gleixner
changeset b04e7bdb984e3b7f62fb7f44146a529f88cc7639 from mainline. device_suspend() calls ACPI suspend functions, which seems to have undesired side effects on lower idle C-states. It took me some time to realize that especially the VAIO BIOSes (both Andrews jinxed UP and my elfstruck SMP one) show this effect. I'm quite sure that other bug reports against suspend/resume about turning the system into a brick have the same root cause. After fishing in the dark for quite some time, I realized that removing the ACPI processor module before suspend (this removes the lower C-state functionality) made the problem disappear. Interestingly enough the propability of having a bricked box is influenced by various factors (interrupts, size of the ram image, ...). Even adding a bunch of printks in the wrong places made the problem go away. The previous periodic tick implementation simply pampered over the problem, which explains why the dyntick / clockevents changes made this more prominent. We avoid complex functionality during the boot process and we have to do the same during suspend/resume. It is a similar scenario and equaly fragile. Add suspend / resume functions to the ACPI processor code and disable the lower idle C-states across suspend/resume. Fall back to the default idle implementation (halt) instead. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Andrew Morton <akpm@linux-foundation.org> Cc: Len Brown <lenb@kernel.org> Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Cc: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2007-05-09ACPICA: LindentLen Brown
Signed-off-by: Len Brown <len.brown@intel.com>
2007-02-16[PATCH] ACPI keep track of timer broadcastingThomas Gleixner
This is a preperatory patch for highres/dyntick: - replace the big #ifdef ARCH_APICTIMER_STOPS_ON_C3 hackery by functions - remove the double switch in the power verify function (in the worst case we switched ipi to apic and 20usec later apic to ipi) - keep track of the the state which stops local APIC timer Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> Cc: Len Brown <len.brown@intel.com> Cc: <linux-acpi@vger.kernel.org> Cc: Andi Kleen <ak@suse.de> Cc: john stultz <johnstul@us.ibm.com> Cc: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2006-10-14ACPI: Processor native C-states using MWAITVenkatesh Pallipadi
Intel processors starting with the Core Duo support support processor native C-state using the MWAIT instruction. Refer: Intel Architecture Software Developer's Manual http://www.intel.com/design/Pentium4/manuals/253668.htm Platform firmware exports the support for Native C-state to OS using ACPI _PDC and _CST methods. Refer: Intel Processor Vendor-Specific ACPI: Interface Specification http://www.intel.com/technology/iapc/acpi/downloads/302223.htm With Processor Native C-state, we use 'MWAIT' instruction on the processor to enter different C-states (C1, C2, C3). We won't use the special IO ports to enter C-state and no SMM mode etc required to enter C-state. Overall this will mean better C-state support. One major advantage of using MWAIT for all C-states is, with this and "treat interrupt as break event" feature of MWAIT, we can now get accurate timing for the time spent in C1, C2, .. states. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Len Brown <len.brown@intel.com>
2006-06-28ACPI: C-States: accounting of sleep statesDominik Brodowski
Track the actual time spent in C-States (C2 upwards, we can't determine this for C1), not only the number of invocations. This is especially useful for dynamic ticks / "tickless systems", but is also of interest on normal systems, as any interrupt activity leads to C-States being exited, not only the timer interrupt. The time is being measured in PM timer ticks, so an increase by one equals 279 nanoseconds. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Len Brown <len.brown@intel.com>
2006-06-23Merge branch 'release' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (65 commits) ACPI: suppress power button event on S3 resume ACPI: resolve merge conflict between sem2mutex and processor_perflib.c ACPI: use for_each_possible_cpu() instead of for_each_cpu() ACPI: delete newly added debugging macros in processor_perflib.c ACPI: UP build fix for bugzilla-5737 Enable P-state software coordination via _PDC P-state software coordination for speedstep-centrino P-state software coordination for acpi-cpufreq P-state software coordination for ACPI core ACPI: create acpi_thermal_resume() ACPI: create acpi_fan_suspend()/acpi_fan_resume() ACPI: pass pm_message_t from acpi_device_suspend() to root_suspend() ACPI: create acpi_device_suspend()/acpi_device_resume() ACPI: replace spin_lock_irq with mutex for ec poll mode ACPI: Allow a WAN module enable/disable on a Thinkpad X60. sem2mutex: acpi, acpi_link_lock ACPI: delete unused acpi_bus_drivers_lock sem2mutex: drivers/acpi/processor_perflib.c ACPI add ia64 exports to build acpi_memhotplug as a module ACPI: asus_acpi_init(): propagate correct return value ... Manual resolve of conflicts in: arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c include/acpi/processor.h
2006-04-26Don't include linux/config.h from anywhere else in include/David Woodhouse
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2006-02-09P-state software coordination for ACPI coreVenkatesh Pallipadi
http://bugzilla.kernel.org/show_bug.cgi?id=5737 Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
2006-01-24[ACPI] merge 3549 4320 4485 4588 4980 5483 5651 acpica asus fops pnpacpi ↵Len Brown
branches into release Signed-off-by: Len Brown <len.brown@intel.com>
2006-01-08[ACPI] make two processor functions staticAdrian Bunk
acpi_processor_write_throttling() acpi_processor_write_limit() Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Len Brown <len.brown@intel.com>
2005-12-01[ACPI] Avoid BIOS inflicted crashes by evaluating _PDC only onceVenkatesh Pallipadi
Linux invokes the AML _PDC method (Processor Driver Capabilities) to tell the BIOS what features it can handle. While the ACPI spec says nothing about the OS invoking _PDC multiple times, doing so with changing bits seems to hopelessly confuse the BIOS on multiple platforms up to and including crashing the system. Factor out the _PDC invocation so Linux invokes it only once. http://bugzilla.kernel.org/show_bug.cgi?id=5483 Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
2005-08-05[ACPI] Lindent all ACPI filesLen Brown
Signed-off-by: Len Brown <len.brown@intel.com>
2005-07-12[ACPI] enable C2 and C3 idle power states on SMPVenkatesh Pallipadi
http://bugzilla.kernel.org/show_bug.cgi?id=4401 Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
2005-03-08[ACPI] limit scope of various globals to staticLen Brown
Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Len Brown <len.brown@intel.com>
2005-01-20Merge intel.com:/home/lenb/src/26-stable-devLen Brown
into intel.com:/home/lenb/src/26-latest-dev
2005-01-20[ACPI] Make the bm_activity depend on "jiffies", instead of numbersLen Brown
of the check being called. This means bus mastering activity is assumed if bm_check isn't called; and multiple calls during one jiffy will be |='ed. Signed-off-by: Dominik Brodowski <linux@brodo.de> Signed-off-by: Len Brown <len.brown@intel.com>
2005-01-09[PATCH] Fix gcc 4 compilation in ACPIAndi Kleen
extern declaration of static Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2004-12-21[ACPI] Consolidate code in processor_idle().Len Brown
Only symbols "exported" are _init(), _exit() and _cst_has_changed() Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.de> Signed-off-by: Len Brown <len.brown@intel.com>
2004-12-21[ACPI] Handle _CST change notificationsLen Brown
It is necessary to unload the processor idle handle for a short period of time to avoid for nasty races -- and we don't want to grab too many locks so that the idle handler continues to be speedy. http://bugzilla.kernel.org/show_bug.cgi?id=1958 Signed-off-by: Bruno Ducrot <ducrot@poupinou.org> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.de> Signed-off-by: Len Brown <len.brown@intel.com>
2004-12-21[ACPI] Add _CST parsingLen Brown
http://bugzilla.kernel.org/show_bug.cgi?id=1958 Signed-off-by: Bruno Ducrot <ducrot@poupinou.org> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.de> Signed-off-by: Len Brown <len.brown@intel.com>
2004-12-21[ACPI] make the c-state policy decisions of demotion and promotionLen Brown
independent of the assumption "one state per type." make the state a pointer inside struct acpi_processor_cx_policy. make max_cstate aware of c-state types instead of c-state number. http://bugzilla.kernel.org/show_bug.cgi?id=1958 Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.de> Signed-off-by: Len Brown <len.brown@intel.com>
2004-12-21[ACPI] make power.state a pointerLen Brown
http://bugzilla.kernel.org/show_bug.cgi?id=1958 Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.de> Signed-off-by: Len Brown <len.brown@intel.com>
2004-12-21[ACPI] Split up the extraction of information from the FADTLen Brown
and the pblk_address (acpi_processor_get_power_info_fadt()) and the validation whether the state is indeed available (acpi_processor_power_verify()). http://bugzilla.kernel.org/show_bug.cgi?id=1958 Signed-off-by: Bruno Ducrot <ducrot@poupinou.org> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.de> Signed-off-by: Len Brown <len.brown@intel.com>
2004-12-21[ACPI] Differentiate between C-States and C-state type.Len Brown
http://bugzilla.kernel.org/show_bug.cgi?id=1958 Signed-off-by: Bruno Ducrot <ducrot@poupinou.org> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.de> Signed-off-by: Len Brown <len.brown@intel.com>
2004-12-21[ACPI] Split the ACPI Processor passive cooling code into a different fileLen Brown
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.de> Signed-off-by: Len Brown <len.brown@intel.com>
2004-12-21[ACPI] Split the ACPI Processor C-States handling into a different fileLen Brown
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.de> Signed-off-by: Len Brown <len.brown@intel.com>
2004-12-21[ACPI] Split the ACPI Processor T-States handling into a different fileLen Brown
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.de> Signed-off-by: Len Brown <len.brown@intel.com>
2004-12-21[ACPI] Split the ACPI Processor P-States library into a different fileLen Brown
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.de> Signed-off-by: Len Brown <len.brown@intel.com>
2004-12-01Merge intel.com:/home/lenb/src/26-stable-devLen Brown
into intel.com:/home/lenb/src/26-latest-dev
2004-12-01[ACPI] update C-state limiting patchLen Brown
Now "max_cstate=" instead of "acpi_cstate_limit=" Delete redundant static cstate flags .c2 and .c3 http://bugme.osdl.org/show_bug.cgi?id=3549 For static processor driver, boot cmdline: processor.max_cstate=2 For processor module, /etc/modprobe.conf: options processor max_cstate=2 or # modprobe processor max_cstate=2 From kernel or kernel module: #include <linux/acpi.h> acpi_set_cstate_limit(2); Suggested-by: Pavel Machek Signed-off-by: Len Brown <len.brown@intel.com>
2004-10-08[ACPI] Notify SMM of cpufreqLen Brown
http://marc.theaimsgroup.com/?l=acpi4linux&m=109428989121089&w=2 Signed-off-by: Dominik Brodowski <linux@brodo.de>
2004-01-30[ACPI] make # of performance states dynamicDominik Brodowski
from Dominik Brodowski
2004-01-30[ACPI] add _PDC supportDominik Brodowski
Add support for _PDC to the ACPI processor "Performance States library" (perflib). If this field is empty, a bogus entry is passed to the _PDC method so that the default (io) access is returned again. This patch is partly based on David Moore's patch to arch/i386/kernel/cpu/cpufreq/acpi.c, sent to the cpufreq mailing list on June 24th, 2003.
2004-01-30[ACPI] Abstract the registration method between low-level driversDominik Brodowski
and the ACPI Processor P-States driver. from Dominik Brodowski
2004-01-30[ACPI] Move the /proc/acpi/processor/./performance output toDominik Brodowski
drivers/acpi/processor.c -- it's the same for all lowlevel drivers. By doing so, the lowlevel drivers no longer need to have access to struct acpi_processor. from Dominik Brodowski
2004-01-28[ACPI] acpi-cpufreq fixups from Dominik BrodowskiDominik Brodowski
- remove unnecessary usage of flags.performance - remove double check of _PPC in acpi-cpufreq driver as it's handled in drivers/acpi/processor.c already - remove unneeded EXPORT_SYMBOL - allocation of memory only for probed CPUs - add unregistration function to the core - fix OOPS when PST has core_frequency values of zero - fix cpufreq_get() output - fix /proc/acpi/processor/*/performance write support [deprecated]
2004-01-28[ACPI] update _PPC handling -- from Dominik BrodowskiDominik Brodowski
updates the _PPC handling. It is handled as a CPUfreq policy notifier which adjusts the maximum CPU speed according to the current platform limit.
2004-01-15[ACPI] change hard-coded IO width to programmable widthLen Brown
http://bugzilla.kernel.org/show_bug.cgi?id=1349 from David Shaohua Li and Venatesh Pallipadi
2003-01-19CPUFREQ: Break out ACPI Perf code into its own module, under cpufreqAndy Grover
(Dominik Brodowski)