linux/drivers/acpi/processor_idle.c
<<
n> v3/spa v3/form v3a n> v href="../linux+v3.8i1l/drivers/acpi/processor_idle.c">n> v3img src="../.static/gfx/right.png" alt=">>">n>3/spa n>3spa class="lxr_search">n> n> v3input typionhidden" namionnavtarget" /option">n> v3input typiontext" namionsearch" idonsearch">n> v3butt16Search3spa class="lxr_prefs" v3a href="+prefs?return=drivers/acpi/processor_idle.c"n> v onclick="return ajax_prefs();">n> vPrefs v3/a>n>3/spa v v3/div v v3form ac16" ="ajax+*" method="post" onsubmit="return false;">n>3input typionhidden" namionajax_lookup" idonajax_lookup" /option">n v v3/form n v v3div class="headingbott1m">
3div idonfile_contents"
v v13/a>3spa	 class="comment">/*3/spa	  v v23/a>3spa	 class="comment"> * processor_idle - idle state submodule to the ACPI processor driver3/spa	  v v33/a>3spa	 class="comment"> *3/spa	  v v43/a>3spa	 class="comment"> *  Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>3/spa	  v v53/a>3spa	 class="comment"> *  Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>3/spa	  v v63/a>3spa	 class="comment"> *  Copyright (C) 2004, 2005 Dominik Brodowski <linux@brodo.de>3/spa	  v v73/a>3spa	 class="comment"> *  Copyright (C) 2004  Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>3/spa	  v v83/a>3spa	 class="comment"> *                      - Added processor hotplug support3/spa	  v v93/a>3spa	 class="comment"> *  Copyright (C) 2005  Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>3/spa	  v .19.a>3spa	 class="comment"> *                      - Added support for C3 on SMP3/spa	  v 113/a>3spa	 class="comment"> *3/spa	  v 123/a>3spa	 class="comment"> * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3/spa	  v 133/a>3spa	 class="comment"> *3/spa	  v 143/a>3spa	 class="comment"> *  This program is free software; you ca	 redistribute it and/or modify3/spa	  v 153/a>3spa	 class="comment"> *  it under the terms of the GNU General Public License as published by3/spa	  v 163/a>3spa	 class="comment"> *  the Free Software Founda16"	; either vers.16<2 of the License, or (at3/spa	  v 173/a>3spa	 class="comment"> *  your 4.16"	) any later vers.16.3/spa	  v 183/a>3spa	 class="comment"> *3/spa	  v 193/a>3spa	 class="comment"> *  This program is distributed in the hope that it will be useful, but3/spa	  v 219.a>3spa	 class="comment"> *  WITHOUT ANY WARRANTY; without even the implied warranty of3/spa	  v 213/a>3spa	 class="comment"> *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU3/spa	  v 223/a>3spa	 class="comment"> *  General Public License for more details.3/spa	  v 233/a>3spa	 class="comment"> *3/spa	  v 243/a>3spa	 class="comment"> *  You should have received a copy of the GNU General Public License along3/spa	  v 253/a>3spa	 class="comment"> *  with this program; if not, write to the Free Software Founda16"	, Inc.,3/spa	  v 263/a>3spa	 class="comment"> *  59 Temple Place, Suite 330, Bost"	, MA 02111-1307 USA.3/spa	  v 273/a>3spa	 class="comment"> *3/spa	  v 283/a>3spa	 class="comment"> * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3/spa	  v 293/a>3spa	 class="comment"> */3/spa	  v 319.a> v 313/a>#include <linux/kernel.h3/a>> v 323/a>#include <linux/module.h3/a>> v 333/a>#include <linux/init.h3/a>> v 343/a>#include <linux/cpufreq.h3/a>> v 353/a>#include <linux/slab.h3/a>> v 363/a>#include <linux/acpi.h3/a>> v 373/a>#include <linux/dmi.h3/a>> v 383/a>#include <linux/moduleparam.h3/a>> v 393/a>#include <linux/sched.h3/a>>        3spa	 class="comment">/* need_resched() */3/spa	  v 403/a>#include <linux/pm_qos.h3/a>> v 413/a>#include <linux/clockchips.h3/a>> v 423/a>#include <linux/cpuidle.h3/a>> v 433/a>#include <linux/irqflags.h3/a>> v 449.a> v 453/a>3spa	 class="comment">/*3/spa	  v 463/a>3spa	 class="comment"> * Include the apic definit6"	s for x86 to have the APIC timer related defines3/spa	  v 473/a>3spa	 class="comment"> * available also for UP (on SMP it gets magically included via linux/smp.h).3/spa	  v 483/a>3spa	 class="comment"> * asm/acpi.h is not a	 4.16"	, as it would require more include magic. Also3/spa	  v 493/a>3spa	 class="comment"> * crea16ng a	 empty asm-ia64/apic.h would just trade pest vs. cholera.3/spa	  v 519.a>3spa	 class="comment"> */3/spa	  v 513/a>#ifdefv3a href="+code=CONFIG_X86" class="sref">CONFIG_X869.a> v 523/a>#include <asm/apic.h3/a>> v 533/a>#endif v 549.a> v 553/a>#include <asm/io.h3/a>> v 563/a>#include <asm/uaccess.h3/a>> v 579.a> v 583/a>#include <acpi/acpi_bus.h3/a>> v 593/a>#include <acpi/processor.h3/a>> v 603/a>#include <asm/processor.h3/a>> v 619.a> v 623/a>#definev3a href="+code=PREFIX" class="sref">PREFIX3/a> 3spa	 class="string">"ACPI: "3/spa	  v 639.a> v 643/a>#definev3a href="+code=ACPI_PROCESSOR_CLASS" class="sref">ACPI_PROCESSOR_CLASS3/a>            3spa	 class="string">"processor"3/spa	  v 653/a>#definev3a href="+code=_COMPONENT" class="sref">_COMPONENT3/a>             v3a href="+code=ACPI_PROCESSOR_COMPONENT" class="sref">ACPI_PROCESSOR_COMPONENT9.a> v 663/a>3a href="+code=ACPI_MODULE_NAME" class="sref">ACPI_MODULE_NAME3/a>(3spa	 class="string">"processor_idle"3/spa	 ); v 673/a>#definev3a href="+code=PM_TIMER_TICK_NS" class="sref">PM_TIMER_TICK_NS3/a>             v  (1000000000ULL/3a href="+code=PM_TIMER_FREQUENCY" class="sref">PM_TIMER_FREQUENCY3/a>) v 683/a>#definev3a href="+code=C2_OVERHEAD" class="sref">C2_OVERHEAD3/a>             v       1       3spa	 class="comment">/* 1us */3/spa	  v 693/a>#definev3a href="+code=C3_OVERHEAD" class="sref">C3_OVERHEAD3/a>             v       1       3spa	 class="comment">/* 1us */3/spa	  v 703/a>#definev3a href="+code=PM_TIMER_TICKS_TO_US" class="sref">PM_TIMER_TICKS_TO_US3/a>(3a href="+code=p" class="sref">p3/a>)      v  (((3a href="+code=p" class="sref">p3/a>) * 1000)/(3a href="+code=PM_TIMER_FREQUENCY" class="sref">PM_TIMER_FREQUENCY3/a>/1000)) v 719.a> v 723/a>static unsigned intv3a href="+code=max_cstate" class="sref">max_cstate3/a> 3a href="+code=__read_mostly" class="sref">__read_mostly3/a> =v3a href="+code=ACPI_PROCESSOR_MAX_POWER" class="sref">ACPI_PROCESSOR_MAX_POWER3/a>; v 733/a>3a href="+code=module_param" class="sref">module_param3/a>(3a href="+code=max_cstate" class="sref">max_cstate3/a>,v3a href="+code=uint" class="sref">uint3/a>,v0000); v 743/a>static unsigned intv3a href="+code=nocst" class="sref">nocst3/a> 3a href="+code=__read_mostly" class="sref">__read_mostly3/a>; v 753/a>3a href="+code=module_param" class="sref">module_param3/a>(3a href="+code=nocst" class="sref">nocst3/a>,v3a href="+code=uint" class="sref">uint3/a>,v0000); v 763/a>static intv3a href="+code=bm_check_disable" class="sref">bm_check_disable3/a> 3a href="+code=__read_mostly" class="sref">__read_mostly3/a>; v 773/a>3a href="+code=module_param" class="sref">module_param3/a>(3a href="+code=bm_check_disable" class="sref">bm_check_disable3/a>,v3a href="+code=uint" class="sref">uint3/a>,v0000); v 789.a> v 793/a>static unsigned intv3a href="+code=latency_factor" class="sref">latency_factor3/a> 3a href="+code=__read_mostly" class="sref">__read_mostly3/a> =v2; v 803/a>3a href="+code=module_param" class="sref">module_param3/a>(3a href="+code=latency_factor" class="sref">latency_factor3/a>,v3a href="+code=uint" class="sref">uint3/a>,v0644); v 819.a> v 823/a>static 3a href="+code=DEFINE_PER_CPU" class="sref">DEFINE_PER_CPU3/a>(structv3a href="+code=cpuidle_device" class="sref">cpuidle_device3/a> *,v3a href="+code=acpi_cpuidle_device" class="sref">acpi_cpuidle_device3/a>); v 839.a> v 843/a>static intv3a href="+code=disabled_by_idle_boot_param" class="sref">disabled_by_idle_boot_param3/a>(void) v 853/a>{ v 869.a>     v  return 3a href="+code=boot_4.16"	_idle_override" class="sref">boot_4.16"	_idle_override3/a> ==v3a href="+code=IDLE_POLL" class="sref">IDLE_POLL3/a> || v 873/a>             v  3a href="+code=boot_4.16"	_idle_override" class="sref">boot_4.16"	_idle_override3/a> ==v3a href="+code=IDLE_FORCE_MWAIT" class="sref">IDLE_FORCE_MWAIT3/a> || v 883/a>             v  3a href="+code=boot_4.16"	_idle_override" class="sref">boot_4.16"	_idle_override3/a> ==v3a href="+code=IDLE_HALT" class="sref">IDLE_HALT3/a>; v 893/a>} v 919.a> v 913/a>3spa	 class="comment">/*3/spa	  v 923/a>3spa	 class="comment"> * IBM ThinkPad R40e crashes mysteriously when go6ng into C2 or C3.3/spa	  v 933/a>3spa	 class="comment"> * For now disable this. Probably a bug somewhere else.3/spa	  v 943/a>3spa	 class="comment"> *3/spa	  v 953/a>3spa	 class="comment"> * To skip this limit, boot/load with a large max_cstate limit.3/spa	  v 963/a>3spa	 class="comment"> */3/spa	  v 973/a>static intv3a href="+code=set_max_cstate" class="sref">set_max_cstate3/a>(const structv3a href="+code=dmi_system_id" class="sref">dmi_system_id3/a> *3a href="+code=id" class="sref">id3/a>) v 983/a>{ v 993/a>        if (3a href="+code=max_cstate" class="sref">max_cstate3/a> > 3a href="+code=ACPI_PROCESSOR_MAX_POWER" class="sref">ACPI_PROCESSOR_MAX_POWER3/a>) v1003/a>             v  return 0; v1019.a> v1023/a>        3a href="+code=printk" class="sref">printk3/a>(3a href="+code=KERN_NOTICE" class="sref">KERN_NOTICE3/a> 3a href="+code=PREFIX" class="sref">PREFIX3/a> 3spa	 class="string">"%s detected - limit6ng to C%ld max_cstate."3/spa	  v1033/a>             v 3spa	 class="string">" Override with \"processor.max_cstate=%d\"\n"3/spa	 ,v3a href="+code=id" class="sref">id3/a>->3a href="+code=ident" class="sref">ident3/a>, v1043/a>             v (long)3a href="+code=id" class="sref">id3/a>->3a href="+code=driver_data" class="sref">driver_data3/a>,v3a href="+code=ACPI_PROCESSOR_MAX_POWER" class="sref">ACPI_PROCESSOR_MAX_POWER3/a> + 1); v1059.a> v1063/a>        3a href="+code=max_cstate" class="sref">max_cstate3/a> = (long)3a href="+code=id" class="sref">id3/a>->3a href="+code=driver_data" class="sref">driver_data3/a>; v1079.a> v1083/a>        return 0; v1093/a>} v1119.a> v1113/a>3spa	 class="comment">/* Actually this shouldn't be __cpuinitdata, would be better to fix the3/spa	  v1123/a>3spa	 class="comment">   callers to only run once -AK */3/spa	  v1133/a>static structv3a href="+code=dmi_system_id" class="sref">dmi_system_id3/a> 3a href="+code=__cpuinitdata" class="sref">__cpuinitdata3/a> 3a href="+code=processor_power_dmi_table" class="sref">processor_power_dmi_table3/a>[] = { v1143/a>        {v3a href="+code=set_max_cstate" class="sref">set_max_cstate3/a>, 3spa	 class="string">"Clevo 5600D"3/spa	 ,v{ v1153/a>       v  3a href="+code=DMI_MATCH" class="sref">DMI_MATCH3/a>(3a href="+code=DMI_BIOS_VENDOR" class="sref">DMI_BIOS_VENDOR3/a>,3spa	 class="string">"Phoenix Technologies LTD"3/spa	 ), v1163/a>       v  3a href="+code=DMI_MATCH" class="sref">DMI_MATCH3/a>(3a href="+code=DMI_BIOS_VERSION" class="sref">DMI_BIOS_VERSION3/a>,3spa	 class="string">"SHE845M0.86C.0013.D.0302131307"3/spa	 )}, v1173/a>         (void *)2}, v1183/a>        {v3a href="+code=set_max_cstate" class="sref">set_max_cstate3/a>, 3spa	 class="string">"Pavil.16v1193/a>       v  3a href="+code=DMI_MATCH" class="sref">DMI_MATCH3/a>(3a href="+code=DMI_SYS_VENDOR" class="sref">DMI_SYS_VENDOR3/a>, 3spa	 class="string">"Hewlett-Packard"3/spa	 ), v1203/a>       v  3a href="+code=DMI_MATCH" class="sref">DMI_MATCH3/a>(3a href="+code=DMI_PRODUCT_NAME" class="sref">DMI_PRODUCT_NAME3/a>,3spa	 class="string">"Pavil.16v1213/a>         (void *)1}, v1223/a>        {v3a href="+code=set_max_cstate" class="sref">set_max_cstate3/a>, 3spa	 class="string">"Asus L8400B"3/spa	 ,v{ v1233/a>       v  3a href="+code=DMI_MATCH" class="sref">DMI_MATCH3/a>(3a href="+code=DMI_SYS_VENDOR" class="sref">DMI_SYS_VENDOR3/a>, 3spa	 class="string">"ASUSTeK Computer Inc."3/spa	 ), v1243/a>       v  3a href="+code=DMI_MATCH" class="sref">DMI_MATCH3/a>(3a href="+code=DMI_PRODUCT_NAME" class="sref">DMI_PRODUCT_NAME3/a>,3spa	 class="string">"L8400B series Notebook PC"3/spa	 )}, v1253/a>         (void *)1}, v1263/a>       v{}, v1273/a>}; v1289.a> v1293/a> v1319.a>3spa	 class="comment">/*3/spa	  v1313/a>3spa	 class="comment"> * Callers should disable interrupts before the call and enable3/spa	  v1323/a>3spa	 class="comment"> * interrupts after return.3/spa	  v1333/a>3spa	 class="comment"> */3/spa	  v1343/a>static void 3a href="+code=acpi_safe_halt" class="sref">acpi_safe_halt3/a>(void) v1353/a>{ v1363/a>        3a href="+code=current_thread_info" class="sref">current_thread_info3/a>()->3a href="+code=status" class="sref">status3/a> &= ~3a href="+code=TS_POLLING" class="sref">TS_POLLING3/a>; v1373/a>        3spa	 class="comment">/*3/spa	  v1383/a>3spa	 class="comment">         * TS_POLLING-cleared state must be visible before we3/spa	  v1393/a>3spa	 class="comment">         * test NEED_RESCHED:3/spa	  v1419.a>3spa	 class="comment">         */3/spa	  v1413/a>        3a href="+code=smp_mb" class="sref">smp_mb3/a>(); v1423/a>        if (!3a href="+code=need_resched" class="sref">need_resched3/a>())v{ v1433/a>             v  3a href="+code=safe_halt" class="sref">safe_halt3/a>(); v1443/a>             v v3a href="+code=local_irq_disable" class="sref">local_irq_disable3/a>(); v1453/a>        } v1463/a>        3a href="+code=current_thread_info" class="sref">current_thread_info3/a>()->3a href="+code=status" class="sref">status3/a> |=v3a href="+code=TS_POLLING" class="sref">TS_POLLING3/a>; v1473/a>} v1489.a> v1493/a>#ifdefv3a href="+code=ARCH_APICTIMER_STOPS_ON_C3" class="sref">ARCH_APICTIMER_STOPS_ON_C39.a> v1519.a> v1513/a>3spa	 class="comment">/*3/spa	  v1523/a>3spa	 class="comment"> * Some BIOS implementat6"	s switch to C3 in the published C2 state.3/spa	  v1533/a>3spa	 class="comment"> * This seems to be a common problem on AMD boxen, but other vendors3/spa	  v1543/a>3spa	 class="comment"> * are affected too. We pick the most conservat6ve approach: we assume3/spa	  v1553/a>3spa	 class="comment"> * that the local APIC stops in both C2 and C3.3/spa	  v1563/a>3spa	 class="comment"> */3/spa	  v1573/a>static void 3a href="+code=lapic_timer_check_state" class="sref">lapic_timer_check_state3/a>(intv3a href="+code=state" class="sref">state3/a>, structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *3a href="+code=pr" class="sref">pr3/a>, v1583/a>             v                     structv3a href="+code=acpi_processor_cx" class="sref">acpi_processor_cx3/a> *3a href="+code=cx" class="sref">cx3/a>) v1593/a>{ v1603/a>       vstructv3a href="+code=acpi_processor_power" class="sref">acpi_processor_power3/a> *3a href="+code=pwr" class="sref">pwr3/a> = &3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>; v1613/a>        3a href="+code=u8" class="sref">u83/a> 3a href="+code=typi" class="sref">typi3/a> = 3a href="+code=local_apic_timer_c2_ok" class="sref">local_apic_timer_c2_ok3/a> ?v3a href="+code=ACPI_STATE_C3" class="sref">ACPI_STATE_C33/a> :v3a href="+code=ACPI_STATE_C2" class="sref">ACPI_STATE_C23/a>; v1623/a> v1633/a>        if (3a href="+code=cpu_has" class="sref">cpu_has3/a>(&3a href="+code=cpu_data" class="sref">cpu_data3/a>(3a href="+code=pr" class="sref">pr3/a>->3a href="+code=id" class="sref">id3/a>),v3a href="+code=X86_FEATURE_ARAT" class="sref">X86_FEATURE_ARAT3/a>)) v1643/a>             v vreturn; v1659.a> v1663/a>        if (3a href="+code=amd_e400_c1e_detected" class="sref">amd_e400_c1e_detected3/a>) v1673/a>             v  3a href="+code=typi" class="sref">typi3/a> = 3a href="+code=ACPI_STATE_C1" class="sref">ACPI_STATE_C13/a>; v1689.a> v1693/a>       v3spa	 class="comment">/*3/spa	  v1719.a>3spa	 class="comment">         * Check, if one of the previous states already marked the lapic3/spa	  v1713/a>3spa	 class="comment">         * unstable3/spa	  v1723/a>3spa	 class="comment">         */3/spa	  v1733/a>        if (3a href="+code=pwr" class="sref">pwr3/a>->3a href="+code=timer_broadcast_on_state" class="sref">timer_broadcast_on_state3/a> < 3a href="+code=state" class="sref">state3/a>) v1743/a>             v vreturn; v1759.a> v1763/a>        if (3a href="+code=cx" class="sref">cx3/a>->3a href="+code=typi" class="sref">typi3/a> >= 3a href="+code=typi" class="sref">typi3/a>) v1773/a>             v  3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=timer_broadcast_on_state" class="sref">timer_broadcast_on_state3/a> = 3a href="+code=state" class="sref">state3/a>; v1789.a>} v1793/a> v1803/a>static void 3a href="+code=__lapic_timer_propagate_broadcast" class="sref">__lapic_timer_propagate_broadcast3/a>(void *3a href="+code=arg" class="sref">arg3/a>) v1819.a>{ v1823/a>        structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *3a href="+code=pr" class="sref">pr3/a> = (structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *)v3a href="+code=arg" class="sref">arg3/a>; v1833/a>        unsigned longv3a href="+code=reason" class="sref">reason3/a>; v1849.a> v1853/a>        3a href="+code=reason" class="sref">reason3/a> = 3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=timer_broadcast_on_state" class="sref">timer_broadcast_on_state3/a> < 3a href="+code=INT_MAX" class="sref">INT_MAX3/a> ? v1863/a>             v  3a href="+code=CLOCK_EVT_NOTIFY_BROADCAST_ON" class="sref">CLOCK_EVT_NOTIFY_BROADCAST_ON3/a> :v3a href="+code=CLOCK_EVT_NOTIFY_BROADCAST_OFF" class="sref">CLOCK_EVT_NOTIFY_BROADCAST_OFF3/a>; v1879.a> v1883/a>        3a href="+code=clockevents_notify" class="sref">clockevents_notify3/a>(3a href="+code=reason" class="sref">reason3/a>, &3a href="+code=pr" class="sref">pr3/a>->3a href="+code=id" class="sref">id3/a>); v1893/a>} v1919.a> v1913/a>static void 3a href="+code=lapic_timer_propagate_broadcast" class="sref">lapic_timer_propagate_broadcast3/a>(structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *3a href="+code=pr" class="sref">pr3/a>) v1923/a>{ v1933/a>        3a href="+code=smp_call_func16"	_single" class="sref">smp_call_func16"	_single3/a>(3a href="+code=pr" class="sref">pr3/a>->3a href="+code=id" class="sref">id3/a>,v3a href="+code=__lapic_timer_propagate_broadcast" class="sref">__lapic_timer_propagate_broadcast3/a>, v1943/a>             v vvvvvvvvvvvvvvvvvv(void *)3a href="+code=pr" class="sref">pr3/a>, 1); v1953/a>} v1969.a> v1973/a>3spa	 class="comment">/* Power(C) State timer broadcast control */3/spa	  v1983/a>static void 3a href="+code=lapic_timer_state_broadcast" class="sref">lapic_timer_state_broadcast3/a>(structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *3a href="+code=pr" class="sref">pr3/a>, v1993/a>             v vvvvvvvvvvvvvvvvvv      structv3a href="+code=acpi_processor_cx" class="sref">acpi_processor_cx3/a> *3a href="+code=cx" class="sref">cx3/a>, v2003/a>             v                         intv3a href="+code=broadcast" class="sref">broadcast3/a>) v2019.a>{ v2023/a>        intv3a href="+code=state" class="sref">state3/a> = 3a href="+code=cx" class="sref">cx3/a> - 3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>; v2039.a> v2043/a>        if (3a href="+code=state" class="sref">state3/a> >= 3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=timer_broadcast_on_state" class="sref">timer_broadcast_on_state3/a>)v{ v2053/a>             v  unsigned longv3a href="+code=reason" class="sref">reason3/a>; v2069.a> v2073/a>             v  3a href="+code=reason" class="sref">reason3/a> = 3a href="+code=broadcast" class="sref">broadcast3/a> ?  3a href="+code=CLOCK_EVT_NOTIFY_BROADCAST_ENTER" class="sref">CLOCK_EVT_NOTIFY_BROADCAST_ENTER3/a> : v2083/a>             v          3a href="+code=CLOCK_EVT_NOTIFY_BROADCAST_EXIT" class="sref">CLOCK_EVT_NOTIFY_BROADCAST_EXIT3/a>; v2093/a>             v v3a href="+code=clockevents_notify" class="sref">clockevents_notify3/a>(3a href="+code=reason" class="sref">reason3/a>, &3a href="+code=pr" class="sref">pr3/a>->3a href="+code=id" class="sref">id3/a>); v2103/a>        } v2113/a>} v2123/a> v2133/a>#else v2149.a> v2153/a>static void 3a href="+code=lapic_timer_check_state" class="sref">lapic_timer_check_state3/a>(intv3a href="+code=state" class="sref">state3/a>, structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *3a href="+code=pr" class="sref">pr3/a>, v2163/a>       v                           structv3a href="+code=acpi_processor_cx" class="sref">acpi_processor_cx3/a> *3a href="+code=cstate" class="sref">cstate3/a>)v{ } v2173/a>static void 3a href="+code=lapic_timer_propagate_broadcast" class="sref">lapic_timer_propagate_broadcast3/a>(structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *3a href="+code=pr" class="sref">pr3/a>)v{ } v2183/a>static void 3a href="+code=lapic_timer_state_broadcast" class="sref">lapic_timer_state_broadcast3/a>(structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *3a href="+code=pr" class="sref">pr3/a>, v2193/a>       v   v                           structv3a href="+code=acpi_processor_cx" class="sref">acpi_processor_cx3/a> *3a href="+code=cx" class="sref">cx3/a>, v2203/a>       v                               intv3a href="+code=broadcast" class="sref">broadcast3/a>) v2219.a>{ v2223/a>} v2239.a> v2243/a>#endif v2259.a> v2263/a>static 3a href="+code=u32" class="sref">u323/a> 3a href="+code=saved_bm_rld" class="sref">saved_bm_rld3/a>; v2279.a> v2283/a>static void 3a href="+code=acpi_idle_bm_rld_save" class="sref">acpi_idle_bm_rld_save3/a>(void) v2293/a>{ v2303/a>       v3a href="+code=acpi_read_bit_register" class="sref">acpi_read_bit_register3/a>(3a href="+code=ACPI_BITREG_BUS_MASTER_RLD" class="sref">ACPI_BITREG_BUS_MASTER_RLD3/a>, &3a href="+code=saved_bm_rld" class="sref">saved_bm_rld3/a>); v2313/a>} v2323/a>static void 3a href="+code=acpi_idle_bm_rld_restore" class="sref">acpi_idle_bm_rld_restore3/a>(void) v2333/a>{ v2343/a>       v3a href="+code=u32" class="sref">u323/a> 3a href="+code=resumed_bm_rld" class="sref">resumed_bm_rld3/a>; v2359.a> v2363/a>        3a href="+code=acpi_read_bit_register" class="sref">acpi_read_bit_register3/a>(3a href="+code=ACPI_BITREG_BUS_MASTER_RLD" class="sref">ACPI_BITREG_BUS_MASTER_RLD3/a>, &3a href="+code=resumed_bm_rld" class="sref">resumed_bm_rld3/a>); v2379.a> v2383/a>        if (3a href="+code=resumed_bm_rld" class="sref">resumed_bm_rld3/a> != 3a href="+code=saved_bm_rld" class="sref">saved_bm_rld3/a>) v2393/a>             v v3a href="+code=acpi_write_bit_register" class="sref">acpi_write_bit_register3/a>(3a href="+code=ACPI_BITREG_BUS_MASTER_RLD" class="sref">ACPI_BITREG_BUS_MASTER_RLD3/a>, 3a href="+code=saved_bm_rld" class="sref">saved_bm_rld3/a>); v2419.a>} v2419.a> v2423/a>intv3a href="+code=acpi_processor_suspend" class="sref">acpi_processor_suspend3/a>(structv3a href="+code=device" class="sref">device3/a> *3a href="+code=dev" class="sref">dev3/a>) v2433/a>{ v2443/a>       v3a href="+code=acpi_idle_bm_rld_save" class="sref">acpi_idle_bm_rld_save3/a>(); v2453/a>        return 0; v2463/a>} v2479.a> v2489.a>intv3a href="+code=acpi_processor_resume" class="sref">acpi_processor_resume3/a>(structv3a href="+code=device" class="sref">device3/a> *3a href="+code=dev" class="sref">dev3/a>) v2493/a>{ v2503/a>       v3a href="+code=acpi_idle_bm_rld_restore" class="sref">acpi_idle_bm_rld_restore3/a>(); v2513/a>        return 0; v2523/a>} v2539.a> v2543/a>#ifv3a href="+code=defined" class="sref">defined3/a>(3a href="+code=CONFIG_X86" class="sref">CONFIG_X863/a>) v2553/a>static void 3a href="+code=tsc_check_state" class="sref">tsc_check_state3/a>(intv3a href="+code=state" class="sref">state3/a>) v2563/a>{ v2573/a>        switch (3a href="+code=boot_cpu_data" class="sref">boot_cpu_data3/a>.3a href="+code=x86_vendor" class="sref">x86_vendor3/a>)v{ v2583/a>        casev3a href="+code=X86_VENDOR_AMD" class="sref">X86_VENDOR_AMD3/a>: v2593/a>        casev3a href="+code=X86_VENDOR_INTEL" class="sref">X86_VENDOR_INTEL3/a>: v2603/a>       v        3spa	 class="comment">/*3/spa	  v2613/a>3spa	 class="comment">                 * AMD Fam10h TSC will tick in all3/spa	  v2623/a>3spa	 class="comment">                 * C/P/S0/S1 states when this bit is set.3/spa	  v2633/a>3spa	 class="comment">                 */3/spa	  v2643/a>             v vif (3a href="+code=boot_cpu_has" class="sref">boot_cpu_has3/a>(3a href="+code=X86_FEATURE_NONSTOP_TSC" class="sref">X86_FEATURE_NONSTOP_TSC3/a>)) v2653/a>             v          return; v2669.a> v2673/a>             v  3spa	 class="comment">/*FALL THROUGH*/3/spa	  v2683/a>        default: v2693/a>             v v3spa	 class="comment">/* TSC could halt in idle, so notify users */3/spa	  v2703/a>       v        if (3a href="+code=state" class="sref">state3/a> > 3a href="+code=ACPI_STATE_C1" class="sref">ACPI_STATE_C13/a>) v2713/a>             v          3a href="+code=mark_tsc_unstable" class="sref">mark_tsc_unstable3/a>(3spa	 class="string">"TSC halts in idle"3/spa	 ); v2723/a>        } v2733/a>} v2743/a>#else v2753/a>static void 3a href="+code=tsc_check_state" class="sref">tsc_check_state3/a>(intv3a href="+code=state" class="sref">state3/a>) { return; } v2763/a>#endif v2779.a> v2783/a>static intv3a href="+code=acpi_processor_get_power_info_fadt" class="sref">acpi_processor_get_power_info_fadt3/a>(structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *3a href="+code=pr" class="sref">pr3/a>) v2793/a>{ v2819.a> v2813/a>        if (!3a href="+code=pr" class="sref">pr3/a>) v2823/a>                return -3a href="+code=EINVAL" class="sref">EINVAL3/a>; v2839.a> v2843/a>        if (!3a href="+code=pr" class="sref">pr3/a>->3a href="+code=pblk" class="sref">pblk3/a>) v2853/a>             v  return -3a href="+code=ENODEV" class="sref">ENODEV3/a>; v2869.a> v2873/a>        3spa	 class="comment">/* if info is obtained from pblk/fadt, typi equals state */3/spa	  v2883/a>        3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C2" class="sref">ACPI_STATE_C23/a>].3a href="+code=typi" class="sref">typi3/a> = 3a href="+code=ACPI_STATE_C2" class="sref">ACPI_STATE_C23/a>; v2893/a>        3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C3" class="sref">ACPI_STATE_C33/a>].3a href="+code=typi" class="sref">typi3/a> = 3a href="+code=ACPI_STATE_C3" class="sref">ACPI_STATE_C33/a>; v2919.a> v2913/a>#ifndefv3a href="+code=CONFIG_HOTPLUG_CPU" class="sref">CONFIG_HOTPLUG_CPU9.a> v2923/a>        3spa	 class="comment">/*3/spa	  v2933/a>3spa	 class="comment">         * Check for P_LVL2_UP flag before entering C2 and above on3/spa	  v2943/a>3spa	 class="comment">         * a	 SMP system.3/spa	  v2953/a>3spa	 class="comment">         */3/spa	  v2963/a>        if ((3a href="+code=num_online_cpus" class="sref">num_online_cpus3/a>() > 1) && v2973/a>            !(3a href="+code=acpi_gbl_FADT" class="sref">acpi_gbl_FADT3/a>.3a href="+code=flags" class="sref">flags3/a> & 3a href="+code=ACPI_FADT_C2_MP_SUPPORTED" class="sref">ACPI_FADT_C2_MP_SUPPORTED3/a>)) v2983/a>             v  return -3a href="+code=ENODEV" class="sref">ENODEV3/a>; v2993/a>#endif v3019.a> v3013/a>        3spa	 class="comment">/* determine C2 and C3 address from pblk */3/spa	  v3023/a>        3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C2" class="sref">ACPI_STATE_C23/a>].3a href="+code=address" class="sref">address3/a> = 3a href="+code=pr" class="sref">pr3/a>->3a href="+code=pblk" class="sref">pblk3/a> + 4; v3033/a>        3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C3" class="sref">ACPI_STATE_C33/a>].3a href="+code=address" class="sref">address3/a> = 3a href="+code=pr" class="sref">pr3/a>->3a href="+code=pblk" class="sref">pblk3/a> + 5; v3049.a> v3053/a>        3spa	 class="comment">/* determine latencies from FADT */3/spa	  v3063/a>        3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C2" class="sref">ACPI_STATE_C23/a>].3a href="+code=latency" class="sref">latency3/a> = 3a href="+code=acpi_gbl_FADT" class="sref">acpi_gbl_FADT3/a>.3a href="+code=c2_latency" class="sref">c2_latency3/a>; v3073/a>        3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C3" class="sref">ACPI_STATE_C33/a>].3a href="+code=latency" class="sref">latency3/a> = 3a href="+code=acpi_gbl_FADT" class="sref">acpi_gbl_FADT3/a>.3a href="+code=c3_latency" class="sref">c3_latency3/a>; v3089.a> v3093/a>       v3spa	 class="comment">/*3/spa	  v3119.a>3spa	 class="comment">         * FADT specified C2 latency must be less tha	 or equal to3/spa	  v3113/a>3spa	 class="comment">         * 100 microseconds.3/spa	  v3123/a>3spa	 class="comment">         */3/spa	  v3133/a>        if (3a href="+code=acpi_gbl_FADT" class="sref">acpi_gbl_FADT3/a>.3a href="+code=c2_latency" class="sref">c2_latency3/a> > 3a href="+code=ACPI_PROCESSOR_MAX_C2_LATENCY" class="sref">ACPI_PROCESSOR_MAX_C2_LATENCY3/a>)v{ v3143/a>             v v3a href="+code=ACPI_DEBUG_PRINT" class="sref">ACPI_DEBUG_PRINT3/a>((3a href="+code=ACPI_DB_INFO" class="sref">ACPI_DB_INFO3/a>, v3153/a>             v          3spa	 class="string">"C2 latency too large [%d]\n"3/spa	 , 3a href="+code=acpi_gbl_FADT" class="sref">acpi_gbl_FADT3/a>.3a href="+code=c2_latency" class="sref">c2_latency3/a>)); v3163/a>       v        3spa	 class="comment">/* invalidate C2 */3/spa	  v3173/a>             v  3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C2" class="sref">ACPI_STATE_C23/a>].3a href="+code=address" class="sref">address3/a> = 0; v3183/a>        } v3193/a> v3203/a>       v3spa	 class="comment">/*3/spa	  v3213/a>3spa	 class="comment">         * FADT supplied C3 latency must be less tha	 or equal to3/spa	  v3223/a>3spa	 class="comment">         * 1000 microseconds.3/spa	  v3233/a>3spa	 class="comment">         */3/spa	  v3243/a>        if (3a href="+code=acpi_gbl_FADT" class="sref">acpi_gbl_FADT3/a>.3a href="+code=c3_latency" class="sref">c3_latency3/a> > 3a href="+code=ACPI_PROCESSOR_MAX_C3_LATENCY" class="sref">ACPI_PROCESSOR_MAX_C3_LATENCY3/a>)v{ v3253/a>             v  3a href="+code=ACPI_DEBUG_PRINT" class="sref">ACPI_DEBUG_PRINT3/a>((3a href="+code=ACPI_DB_INFO" class="sref">ACPI_DB_INFO3/a>, v3263/a>       v                3spa	 class="string">"C3 latency too large [%d]\n"3/spa	 , 3a href="+code=acpi_gbl_FADT" class="sref">acpi_gbl_FADT3/a>.3a href="+code=c3_latency" class="sref">c3_latency3/a>)); v3273/a>             v  3spa	 class="comment">/* invalidate C3 */3/spa	  v3283/a>             v  3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C3" class="sref">ACPI_STATE_C33/a>].3a href="+code=address" class="sref">address3/a> = 0; v3293/a>        } v3319.a> v3313/a>        3a href="+code=ACPI_DEBUG_PRINT" class="sref">ACPI_DEBUG_PRINT3/a>((3a href="+code=ACPI_DB_INFO" class="sref">ACPI_DB_INFO3/a>, v3323/a>                          3spa	 class="string">"lvl2[0x%08x] lvl3[0x%08x]\n"3/spa	 , v3333/a>                          3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C2" class="sref">ACPI_STATE_C23/a>].3a href="+code=address" class="sref">address3/a>, v3343/a>             v v          3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C3" class="sref">ACPI_STATE_C33/a>].3a href="+code=address" class="sref">address3/a>)); v3359.a> v3363/a>        return 0; v3379.a>} v3389.a> v3393/a>static intv3a href="+code=acpi_processor_get_power_info_default" class="sref">acpi_processor_get_power_info_default3/a>(structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *3a href="+code=pr" class="sref">pr3/a>) v3419.a>{ v3413/a>        if (!3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C1" class="sref">ACPI_STATE_C13/a>].3a href="+code=valid" class="sref">valid3/a>)v{ v3423/a>                3spa	 class="comment">/* set the first C-State to C1 */3/spa	  v3433/a>                3spa	 class="comment">/* all processors need to support C1 */3/spa	  v3443/a>             v v3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C1" class="sref">ACPI_STATE_C13/a>].3a href="+code=typi" class="sref">typi3/a> = 3a href="+code=ACPI_STATE_C1" class="sref">ACPI_STATE_C13/a>; v3453/a>             v  3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C1" class="sref">ACPI_STATE_C13/a>].3a href="+code=valid" class="sref">valid3/a> = 1; v3463/a>             v  3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C1" class="sref">ACPI_STATE_C13/a>].3a href="+code=entry_method" class="sref">entry_method3/a> = 3a href="+code=ACPI_CSTATE_HALT" class="sref">ACPI_CSTATE_HALT3/a>; v3473/a>        } v3483/a>        3spa	 class="comment">/* the C0 state only exists as a filler in our array */3/spa	  v3493/a>        3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=ACPI_STATE_C0" class="sref">ACPI_STATE_C03/a>].3a href="+code=valid" class="sref">valid3/a> = 1; v3503/a>       vreturn 0; v3513/a>} v3523/a> v3539.a>static intv3a href="+code=acpi_processor_get_power_info_cst" class="sref">acpi_processor_get_power_info_cst3/a>(structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *3a href="+code=pr" class="sref">pr3/a>) v3543/a>{ v3553/a>        3a href="+code=acpi_status" class="sref">acpi_status3/a> 3a href="+code=status" class="sref">status3/a> = 0; v3563/a>        3a href="+code=u64" class="sref">u643/a> 3a href="+code=count" class="sref">count3/a>; v3573/a>        intv3a href="+code=current_count" class="sref">current_count3/a>; v3583/a>        intv3a href="+code=i" class="sref">i3/a>; v3593/a>        structv3a href="+code=acpi_buffer" class="sref">acpi_buffer3/a> 3a href="+code=buffer" class="sref">buffer3/a> = { 3a href="+code=ACPI_ALLOCATE_BUFFER" class="sref">ACPI_ALLOCATE_BUFFER3/a>, 3a href="+code=NULL" class="sref">NULL3/a> }; v3603/a>       vunionv3a href="+code=acpi_object" class="sref">acpi_object3/a> *3a href="+code=cst" class="sref">cst3/a>; v3619.a> v3623/a> v3633/a>        if (3a href="+code=nocst" class="sref">nocst3/a>) v3643/a>             v vreturn -3a href="+code=ENODEV" class="sref">ENODEV3/a>; v3659.a> v3663/a>        3a href="+code=current_count" class="sref">current_count3/a> = 0; v3679.a> v3683/a>        3a href="+code=status" class="sref">status3/a> = 3a href="+code=acpi_evaluate_object" class="sref">acpi_evaluate_object3/a>(3a href="+code=pr" class="sref">pr3/a>->3a href="+code=handle" class="sref">handle3/a>, 3spa	 class="string">"_CST"3/spa	 , 3a href="+code=NULL" class="sref">NULL3/a>, &3a href="+code=buffer" class="sref">buffer3/a>); v3693/a>        if (3a href="+code=ACPI_FAILURE" class="sref">ACPI_FAILURE3/a>(3a href="+code=status" class="sref">status3/a>))v{ v3703/a>       v        3a href="+code=ACPI_DEBUG_PRINT" class="sref">ACPI_DEBUG_PRINT3/a>((3a href="+code=ACPI_DB_INFO" class="sref">ACPI_DB_INFO3/a>, 3spa	 class="string">"No _CST, giving up\n"3/spa	 )); v3713/a>             v  return -3a href="+code=ENODEV" class="sref">ENODEV3/a>; v3723/a>        } v3739.a> v3743/a>       v3a href="+code=cst" class="sref">cst3/a> = 3a href="+code=buffer" class="sref">buffer3/a>.3a href="+code=pointer" class="sref">pointer3/a>; v3759.a> v3763/a>        3spa	 class="comment">/* There must be at least 2 elements */3/spa	  v3773/a>        if (!3a href="+code=cst" class="sref">cst3/a> || (3a href="+code=cst" class="sref">cst3/a>->3a href="+code=typi" class="sref">typi3/a> != 3a href="+code=ACPI_TYPE_PACKAGE" class="sref">ACPI_TYPE_PACKAGE3/a>)v|| 3a href="+code=cst" class="sref">cst3/a>->3a href="+code=packagi" class="sref">packagi3/a>.3a href="+code=count" class="sref">count3/a> < 2)v{ v3783/a>             v  3a href="+code=printk" class="sref">printk3/a>(3a href="+code=KERN_ERR" class="sref">KERN_ERR3/a> 3a href="+code=PREFIX" class="sref">PREFIX3/a> 3spa	 class="string">"not enough elements in _CST\n"3/spa	 ); v3793/a>             v v3a href="+code=status" class="sref">status3/a> = -3a href="+code=EFAULT" class="sref">EFAULT3/a>; v3803/a>       v        gotov3a href="+code=end" class="sref">end3/a>; v3813/a>        } v3823/a> v3833/a>        3a href="+code=count" class="sref">count3/a> = 3a href="+code=cst" class="sref">cst3/a>->3a href="+code=packagi" class="sref">packagi3/a>.3a href="+code=elements" class="sref">elements3/a>[0].3a href="+code=integer" class="sref">integer3/a>.3a href="+code=valui" class="sref">valui3/a>; v3849.a> v3853/a>        3spa	 class="comment">/* Validate number of power states. */3/spa	  v3863/a>        if (3a href="+code=count" class="sref">count3/a> < 1v|| 3a href="+code=count" class="sref">count3/a> != 3a href="+code=cst" class="sref">cst3/a>->3a href="+code=packagi" class="sref">packagi3/a>.3a href="+code=count" class="sref">count3/a> - 1) { v3873/a>             v  3a href="+code=printk" class="sref">printk3/a>(3a href="+code=KERN_ERR" class="sref">KERN_ERR3/a> 3a href="+code=PREFIX" class="sref">PREFIX3/a> 3spa	 class="string">"count given by _CST is not valid\n"3/spa	 ); v3883/a>             v  3a href="+code=status" class="sref">status3/a> = -3a href="+code=EFAULT" class="sref">EFAULT3/a>; v3893/a>             v vgotov3a href="+code=end" class="sref">end3/a>; v3903/a>        } v3919.a> v3923/a>        3spa	 class="comment">/* Tell driver that at least _CST is supported. */3/spa	  v3933/a>        3a href="+code=pr" class="sref">pr3/a>->3a href="+code=flags" class="sref">flags3/a>.3a href="+code=has_cst" class="sref">has_cst3/a> = 1; v3949.a> v3953/a>        for (3a href="+code=i" class="sref">i3/a> = 1;v3a href="+code=i" class="sref">i3/a> <= 3a href="+code=count" class="sref">count3/a>;v3a href="+code=i" class="sref">i3/a>++) { v3963/a>             v  unionv3a href="+code=acpi_object" class="sref">acpi_object3/a> *3a href="+code=element" class="sref">element3/a>; v3973/a>             v  unionv3a href="+code=acpi_object" class="sref">acpi_object3/a> *3a href="+code=obj" class="sref">obj3/a>; v3983/a>             v  structv3a href="+code=acpi_power_register" class="sref">acpi_power_register3/a> *3a href="+code=reg" class="sref">reg3/a>; v3993/a>             v vstructv3a href="+code=acpi_processor_cx" class="sref">acpi_processor_cx3/a> 3a href="+code=cx" class="sref">cx3/a>; v4019.a> v4013/a>             v  3a href="+code=memset" class="sref">memset3/a>(&3a href="+code=cx" class="sref">cx3/a>, 0, sizeof(3a href="+code=cx" class="sref">cx3/a>)); v4023/a> v4033/a>                3a href="+code=element" class="sref">element3/a> = &(3a href="+code=cst" class="sref">cst3/a>->3a href="+code=packagi" class="sref">packagi3/a>.3a href="+code=elements" class="sref">elements3/a>[3a href="+code=i" class="sref">i3/a>]); v4043/a>             v vif (3a href="+code=element" class="sref">element3/a>->3a href="+code=typi" class="sref">typi3/a> != 3a href="+code=ACPI_TYPE_PACKAGE" class="sref">ACPI_TYPE_PACKAGE3/a>) v4053/a>             v          continue; v4069.a> v4073/a>             v  if (3a href="+code=element" class="sref">element3/a>->3a href="+code=packagi" class="sref">packagi3/a>.3a href="+code=count" class="sref">count3/a> != 4) v4083/a>             v          continue; v4093/a> v4103/a>       v        3a href="+code=obj" class="sref">obj3/a> = &(3a href="+code=element" class="sref">element3/a>->3a href="+code=packagi" class="sref">packagi3/a>.3a href="+code=elements" class="sref">elements3/a>[0]); v4119.a> v4123/a>                if (3a href="+code=obj" class="sref">obj3/a>->3a href="+code=typi" class="sref">typi3/a> != 3a href="+code=ACPI_TYPE_BUFFER" class="sref">ACPI_TYPE_BUFFER3/a>) v4133/a>                        continue; v4149.a> v4153/a>             v  3a href="+code=reg" class="sref">reg3/a> = (structv3a href="+code=acpi_power_register" class="sref">acpi_power_register3/a> *)3a href="+code=obj" class="sref">obj3/a>->3a href="+code=buffer" class="sref">buffer3/a>.3a href="+code=pointer" class="sref">pointer3/a>; v4169.a> v4173/a>             v  if (3a href="+code=reg" class="sref">reg3/a>->3a href="+code=space_id" class="sref">space_id3/a> != 3a href="+code=ACPI_ADR_SPACE_SYSTEM_IO" class="sref">ACPI_ADR_SPACE_SYSTEM_IO3/a> && v4183/a>             v      (3a href="+code=reg" class="sref">reg3/a>->3a href="+code=space_id" class="sref">space_id3/a> != 3a href="+code=ACPI_ADR_SPACE_FIXED_HARDWARE" class="sref">ACPI_ADR_SPACE_FIXED_HARDWARE3/a>)) v4193/a>             v v        continue; v4219.a> v4213/a>             v  3spa	 class="comment">/* There should be an easy way to extractvan integer... */3/spa	  v4223/a>                3a href="+code=obj" class="sref">obj3/a> = &(3a href="+code=element" class="sref">element3/a>->3a href="+code=packagi" class="sref">packagi3/a>.3a href="+code=elements" class="sref">elements3/a>[1]); v4233/a>                if (3a href="+code=obj" class="sref">obj3/a>->3a href="+code=typi" class="sref">typi3/a> != 3a href="+code=ACPI_TYPE_INTEGER" class="sref">ACPI_TYPE_INTEGER3/a>) v4243/a>             v v        continue; v4259.a> v4263/a>       v        3a href="+code=cx" class="sref">cx3/a>.3a href="+code=typi" class="sref">typi3/a> = 3a href="+code=obj" class="sref">obj3/a>->3a href="+code=integer" class="sref">integer3/a>.3a href="+code=valui" class="sref">valui3/a>; v4273/a>             v  3spa	 class="comment">/*3/spa	  v4283/a>3spa	 class="comment">                 * Some buggy BIOSes won't list C1 in _CST -3/spa	  v4293/a>3spa	 class="comment">                 * Letvacpi_processor_get_power_info_default() handle them later3/spa	  v4319.a>3spa	 class="comment">                 */3/spa	  v4313/a>             v  if (3a href="+code=i" class="sref">i3/a> == 1 && 3a href="+code=cx" class="sref">cx3/a>.3a href="+code=typi" class="sref">typi3/a> != 3a href="+code=ACPI_STATE_C1" class="sref">ACPI_STATE_C13/a>) v4323/a>                        3a href="+code=current_count" class="sref">current_count3/a>++; v4339.a> v4343/a>             v v3a href="+code=cx" class="sref">cx3/a>.3a href="+code=address" class="sref">address3/a> = 3a href="+code=reg" class="sref">reg3/a>->3a href="+code=address" class="sref">address3/a>; v4353/a>             v  3a href="+code=cx" class="sref">cx3/a>.3a href="+code=index" class="sref">index3/a> = 3a href="+code=current_count" class="sref">current_count3/a> + 1; v4369.a> v4373/a>             v  3a href="+code=cx" class="sref">cx3/a>.3a href="+code=entry_method" class="sref">entry_method3/a> = 3a href="+code=ACPI_CSTATE_SYSTEMIO" class="sref">ACPI_CSTATE_SYSTEMIO3/a>; v4383/a>             v  if (3a href="+code=reg" class="sref">reg3/a>->3a href="+code=space_id" class="sref">space_id3/a> == 3a href="+code=ACPI_ADR_SPACE_FIXED_HARDWARE" class="sref">ACPI_ADR_SPACE_FIXED_HARDWARE3/a>) { v4393/a>             v v        if (3a href="+code=acpi_processor_ffh_cstate_probi" class="sref">acpi_processor_ffh_cstate_probi9.a> v4403/a>       v                                (3a href="+code=pr" class="sref">pr3/a>->3a href="+code=id" class="sref">id3/a>, &3a href="+code=cx" class="sref">cx3/a>, 3a href="+code=reg" class="sref">reg3/a>) == 0) { v4413/a>             v               v  3a href="+code=cx" class="sref">cx3/a>.3a href="+code=entry_method" class="sref">entry_method3/a> = 3a href="+code=ACPI_CSTATE_FFH" class="sref">ACPI_CSTATE_FFH3/a>; v4423/a>                        } else if (3a href="+code=cx" class="sref">cx3/a>.3a href="+code=typi" class="sref">typi3/a> == 3a href="+code=ACPI_STATE_C1" class="sref">ACPI_STATE_C13/a>) { v4433/a>                             v  3spa	 class="comment">/*3/spa	  v4443/a>3spa	 class="comment">                                 * C1 is a special case where FIXED_HARDWARE3/spa	  v4453/a>3spa	 class="comment">                                 * ca	 be handled in non-MWAIT way as well.3/spa	  v4463/a>3spa	 class="comment">                                 * In that case, save this _CST entry info.3/spa	  v4473/a>3spa	 class="comment">                                 * Otherwise, ignore this info and continue.3/spa	  v4483/a>3spa	 class="comment">                                 */3/spa	  v4493/a>             v v                3a href="+code=cx" class="sref">cx3/a>.3a href="+code=entry_method" class="sref">entry_method3/a> = 3a href="+code=ACPI_CSTATE_HALT" class="sref">ACPI_CSTATE_HALT3/a>; v4503/a>       v                        3a href="+code=snprintf" class="sref">snprintf3/a>(3a href="+code=cx" class="sref">cx3/a>.3a href="+code=desc" class="sref">desc3/a>, 3a href="+code=ACPI_CX_DESC_LEN" class="sref">ACPI_CX_DESC_LEN3/a>, 3spa	 class="string">"ACPI HLT"3/spa	 ); v4513/a>             v          } else { v4523/a>                                continue; v4533/a>                        } v4543/a>             v v        if (3a href="+code=cx" class="sref">cx3/a>.3a href="+code=typi" class="sref">typi3/a> == 3a href="+code=ACPI_STATE_C1" class="sref">ACPI_STATE_C13/a> && v4553/a>             v              (3a href="+code=boot_option_idle_overridi" class="sref">boot_option_idle_overridi3/a> == 3a href="+code=IDLE_NOMWAIT" class="sref">IDLE_NOMWAIT3/a>)) { v4563/a>       v                        3spa	 class="comment">/*3/spa	  v4573/a>3spa	 class="comment">                                 * In most cases the C1 space_id obtained from3/spa	  v4583/a>3spa	 class="comment">                                 * _CST object is FIXED_HARDWARE access mode.3/spa	  v4593/a>3spa	 class="comment">                                 * But when the option of idle=halt is added,3/spa	  v4619.a>3spa	 class="comment">                                 * the entry_method typi should be changed from3/spa	  v4613/a>3spa	 class="comment">                                 * CSTATE_FFH to CSTATE_HALT.3/spa	  v4623/a>3spa	 class="comment">                                 * When the option of idle=nomwait is added,3/spa	  v4633/a>3spa	 class="comment">                                 * the C1 entry_method typi should be3/spa	  v4643/a>3spa	 class="comment">                                 * CSTATE_HALT.3/spa	  v4653/a>3spa	 class="comment">                                 */3/spa	  v4663/a>       v                        3a href="+code=cx" class="sref">cx3/a>.3a href="+code=entry_method" class="sref">entry_method3/a> = 3a href="+code=ACPI_CSTATE_HALT" class="sref">ACPI_CSTATE_HALT3/a>; v4673/a>             v                  3a href="+code=snprintf" class="sref">snprintf3/a>(3a href="+code=cx" class="sref">cx3/a>.3a href="+code=desc" class="sref">desc3/a>, 3a href="+code=ACPI_CX_DESC_LEN" class="sref">ACPI_CX_DESC_LEN3/a>, 3spa	 class="string">"ACPI HLT"3/spa	 ); v4683/a>             v          } v4693/a>             v v} else { v4703/a>       v                3a href="+code=snprintf" class="sref">snprintf3/a>(3a href="+code=cx" class="sref">cx3/a>.3a href="+code=desc" class="sref">desc3/a>, 3a href="+code=ACPI_CX_DESC_LEN" class="sref">ACPI_CX_DESC_LEN3/a>, 3spa	 class="string">"ACPI IOPORT 0x%x"3/spa	 , v4713/a>             v                   3a href="+code=cx" class="sref">cx3/a>.3a href="+code=address" class="sref">address3/a>); v4723/a>                } v4739.a> v4743/a>             v vif (3a href="+code=cx" class="sref">cx3/a>.3a href="+code=typi" class="sref">typi3/a> == 3a href="+code=ACPI_STATE_C1" class="sref">ACPI_STATE_C13/a>) { v4753/a>             v          3a href="+code=cx" class="sref">cx3/a>.3a href="+code=valid" class="sref">valid3/a> = 1; v4763/a>       v        } v4779.a> v4783/a>             v  3a href="+code=obj" class="sref">obj3/a> = &(3a href="+code=element" class="sref">element3/a>->3a href="+code=packagi" class="sref">packagi3/a>.3a href="+code=elements" class="sref">elements3/a>[2]); v4793/a>             v vif (3a href="+code=obj" class="sref">obj3/a>->3a href="+code=typi" class="sref">typi3/a> != 3a href="+code=ACPI_TYPE_INTEGER" class="sref">ACPI_TYPE_INTEGER3/a>) v4803/a>       v                continue; v4819.a> v4823/a>                3a href="+code=cx" class="sref">cx3/a>.3a href="+code=latency" class="sref">latency3/a> = 3a href="+code=obj" class="sref">obj3/a>->3a href="+code=integer" class="sref">integer3/a>.3a href="+code=valui" class="sref">valui3/a>; v4839.a> v4843/a>             v v3a href="+code=obj" class="sref">obj3/a> = &(3a href="+code=element" class="sref">element3/a>->3a href="+code=packagi" class="sref">packagi3/a>.3a href="+code=elements" class="sref">elements3/a>[3]); v4853/a>             v  if (3a href="+code=obj" class="sref">obj3/a>->3a href="+code=typi" class="sref">typi3/a> != 3a href="+code=ACPI_TYPE_INTEGER" class="sref">ACPI_TYPE_INTEGER3/a>) v4863/a>       v                continue; v4879.a> v4883/a>             v  3a href="+code=current_count" class="sref">current_count3/a>++; v4893/a>             v v3a href="+code=memcpy" class="sref">memcpy3/a>(&(3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=current_count" class="sref">current_count3/a>]), &3a href="+code=cx" class="sref">cx3/a>, sizeof(3a href="+code=cx" class="sref">cx3/a>)); v4919.a> v4913/a>             v  3spa	 class="comment">/*3/spa	  v4923/a>3spa	 class="comment">                 * We support total ACPI_PROCESSOR_MAX_POWER - 13/spa	  v4933/a>3spa	 class="comment">                 * (From 1 through ACPI_PROCESSOR_MAX_POWER - 1)3/spa	  v4943/a>3spa	 class="comment">                 */3/spa	  v4953/a>             v  if (3a href="+code=current_count" class="sref">current_count3/a> >= (3a href="+code=ACPI_PROCESSOR_MAX_POWER" class="sref">ACPI_PROCESSOR_MAX_POWER3/a> - 1)) { v4963/a>             v       v v3a href="+code=printk" class="sref">printk3/a>(3a href="+code=KERN_WARNING" class="sref">KERN_WARNING9.a> v4973/a>             v              v  3spa	 class="string">"Limiting number of power states to max (%d)\n"3/spa	 , v4983/a>             v      v       v v3a href="+code=ACPI_PROCESSOR_MAX_POWER" class="sref">ACPI_PROCESSOR_MAX_POWER3/a>); v4993/a>             v v     v v3a href="+code=printk" class="sref">printk3/a>(3a href="+code=KERN_WARNING" class="sref">KERN_WARNING9.a> v5003/a>       v                       3spa	 class="string">"Please increase ACPI_PROCESSOR_MAX_POWER if needed.\n"3/spa	 ); v5013/a>             v          break; v5023/a>                } v5033/a>        } v5049.a> v5053/a>        3a href="+code=ACPI_DEBUG_PRINT" class="sref">ACPI_DEBUG_PRINT3/a>((3a href="+code=ACPI_DB_INFO" class="sref">ACPI_DB_INFO3/a>, 3spa	 class="string">"Found %d power states\n"3/spa	 , v5063/a>       v                  3a href="+code=current_count" class="sref">current_count3/a>)); v5079.a> v5083/a>        3spa	 class="comment">/* Validate number of power states discovered */3/spa	  v5093/a>        if (3a href="+code=current_count" class="sref">current_count3/a> < 2) v5103/a>       v        3a href="+code=status" class="sref">status3/a> = -3a href="+code=EFAULT" class="sref">EFAULT3/a>; v5119.a> v5123/a>      3a href="+code=end" class="sref">end3/a>: v5133/a>        3a href="+code=kfrei" class="sref">kfrei3/a>(3a href="+code=buffer" class="sref">buffer3/a>.3a href="+code=pointer" class="sref">pointer3/a>); v5149.a> v5153/a>        return 3a href="+code=status" class="sref">status3/a>; v5169.a>} v5179.a> v5183/a>static voidv3a href="+code=acpi_processor_power_verify_c3" class="sref">acpi_processor_power_verify_c33/a>(structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *3a href="+code=pr" class="sref">pr3/a>, v5193/a>             v v                           structv3a href="+code=acpi_processor_cx" class="sref">acpi_processor_cx3/a> *3a href="+code=cx" class="sref">cx3/a>) v5219.a>{ v5213/a>        static intv3a href="+code=bm_check_flag" class="sref">bm_check_flag3/a> = -1; v5223/a>        static intv3a href="+code=bm_control_flag" class="sref">bm_control_flag3/a> = -1; v5239.a> v5249.a> v5253/a>        if (!3a href="+code=cx" class="sref">cx3/a>->3a href="+code=address" class="sref">address3/a>) v5263/a>       v        return; v5279.a> v5283/a>        3spa	 class="comment">/*3/spa	  v5293/a>3spa	 class="comment">         * PIIX4 Erratum #18: We don't support C3 when Type-F (fast)3/spa	  v5319.a>3spa	 class="comment">         * DMA transfers are used by any ISA device to avoidvlivelock.3/spa	  v5313/a>3spa	 class="comment">         * Note that we could disable Type-F DMA (as recommended by3/spa	  v5323/a>3spa	 class="comment">         * the erratum), but this is known to disrupt certain ISA3/spa	  v5333/a>3spa	 class="comment">         * devices thus we take the conservative approach.3/spa	  v5343/a>3spa	 class="comment">         */3/spa	  v5353/a>        else if (3a href="+code=errata" class="sref">errata3/a>.3a href="+code=piix4" class="sref">piix43/a>.3a href="+code=fdma" class="sref">fdma3/a>) { v5363/a>       v        3a href="+code=ACPI_DEBUG_PRINT" class="sref">ACPI_DEBUG_PRINT3/a>((3a href="+code=ACPI_DB_INFO" class="sref">ACPI_DB_INFO3/a>, v5373/a>             v                    3spa	 class="string">"C3 not supported on PIIX4 with Type-F DMA\n"3/spa	 )); v5383/a>             v  return; v5393/a>        } v5419.a> v5413/a>        3spa	 class="comment">/* All the logic here assumes flags.bm_check is sami across all CPUs */3/spa	  v5423/a>        if (3a href="+code=bm_check_flag" class="sref">bm_check_flag3/a> == -1) { v5433/a>                3spa	 class="comment">/* Determine whether bm_check is needed based on CPU  */3/spa	  v5443/a>             v v3a href="+code=acpi_processor_power_init_bm_check" class="sref">acpi_processor_power_init_bm_check3/a>(&(3a href="+code=pr" class="sref">pr3/a>->3a href="+code=flags" class="sref">flags3/a>), 3a href="+code=pr" class="sref">pr3/a>->3a href="+code=id" class="sref">id3/a>); v5453/a>             v  3a href="+code=bm_check_flag" class="sref">bm_check_flag3/a> = 3a href="+code=pr" class="sref">pr3/a>->3a href="+code=flags" class="sref">flags3/a>.3a href="+code=bm_check" class="sref">bm_check3/a>; v5463/a>       v        3a href="+code=bm_control_flag" class="sref">bm_control_flag3/a> = 3a href="+code=pr" class="sref">pr3/a>->3a href="+code=flags" class="sref">flags3/a>.3a href="+code=bm_control" class="sref">bm_control3/a>; v5473/a>        } else { v5483/a>             v  3a href="+code=pr" class="sref">pr3/a>->3a href="+code=flags" class="sref">flags3/a>.3a href="+code=bm_check" class="sref">bm_check3/a> = 3a href="+code=bm_check_flag" class="sref">bm_check_flag3/a>; v5493/a>             v v3a href="+code=pr" class="sref">pr3/a>->3a href="+code=flags" class="sref">flags3/a>.3a href="+code=bm_control" class="sref">bm_control3/a> = 3a href="+code=bm_control_flag" class="sref">bm_control_flag3/a>; v5503/a>        } v5519.a> v5523/a>        if (3a href="+code=pr" class="sref">pr3/a>->3a href="+code=flags" class="sref">flags3/a>.3a href="+code=bm_check" class="sref">bm_check3/a>) { v5533/a>                if (!3a href="+code=pr" class="sref">pr3/a>->3a href="+code=flags" class="sref">flags3/a>.3a href="+code=bm_control" class="sref">bm_control3/a>) { v5543/a>             v v        if (3a href="+code=pr" class="sref">pr3/a>->3a href="+code=flags" class="sref">flags3/a>.3a href="+code=has_cst" class="sref">has_cst3/a> != 1) { v5553/a>             v               v v3spa	 class="comment">/* bus mastering control is necessary */3/spa	  v5563/a>       v                        3a href="+code=ACPI_DEBUG_PRINT" class="sref">ACPI_DEBUG_PRINT3/a>((3a href="+code=ACPI_DB_INFO" class="sref">ACPI_DB_INFO3/a>, v5573/a>             v                       v v3spa	 class="string">"C3 support requires BM control\n"3/spa	 )); v5583/a>             v      v       v v return; v5593/a>             v v        } else { v5603/a>       v                        3spa	 class="comment">/* Here we enter C3 without bus mastering */3/spa	  v5613/a>             v               v  3a href="+code=ACPI_DEBUG_PRINT" class="sref">ACPI_DEBUG_PRINT3/a>((3a href="+code=ACPI_DB_INFO" class="sref">ACPI_DB_INFO3/a>, v5623/a>                                        3spa	 class="string">"C3 support without BM control\n"3/spa	 )); v5633/a>                        } v5643/a>             v v} v5653/a>        } else { v5663/a>       v        3spa	 class="comment">/*3/spa	  v5673/a>3spa	 class="comment">                 * WBINVD should be set in fadt, for C3 state to be3/spa	  v5683/a>3spa	 class="comment">                 * supported on when bm_check is not required.3/spa	  v5693/a>3spa	 class="comment">                 */3/spa	  v5703/a>       v        if (!(3a href="+code=acpi_gbl_FADT" class="sref">acpi_gbl_FADT3/a>.3a href="+code=flags" class="sref">flags3/a> & 3a href="+code=ACPI_FADT_WBINVD" class="sref">ACPI_FADT_WBINVD3/a>)) { v5713/a>             v          3a href="+code=ACPI_DEBUG_PRINT" class="sref">ACPI_DEBUG_PRINT3/a>((3a href="+code=ACPI_DB_INFO" class="sref">ACPI_DB_INFO3/a>, v5723/a>                                          3spa	 class="string">"Cache invalidation should work properly"3/spa	  v5733/a>                             v            3spa	 class="string">" for C3 to be enabled on SMP systems\n"3/spa	 )); v5743/a>             v vvvvvvvvvreturn; v5753/a>             v  } v5763/a>       v} v5779.a> v5783/a>        3spa	 class="comment">/*3/spa	  v5793/a>3spa	 class="comment">         * Otherwise we've metvall of our C3 requirements.3/spa	  v5819.a>3spa	 class="comment">         * Normalize the C3 latency to expidite policy.  Enable3/spa	  v5813/a>3spa	 class="comment">         * checking of bus mastering status (bm_check) so we can3/spa	  v5823/a>3spa	 class="comment">         * use this in our C3 policy3/spa	  v5833/a>3spa	 class="comment">         */3/spa	  v5843/a>        3a href="+code=cx" class="sref">cx3/a>->3a href="+code=valid" class="sref">valid3/a> = 1; v5859.a> v5863/a>       v3spa	 class="comment">/*3/spa	  v5873/a>3spa	 class="comment">         * On older chipsets, BM_RLD needs to be set3/spa	  v5883/a>3spa	 class="comment">         * in order for Bus Master activity to wake the3/spa	  v5893/a>3spa	 class="comment">         * system from C3.  Newer chipsets handle DMA3/spa	  v5919.a>3spa	 class="comment">         * during C3 automatically and BM_RLD is a NOP.3/spa	  v5913/a>3spa	 class="comment">         * In either case, the proper way to3/spa	  v5923/a>3spa	 class="comment">         * handle BM_RLD is to set it and leave it set.3/spa	  v5933/a>3spa	 class="comment">         */3/spa	  v5943/a>        3a href="+code=acpi_write_bit_register" class="sref">acpi_write_bit_register3/a>(3a href="+code=ACPI_BITREG_BUS_MASTER_RLD" class="sref">ACPI_BITREG_BUS_MASTER_RLD3/a>, 1); v5959.a> v5963/a>        return; v5973/a>} v5983/a> v5993/a>static intv3a href="+code=acpi_processor_power_verify" class="sref">acpi_processor_power_verify3/a>(structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *3a href="+code=pr" class="sref">pr3/a>) v6019.a>{ v6013/a>        unsigned intv3a href="+code=i" class="sref">i3/a>; v6023/a>        unsigned intv3a href="+code=working" class="sref">working3/a> = 0; v6039.a> v6043/a>        3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=timer_broadcast_on_state" class="sref">timer_broadcast_on_state3/a> = 3a href="+code=INT_MAX" class="sref">INT_MAX3/a>; v6059.a> v6063/a>       vfor (3a href="+code=i" class="sref">i3/a> = 1;v3a href="+code=i" class="sref">i3/a> < 3a href="+code=ACPI_PROCESSOR_MAX_POWER" class="sref">ACPI_PROCESSOR_MAX_POWER3/a> && 3a href="+code=i" class="sref">i3/a> <= 3a href="+code=max_cstate" class="sref">max_cstate3/a>; 3a href="+code=i" class="sref">i3/a>++) { v6073/a>             v  structv3a href="+code=acpi_processor_cx" class="sref">acpi_processor_cx3/a> *3a href="+code=cx" class="sref">cx3/a> = &3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=i" class="sref">i3/a>]; v6083/a> v6093/a>             v vswitch (3a href="+code=cx" class="sref">cx3/a>->3a href="+code=typi" class="sref">typi3/a>) { v6103/a>       v        case 3a href="+code=ACPI_STATE_C1" class="sref">ACPI_STATE_C13/a>: v6113/a>             v          3a href="+code=cx" class="sref">cx3/a>->3a href="+code=valid" class="sref">valid3/a> = 1; v6123/a>                        break; v6139.a> v6143/a>             v vcase 3a href="+code=ACPI_STATE_C2" class="sref">ACPI_STATE_C23/a>: v6153/a>             v          if (!3a href="+code=cx" class="sref">cx3/a>->3a href="+code=address" class="sref">address3/a>) v6163/a>       v                        break; v6173/a>             v          3a href="+code=cx" class="sref">cx3/a>->3a href="+code=valid" class="sref">valid3/a> = 1;  v6183/a>             v      v   break; v6193/a> v6203/a>       v        case 3a href="+code=ACPI_STATE_C3" class="sref">ACPI_STATE_C33/a>: v6213/a>             v          3a href="+code=acpi_processor_power_verify_c3" class="sref">acpi_processor_power_verify_c33/a>(3a href="+code=pr" class="sref">pr3/a>, 3a href="+code=cx" class="sref">cx3/a>); v6223/a>                        break; v6233/a>                } v6243/a>             v vif (!3a href="+code=cx" class="sref">cx3/a>->3a href="+code=valid" class="sref">valid3/a>) v6253/a>             v          continue; v6263/a> v6273/a>             v  3a href="+code=lapic_timer_check_state" class="sref">lapic_timer_check_state3/a>(3a href="+code=i" class="sref">i3/a>, 3a href="+code=pr" class="sref">pr3/a>, 3a href="+code=cx" class="sref">cx3/a>); v6283/a>             v  3a href="+code=tsc_check_state" class="sref">tsc_check_state3/a>(3a href="+code=cx" class="sref">cx3/a>->3a href="+code=typi" class="sref">typi3/a>); v6293/a>             v v3a href="+code=working" class="sref">working3/a>++; v6303/a>        } v6319.a> v6323/a>        3a href="+code=lapic_timer_propagate_broadcast" class="sref">lapic_timer_propagate_broadcast3/a>(3a href="+code=pr" class="sref">pr3/a>); v6339.a> v6343/a>        return (3a href="+code=working" class="sref">working3/a>); v6353/a>} v6363/a> v6373/a>static intv3a href="+code=acpi_processor_get_power_info" class="sref">acpi_processor_get_power_info3/a>(structv3a href="+code=acpi_processor" class="sref">acpi_processor3/a> *3a href="+code=pr" class="sref">pr3/a>) v6383/a>{ v6393/a>        unsigned intv3a href="+code=i" class="sref">i3/a>; v6403/a>        intv3a href="+code=result" class="sref">result3/a>; v6419.a> v6423/a> v6433/a>        3spa	 class="comment">/* NOTE: the idle thread may not be running while calling3/spa	  v6443/a>3spa	 class="comment">         * this function */3/spa	  v6459.a> v6463/a>       v3spa	 class="comment">/* Zero initialize all the C-states info. */3/spa	  v6473/a>        3a href="+code=memset" class="sref">memset3/a>(3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>, 0, sizeof(3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>)); v6483/a> v6493/a>        3a href="+code=result" class="sref">result3/a> = 3a href="+code=acpi_processor_get_power_info_cst" class="sref">acpi_processor_get_power_info_cst3/a>(3a href="+code=pr" class="sref">pr3/a>); v6503/a>        if (3a href="+code=result" class="sref">result3/a> == -3a href="+code=ENODEV" class="sref">ENODEV3/a>) v6513/a>             v  3a href="+code=result" class="sref">result3/a> = 3a href="+code=acpi_processor_get_power_info_fadt" class="sref">acpi_processor_get_power_info_fadt3/a>(3a href="+code=pr" class="sref">pr3/a>); v6523/a> v6533/a>        if (3a href="+code=result" class="sref">result3/a>) v6543/a>             v vreturn 3a href="+code=result" class="sref">result3/a>; v6559.a> v6563/a>       v3a href="+code=acpi_processor_get_power_info_default" class="sref">acpi_processor_get_power_info_default3/a>(3a href="+code=pr" class="sref">pr3/a>); v6579.a> v6583/a>        3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=count" class="sref">count3/a> = 3a href="+code=acpi_processor_power_verify" class="sref">acpi_processor_power_verify3/a>(3a href="+code=pr" class="sref">pr3/a>); v6593/a> v6603/a>       v3spa	 class="comment">/*3/spa	  v6613/a>3spa	 class="comment">         * if one state of typi C2 or C3 is available, mark this3/spa	  v6623/a>3spa	 class="comment">         * CPU as being "idle manageable"3/spa	  v6633/a>3spa	 class="comment">         */3/spa	  v6643/a>        for (3a href="+code=i" class="sref">i3/a> = 1;v3a href="+code=i" class="sref">i3/a> < 3a href="+code=ACPI_PROCESSOR_MAX_POWER" class="sref">ACPI_PROCESSOR_MAX_POWER3/a>; 3a href="+code=i" class="sref">i3/a>++) { v6653/a>             v  if (3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=i" class="sref">i3/a>].3a href="+code=valid" class="sref">valid3/a>) { v6663/a>       v                3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=count" class="sref">count3/a> = 3a href="+code=i" class="sref">i3/a>; v6673/a>             v          if (3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">power3/a>.3a href="+code=states" class="sref">states3/a>[3a href="+code=i" class="sref">i3/a>].3a href="+code=typi" class="sref">typi3/a> >= 3a href="+code=ACPI_STATE_C2" class="sref">ACPI_STATE_C23/a>) v6683/a>             v      v       v v 3a href="+code=pr" class="sref">pr3/a>->3a href="+code=flags" class="sref">flags3/a>.3a href="+code=power" class="sref">power3/a> = 1; v6693/a>             v v} v6703/a>        } v6719.a> v6723/a>        return 0; v6733/a>} v6749.a> v6753/a>3spa	 class="comment">/**3/spa	  v6763/a>3spa	 class="comment"> * acpi_idle_bm_check - checks if bus master activity was detected3/spa	  v6773/a>3spa	 class="comment"> */3/spa	  v6783/a>static intv3a href="+code=acpi_idle_bm_check" class="sref">acpi_idle_bm_check3/a>(void) v6793/a>{ v6803/a>       v3a href="+code=u32" class="sref">u323/a> 3a href="+code=bm_status" class="sref">bm_status3/a> = 0; v6819.a> v6823/a>        if (3a href="+code=bm_check_disable" class="sref">bm_check_disable3/a>) v6833/a>                return 0; v6849.a> v6853/a>        3a href="+code=acpi_read_bit_register" class="sref">acpi_read_bit_register3/a>(3a href="+code=ACPI_BITREG_BUS_MASTER_STATUS" class="sref">ACPI_BITREG_BUS_MASTER_STATUS3/a>, &3a href="+code=bm_status" class="sref">bm_status3/a>); v6863/a>       vif (3a href="+code=bm_status" class="sref">bm_status3/a>) v6873/a>             v  3a href="+code=acpi_write_bit_register" class="sref">acpi_write_bit_register3/a>(3a href="+code=ACPI_BITREG_BUS_MASTER_STATUS" class="sref">ACPI_BITREG_BUS_MASTER_STATUS3/a>, 1); v6883/a>        3spa	 class="comment">/*3/spa	  v6893/a>3spa	 class="comment">         * PIIX4 Erratum #18: Note that BM_STS doesn't always reflect3/spa	  v6919.a>3spa	 class="comment">         * the true state of bus mastering activity; forcing us to3/spa	  v6913/a>3spa	 class="comment">         * manually check the BMIDEA bit of each IDE channel.3/spa	  v6923/a>3spa	 class="comment">         */3/spa	  v6933/a>        else if (3a href="+code=errata" class="sref">errata3/a>.3a href="+code=piix4" class="sref">piix43/a>.3a href="+code=bmisx" class="sref">bmisx3/a>) { v6943/a>             v vif ((3a href="+code=inb_p" class="sref">inb_p3/a>(3a href="+code=errata" class="sref">errata3/a>.3a href="+code=piix4" class="sref">piix43/a>.3a href="+code=bmisx" class="sref">bmisx3/a> + 0x02) & 0x01) v6953/a>             v      || (3a href="+code=inb_p" class="sref">inb_p3/a>(3a href="+code=errata" class="sref">errata3/a>.3a href="+code=piix4" class="sref">piix43/a>.3a href="+code=bmisx" class="sref">bmisx3/a> + 0x0A) & 0x01)) v6963/a>       v                3a href="+code=bm_status" class="sref">bm_status3/a> = 1; v6973/a>        } v6983/a>        return 3a href="+code=bm_status" class="sref">bm_status3/a>; v6993/a>} v7019.a> v7013/a>3spa	 class="comment">/**3/spa	  v7023/a>3spa	 class="comment"> * acpi_idle_do_entry - a helper function that does C2 and C3 typi entry3/spa	  v7033/a>3spa	 class="comment"> * @cx: cstate data3/spa	  v7043/a>3spa	 class="comment"> *3/spa	  v7053/a>3spa	 class="comment"> * Caller disables interrupt before call and enables interrupt after return.3/spa	  v7063/a>3spa	 class="comment"> */3/spa	  v7073/a>static 3a href="+code=inline" class="sref">inline3/a> voidv3a href="+code=acpi_idle_do_entry" class="sref">acpi_idle_do_entry3/a>(structv3a href="+code=acpi_processor_cx" class="sref">acpi_processor_cx3/a> *3a href="+code=cx" class="sref">cx3/a>) v7083/a>{ v7093/a>        3spa	 class="comment">/* Don't trace irqs off for idle */3/spa	  v7103/a>       v3a href="+code=stop_critical_timings" class="sref">stop_critical_timings3/a>(); v7113/a>        if (3a href="+code=cx" class="sref">cx3/a>->3a href="+code=entry_method" class="sref">entry_method3/a> == 3a href="+code=ACPI_CSTATE_FFH" class="sref">ACPI_CSTATE_FFH3/a>) { v7123/a>                3spa	 class="comment">/* Call into architectural FFH based C-state */3/spa	  v7133/a>                3a href="+code=acpi_processor_ffh_cstate_enter" class="sref">acpi_processor_ffh_cstate_enter3/a>(3a href="+code=cx" class="sref">cx3/a>); v7143/a>        } else if (3a href="+code=cx" class="sref">cx3/a>->3a href="+code=entry_method" class="sref">entry_method3/a> == 3a href="+code=ACPI_CSTATE_HALT" class="sref">ACPI_CSTATE_HALT3/a>) { v6833/a>   5a>          */3/spa	  v7113/a>        if (3a href="+code=cx" class="sf="driverdrivers/acpi/processor_i7le.c#7617" idonL617"66">v5663/a>       v        3spa	 class="comment"7=cx" clas7="sref">cx3/a>->3a hr7f="+c7de=valid" class="sref""drivers/acpi/processor_iIO " ido"line" namionL713">v7133/a>                3a href="+code=acpi_proc#L709" iacpi/processor_idle.c#L679" id7nL619" class="line" nata3/a>.3a href="+ce=piix4" class="srL714" idonL714" class="line" namionL714">v7r_idle.c#L616" idonL616" class="line" namionL616">v61613/a>        if (3a href="+code=cx" class="s9;t traceonL620" class="line" nam7onL6271vers/acpi/processor_idacpi/processor_idle.c#L71ummine" clapessmus703" soa hrnamione706sine" naP_LVL2 _BIT3">v7133/a>                3a href="+code=acpi_prPI_STATE_73" class="sref">ACPI_STA7E_C3372ng us to3/spa	  v7133/a>                3a href="+code=acpi_prPref">cx3/essor_power_verify_c3" c7ass="72el.3/spa	  v6473/a>        3a href="+code=memset" class=7="drivers7acpi/processor_idle.c#L673" id7nL623" class="line" na" class="sref">acpdle_do_entry3/a>(sL714" idonL714" clasor_id & 3a href="+code=ACPI_FADT_WBINVD" class="sref">ACPxpmers/acpbloL679" idonL679" cxpmers/acpbloL6VD" class="sref">ACP616" class="line" namionL616">v61613/a>        if (3a href="+code=cx" class="i/process7r_idle.c#L624" idonL624"7class7"line" namionL19.a> cx3/a>->3a href=7+code7valid" class="3a href="+code=typrtocessor_idle.c#L711" idonL711" claprtocessor_idle.c#L71">v7113/a>        if (3a href="+code=cx" class="ref="driv7rs/acpi/processor_idle.c7L626"72">v6363/a> v6273/a>             v  3a href="+code=lapic_7imer_chec7_state" class="sref">lap7c_tim72onL678" class="line" namionL702">v7023/a>3spa	 class="comment"> * acpi_idle_do_ck_state"7class="sref">tsc_check_s7ate3/72pa	  v7023/a>3spa	 class="comment"> * acpi_idle_do_c9;t traceref">working3/a>++;  * acpi_idle_do_sor_idle.7#L631" idonL631" class="7ine" 73ng us to3/spa	  v7023/a>3spa	 class="comment"> * acpi_idle_do_sref">cx3/onL632" class="line" nam7onL6373el.3/spa	  typi3>v7023/a>3spa	 class="comment"> * acpi_idle_do_s"drivers7adcast" class="sref">lap7c_tim73 C3 typi entry3/spa	  v7023/a>3spa	 class="comment"> * acpi_idle_do_s/process7onL634" class="line" nam7onL6373_idle.c#L704" idonL704" class=Tass="s e" nval" cionLor_inL7y in"+code" i06">v7063/a>3spa	 class="comment"> */3/spa	  working3/a>); v6473/a>        3a href="+code=memset" class=7.c#L636" 7donL636" class="line" na7ionL676">v63d) acpi_processor_cx3le.c#_c1href="+code=cx" class="srefcpumion_devicidle_do_entry3/acpumion_deviciL708" idonL708" classdevdle_do_entry3/adev688">3/a>        3a href="+code=memset" class=7.#L627" i7onL637" class="line" nam7onL6373; 0" idonL640" class="lndexdle_do_entry3/a>(dex>v7083/a>{ ac7i_pro7essor_63/a>       v        3spa	 class="comment"7.c#L639" 7donL639" class="line" na7ionL673L619" class="=pr" class="sref">pr3/a>) v6313/a>        if (3a href="+code=cx" class=" class="s7ef">i3/a>; .3a href="+codevdle_do_entry3/adev688"r_idle.c#L616" idonLpi3/a>dusagidle_do_entry3/asor_isdusagiL638;= 3a href="+codendexdle_do_entry3/a>(dex>v70083/a> ; cx3/a> = &3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">pocx" class="srefcpumion_acpisor_idode=bmisx" class="cpumion_acpisor_idodeL714" idonL714" classor_idusagidle_do_entry3/asor_idusagiL638113/a>        if (3a href="+code=cx" class="c#L642" i7onL642" class="line" nam7onL647">v6423/a> (3a ="line" namionL638">v63>pocx" class="sref__nL66_cpuI_BITline" namionL63__nL66_cpuI_BITL714" idonL714" clascpi/proce711" idonL711" ccpi/proce7L638113/a>        if (3a href="+code=cx" class="c/process7thread may not be runnin7 whil74>v6343/a>        return (3a href="+code=workin7function 7/3/spa	  entry_method3/aunlikel="sref">acpi_prounlikel=L714"/a>) v6583/a>{     ocessor.c#L651" idonL651INVAL"line" namionL61INVAL>v6313/a>        if (3a href="+code=cx" class="initializ7 all the C-states info. 7/3/sp74>v6273/a>             v  3a href="+code=lapic_7sref">mem7et3/a>(3a href="+code=pr7 clas7="sref">pr3/a>->3a href="+"drivers/acpsor_id"sref">pr3/a>); prL714" idonL714" clascp"line" namionL659">v68" idonL628" class="line" namionL628">v6>v6883/a>        3spa	 class="comment">/*3/spa7c#L649" i7onL649" class="line" nam7onL6474sref">power3/a>.3a href="+coocessor_cx" class="sref">acpi_processor_cx3/a> *3a href= idonL714" class="line" namionL714">v7143/a>        } else if (3a href="+code=cx" sref">res7lt3/a> = 3a href="+code=7cpi_p74>v6603/a>       v3spa	 class="comment">/*3/spa7ss="sref"7result3/a> == -3a href="7code=753/a>(); pr3/a>); prL714" idonL714" clascp"line" namionL659">v68" idonL628" class="line" namionL628">v6>v0143/a>        } else if (3a href="+code=cx"  class="s7ef">result3/a> = 3a href7"+cod75>v6423/a> v6= 3a href="+codendexdle_do_entry3/a>(dex>v7043/a>        } else if (3a href="+code=cx"  /process7result3/a>) v6749.a> result3/a>; <7 href75>v6853/a>        3a href="+code=acpi_read_bit_7c#L656" i7onL656" class="line" nam7onL657">v6563/a>       v3a href="+code=acpi_processor7get_power7info_default" class="sre7">acp75onL707" class="line" namionL702">v7023/a>3spa	 class="comment"> * acpi_idle_do_c#L658" i7onL658" class="line" nam7onL6575onL678" class="line" namionL6="drivers/aplay_deadessle.c#e" n "lin amionL" nalong-.c#mamionL(i.e."lin-lis="l)2">v7023/a>3spa	 class="comment"> * acpi_idle_do_c#L649" i7gt;3a href="+code=power"7class75pa	   * acpi_idle_do_c#L660" i7onL660" class="line" nam7onL6675 always reflect3/spa	  typi3>v7023/a>3spa	 class="comment"> * acpi_idle_do_  v6473/a>        3a href="+code=memset" class=7e state o7 typi C2 or C3 is availa7le, m7rk thid) acpi_processor_cx3play_deadhref="+code=cx" class="srefcpumion_devicidle_do_entry3/acpumion_deviciL708" idonL708" classdevdle_do_entry3/adev688">0" idonL640" class="lndexdle_do_entry3/a>(dex>v7083/a>{ .3a href="+codevdle_do_entry3/adev688"r_idle.c#L616" idonLpi3/a>dusagidle_do_entry3/asor_isdusagiL638;= 3a href="+codendexdle_do_entry3/a>(dex>v70083/a> i3/7> = 1;v3a href="+code=i"7class7"sref">i3/a> &"+code=cx" class="sref">cx3/a> = &3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">pocx" class="srefcpumion_acpisor_idode=bmisx" class="cpumion_acpisor_idodeL714" idonL714" classor_idusagidle_do_entry3/asor_idusagiL638113/a> pr3/a>->3a href="7code=76>v6563/a>       v3a href="+code=acpi_processor7=pr" clas7="sref">pr3/a>->3a hr7f="+c76processor_get_power_info_def"lineFLUSH_c#L_CACHEdonL715" class="lineFLUSH_c#L_CACHE1">v7113/a>        if (3a href="+code=cx" class="code=pr" 7lass="sref">pr3/a>->37 href76>v6583/a>        3a href="+code=pr" class="sre7f="+code=7r" class="sref">pr3/a>-&7t;3a 7ref="+code=flane" na(1ass="sref"2e" namionL683">v6833/a>   5a> v6603/a>       v3spa	 class="comment">/*3/spa7sor_idle.7#L671" idonL671" class="7ine" 77>: entry_method3/a> == 3a href="+code=ACPI_CSTATE_HALT" class="sref">ACPI_CSTATE_HALT3/a>) {        v3spa	 class="comment">/*3/spa7s state o7onL672" class="line" nam7onL6777ef">acpi_processor_power_verify_c33/a>(3a href="drivers/acpi/processef="drive1">v7113/a>        if (3a href="+code=cx" class="i/process7r_idle.c#L673" idonL673"7class77L623" class="line" nas="sref">entry_method3/a> == 3a href="+code=ACPI_CSTATE_HALT" class="sref">ACPI_CSTATE_HALT3/a>) { v6833/a>   5a> (3a hr"+ce=piix4" class="srL714" idonL714" class="line" namionL714">v7r_idle.c#L616" idonL616" class="line" namionL616">v61613/a>        if (3a href="+code=cx" class="c#L675" i7onL675" class="line" nam7onL6777=errata" class="sref"wer_verifacpi/processor_idle.c#L7See or_idle"iidcessor_cx3/a> *3a ()i*47">v6473/a>        3a href="+code=memset" class=7ef="drive7s/acpi/processor_idle.c#7676" 77donL626" class="line" namionL" class="sref">acpdle_do_entry3/a>(sL714" idonL714" clasor_id & 3a href="+code=ACPI_FADT_WBINVD" class="sref">ACPxpmers/acpbloL679" idonL679" cxpmers/acpbloL6VD" class="sref">ACP616" class="line" namionL616">v61613/a>        if (3a href="+code=cx" class=7check - c7ecks if bus master activ7ty wa77; v53/a>        if (3a href="+code=cx" class=7code=pr" 7s/acpi/processor_idle.c#7678" 77+code=power" class="sref">powocessor.c#L651" idonL651" class="line" namionL651">v6513/a>        if (3a href="+code=cx" class=7c="+code=7ass="sref">acpi_idle_bm_7heck377ef="+code=fla49.a> v6603/a>       v3spa	 class="comment">/*3/spa7f">u323/a7 3a href="+code=bm_statu7" cla78661" idonL661" class="line" namionL66 Nev namiach69"*47">v6473/a>        3a href="+code=memset" class=7c#L682" i7onL682" class="line" nam7onL6878ef">acpi_proc684">v6849.a> bm_check_disab7e3/a>7  v6343/a>        return (3a href="+code=workin7c#L685" i7onL685" class="line" nam7onL6878nL705" class="line" namionLL702">v7023/a>3spa	 class="comment"> * acpi_idle_do_egister" 7lass="sref">acpi_read_bi7_regi78rupt after return.3/spa	  v6443/a>3spa	 class="comment">         * this7class="sr7f">bm_status3/a>) v7023/a>3spa	 class="comment"> * acpi_idle_do_ite_bit_r7gister" class="sref">acp7_writ78onL678" class="line" namionL6=@drvsscpumionLclass=LwihricpumionLamionLef="rmae" ive>v7023/a>3spa	 class="comment"> * acpi_idle_do_i="+code=7"drivers/acpi/processor_7dle.c78pa	  typi3>v7023/a>3spa	 class="comment"> * acpi_idle_do_ Erratum 718: Note that BM_STS doe7nƍt always reflect3/spa	  v6473/a>        3a href="+code=memset" class=7rue state7of bus mastering activit7; for7ing usd) acpi_processor_cx3le.c#_simp nhref="+code=cx" class="srefcpumion_devicidle_do_entry3/acpumion_deviciL708" idonL708" classdevdle_do_entry3/adev688">3/a>        3a href="+code=memset" class=7lly check7the BMIDEA bit of each I7E cha79ef">acpi_processor_po"+code=cx" class="srefcpumion_d 3a hdle_do_entry3/acpumion_d 3a hL708" idonL708" classdrvdle_do_entry3/adrv688">0" idonL640" class="lndexdle_do_entry3/a>(dex>v7083/a>{        v        3spa	 class="comment"7" class="7ref">errata3/a>.3a href=7+code79line" namionL"+code=cx" class="srefa>) v6313/a>        if (3a href="+code=cx" class="b_p" clas7="sref">inb_p3/a>(3a hre7="+co79sref">i3/a> &"+code=cx" class="srefcpumion_sor_idusagidle_do_entry3/acpumion_sor_idusagiL638" idonL638" classsor_idusagidle_do_entry3/asor_idusagiL638"power3/a>.3a href="+codevdle_do_entry3/adev688"r_idle.c#L616" idonLpi3/a>dusagidle_do_entry3/asor_isdusagiL638;= 3a href="+codendexdle_do_entry3/a>(dex>v70083/a> inb_p3/a>(3a 7ref="7code=errata" c"+code=cx" class="sref">cx3/a> = &3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">pocx" class="srefcpumion_acpisor_idode=bmisx" class="cpumion_acpisor_idodeL714" idonL714" classor_idusagidle_do_entry3/asor_idusagiL638113/a> bm_status7/a> =79>v6273/a>             v  3a href="+code=lapic_7sor_idle.7#L698" idonL698" class="7ine" 79"sref">pr3/a>->3a href="+="line" namionL638">v63>pocx" class="sref__nL66_cpuI_BITline" namionL63__nL66_cpuI_BITL714" idonL714" clascpi/proce711" idonL711" ccpi/proce7L638113/a>        if (3a href="+code=cx" class="s" class=7sref">bm_status3/a>; entry_method3/aunlikel="sref">acpi_prounlikel=L714"/a>) v6583/a>{ : v6313/a>        if (3a href="+code=cx" class=8ef="drive8s/acpi/processor_idle.c#8702" 80>v6423/a>  == 3a href="+code=ACPI_CSTATE_HALT" class="sref">ACPI_CSTATE_HALT3/a>) { v7123/a>                3spa	 class="comment"8ata3/spa	8 curr>) _#L644"essor1">v71r_idle.c#L616" idonLpi3/" class="line" naamionL697">wer3/= ~e.c#L616" idonLTS_POLLINGclass="line" naTS_POLLING>v6313/a>        if (3a href="+code=cx" class=8e4a3/spa	8 "sref">inb_p3/a>(3a hre805" i80=errata" class="sref"" class="line" namionL689">v6893/a>3spa	 class="comment">         * PIIX8es interr8pt before call and enabl8s int8rrupt after return.3/spa	  typsmus70be visibonLb_idle.w_iaes90">v6919.a>3spa	 class="comment">         * the 8ef="drive8s/acpi/processor_idle.c#8707" 8donL707" class="line" namionLaaaaaaaaaaaaaaaa* NEED_RESCHED:0">v6919.a>3spa	 class="comment">         * the 8e7="drive8sL698" idonL698" class="8=acpi80onL678" class="line" namionLaaaaaaaaaaaaaaaa*47">v6473/a>        3a href="+code=memset" class=8.c#L709" 8donL709" class="line" na8ionL780L619" class="line" nata3/a>.3a href=smp_mce=piix4" class=smp_mc1">v7113/a>        if (3a href="+code=cx" class=839;t trac8 irqs off for idle */3/s8a	  <80>v6603/a>       v3spa	 class="comment">/*3/spa8imings" c8ass="sref">stop_critical8timin81>: entry_method3/aunlikel="sref">acpi_prounlikel=L714"entry_method3/aneedI_Bsch69"sref">acpi_proneedI_Bsch691">v71)7123/a>                3spa	 class="comment"8sref">cx38a>->3a href="+code=en8ry_me81ef">acpi_processor_power_verify_c33/a>(3a hrcurr>) _#L644"essor" class="sref">curr>) _#L644"essor1">v71r_idle.c#L616" idonLpi3/" class="line" naamionL697">|s/acpi/processor_TS_POLLINGclass="line" naTS_POLLING>v6313/a>        if (3a href="+code=cx" class=8/* Call i8to architectural FFH bas8d C-s8ate */3/spa	  v6313/a>        if (3a href="+code=cx" class=8ocessor_f8h_cstate_enter" class="s8ef">a8pi_processor_ffh_cstat49.a> cx3/a>->3a href="+8ode=e8try_method" cla9.a> v6563/a>       v3a href="+code=acpi_processor8sf="drive8drivers/acpi/processor_i8le.c#81  v6473/a>        3a href="+code=memset" class=8=cx" clas8="sref">cx3/a>->3a hr8f="+c81onL678" class="line" namionLaaaaaaaa* Mus70be dssorb_idle.busL677" civers/a663"w_imight needL691">v6913/a>3spa	 class="comment">         * manu8oc#L709" 8acpi/processor_idle.c#L689" id81pa	  v6913/a>3spa	 class="comment">         * manu8o9;t trac8onL620" class="line" nam8onL6281 always reflect3/spa	  v6473/a>        3a href="+code=memset" class=8PI_STATE_83" class="sref">ACPI_STA8E_C33823/a>(); pr3/a>); prL714" idonL714" clascp"line" namionL659">v68" idonL628" class="line" namionL628">v6>v6883/a>        3spa	 class="comment">/*3/spa8Pref">cx38essor_power_verify_c3" c8ass="82>v6423/a> ) (3a "lineFLUSH_c#L_CACHEdonL715" class="lineFLUSH_c#L_CACHE1">v7113/a>        if (3a href="+code=cx" class=8" class="8ref">cx3/a>->3a href=8+code82>v6853/a>        3a href="+code=acpi_read_bit_8ref="driv8rs/acpi/processor_idle.c8L626"825 v6473/a>        3a href="+code=memset" class=8Pf="drive8onL627" class="line" nam8onL6282processor_get_power_info_defsch69_cloL6or_cx3sleep_evecpi/processor_idlsch69_cloL6or_cx3sleep_evecp1">v7113/a>        if (3a href="+code=cx" class=8"cx" clas8_state" class="sref">lap8c_tim82"sref">pr3/a>->3a href="+ocessor_cx" class="sref">acpi_processor_cx3/a> *3a href= idonL714" class="line" namionL714">v7143/a>        } else if (3a href="+code=cx"8ck_state"8class="sref">tsc_check_s8ate3/82>v6493/a>        3a href="+code=result" class=8c9;t trac8ref">working3/a>++;         } else if (3a href="+code=cx"8sor_idle.8#L631" idonL631" class="8ine" 83>v7013/a>3spa	 class="comment">/**3/spa	  cx38onL632" class="line" nam8onL6383od" class="sref">entry_method3/a> == 3a href="+code=ACPI_CSTATE_FFH" class="sref">ACPI_CSTATE_FFH3/a>) { v73/a>3spa	 class="comment">/**3/spa	  lap8c_tim83L623" class="line" na" class="sref">curr>) _#L644"essor" class="sref">curr>) _#L644"essor1">v71r_idle.c#L616" idonLpi3/" class="line" naamionL697">|s/acpi/processor_TS_POLLINGclass="line" naTS_POLLING>v6313/a>        if (3a href="+code=cx" class=8s/process8onL634" class="line" nam8onL6383>v6343/a>        return (3a href="+code=workin8" class="8ref">working3/a>); pr3/a>); prL714" idonL714" clascp"line" namionL659">v68" idonL628" class="line" namionL628">v6>v0143/a>        } else if (3a href="+code=cx"8sef="driv8donL636" class="line" na8ionL6835 v6= 3a href="+codendexdle_do_entry3/a>(dex>v7043/a>        } else if (3a href="+code=cx"8.#L627" i8onL637" class="line" nam8onL6383;  ac8i_pro83>v6583/a>        3a href="+code=pr" class="sre8.c#L639" 8donL639" class="line" na8ionL683>(void) i3/a>; DEFINE_RAW_SPINLOCKi/processor_idlDEFINE_RAW_SPINLOCKhref= idonL714" class3_loL679" idonL679" cs3_loL6">v7143/a>        } else if (3a href="+code=cx"8ss="sref"8result3/a>; /**3/spa	  v7023/a>3spa	 class="comment"> * acpi_idle_do8c#L643" i8onL643" class="line" nam8onL6484 C3 typi entry3/spa	  v6443/a>3spa	 class="comment">         * this8c/process8thread may not be runnin8 whil84_idle.c#L704" idonL704" class="devssor_iaprgin.c#Lve>v7023/a>3spa	 class="comment"> * acpi_idle_do8function 8/3/spa	  v7043/a>3spa	 class="comment"> *3/spa	  typi3>v7023/a>3spa	 class="comment"> * acpi_idle_do8initializ8 all the C-states info. 8/3/sp84detected3/spa	   * acpi_idle_do8ir_get_po8et3/a>(3a href="+code=pr8 clas84onL678" class="line" namionL6=If" i i namionL67, or_ideepes5 non-62" ionLamionLessle.c#69"iis56ad06">v7063/a>3spa	 class="comment"> */3/spa	  v6473/a>        3a href="+code=memset" class=8sref">res8lt3/a> = 3a href="+code=8cpi_p849(void) acpi_processor_cx3le.c#_bmhref="+code=cx" class="srefcpumion_devicidle_do_entry3/acpumion_deviciL708" idonL708" classdevdle_do_entry3/adev688">3/a>        3a href="+code=memset" class=8ss="sref"8result3/a> == -3a href="8code=85>: 0" idonL640" class="lndexdle_do_entry3/a>(dex>v7083/a>{ result3/a> = 3a href8"+cod85>v64223/a>                3spa	 class="comment"8c#L653" i8onL653" class="line" nam8onL6585line" namionL"+code=cx" class="srefa>) v6313/a>        if (3a href="+code=cx" class=8 /process8result3/a>) .3a href="+codevdle_do_entry3/adev688"r_idle.c#L616" idonLpi3/a>dusagidle_do_entry3/asor_isdusagiL638;= 3a href="+codendexdle_do_entry3/a>(dex>v70083/a> result3/a>; <8 href85sref">i3/a> &"+code=cx" class="sref">cx3/a> = &3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref">pocx" class="srefcpumion_acpisor_idode=bmisx" class="cpumion_acpisor_idodeL714" idonL714" classor_idusagidle_do_entry3/asor_idusagiL638113/a> v6563/a>       v3a href="+code=acpi_processor8get_power8info_default" class="sre8">acp85processor_get_power_info_def="line" namionL638">v63>pocx" class="sref__nL66_cpuI_BITline" namionL63__nL66_cpuI_BITL714" idonL714" clascpi/proce711" idonL711" ccpi/proce7L638113/a>        if (3a href="+code=cx" class=8c#L658" i8onL658" class="line" nam8onL6585>v6583/a>        3a href="+code=pr" class="sre8c#L649" i8gt;3a href="+code=power"8class85L619" class="ef">entry_method3/aunlikel="sref">acpi_prounlikel=L714"/a>) v6583/a>{ v6313/a>        if (3a href="+code=cx" class=8  v7013/a>3spa	 class="comment">/**3/spa	  /a>) wer3/onL696"drivers/acpi/p"drivers/adle.c#L679" idonL679" class="line" namionL679")7123/a>                3spa	 class="comment"8s being &8uot;idle manageable"83/spa86L623" class="line" naef">entry_method3/adrvdle_do_entry3/adrv688"r_idle.c#L616" idonLpf="dsor_idendexdle_do_entry3/apf="dsor_idendex697">widl= 07123/a>                3spa	 class="comment"8s/process8="drivers/acpi/processor8idle.86i_processor_ffh_cstatwer_veri673">v6= 3a href="+coddrvdle_do_entry3/adrv688"r_idle.c#L616" idonLpor_isdle_do_entry3/asor_isL638;= 3a href="+coddrvdle_do_entry3/adrv688"r_idle.c#L616" idonLpf="dsor_idendexdle_do_entry3/apf="dsor_idendex697"]class="sref">ACPf">cx3/a>); 3/a>        3a href="+code=memset" class=8sref">i3/8> = 1;v3a href="+code=i"8class86=errata" class="sref"wer_veriiiiiiiiiiiiiiiiiiiiiiiiiidonL708" classdrvdle_do_entry3/adrv688">0= 3a href="+coddrvdle_do_entry3/adrv688"r_idle.c#L616" idonLpf="dsor_idendexdle_do_entry3/apf="dsor_idendex697"113/a>        if (3a href="+code=cx" class=8s#L656" i8ef">pr3/a>->3a href="8code=86donL626" class="line"66">v5663/a>       v        3spa	 class="comment"8=pr" clas8="sref">pr3/a>->3a hr8f="+c86; v7113/a>        if (3a href="+code=cx" class=8code=pr" 8lass="sref">pr3/a>->38 href86+code=power" class="sref">powocessor.c#L651" idonL651BUSY"line" namionL61BUSY>v6313/a>        if (3a href="+code=cx" class=8 #L649" i8r" class="sref">pr3/a>-&8t;3a 86L619" class="line" naa9.a>  v7013/a>3spa	 class="comment">/**3/spa	  entry_method3/a> == 3a href="+code=ACPI_CSTATE_FFH" class="sref">ACPI_CSTATE_FFH3/a>) { v7663/a>       v        3spa	 class="comment"8i/process8r_idle.c#L673" idonL673"8class87L623" class="line" na" class="sref">curr>) _#L644"essor" class="sref">curr>) _#L644"essor1">v71r_idle.c#L616" idonLpi3/" class="line" naamionL697">wer3/= ~e.c#L616" idonLTS_POLLINGclass="line" naTS_POLLING>v6313/a>        if (3a href="+code=cx" class=8.c#L674" 8donL674" class="line" na8ionL687i_processor_ffh_cstativers/acpi/processor_idl7">v6473/a>        3a href="+code=memset" class=8c#L675" i8onL675" class="line" nam8onL6787nL705" class="line" namionL77777777777777777* TS_POLLING-clear69"">typsmus70be visibonLb_idle.w_iaes90">v6919.a>3spa	 class="comment">         * the 8ef="drive8s/acpi/processor_idle.c#8676" 87rupt after return.3/spa	  v6919.a>3spa	 class="comment">         * the 8check - c8ecks if bus master activ8ty wa87onL707" class="line" namionLaaaaaaaaaaaaaaaa*47">v6473/a>        3a href="+code=memset" class=8code=pr" 8s/acpi/processor_idle.c#8678" 87+code=power" class="se.c#L616" idonLpmp_mce=piix4" class=smp_mc1">v7113/a>        if (3a href="+code=cx" class=8c="+code=8ass="sref">acpi_idle_bm_8heck387>v6493/a>        3a href="+code=result" class=8.c#L680" 8donL680" class="line" na8ionL687vers/acpi/processor_ief">entry_method3/aunlikel="sref">acpi_prounlikel=L714"entry_method3/aneedI_Bsch69"sref">acpi_proneedI_Bsch691">v71)7123/a>                3spa	 class="comment"8f">u323/a8 3a href="+code=bm_statu8" cla88>: curr>) _#L644"essor" class="sref">curr>) _#L644"essor1">v71r_idle.c#L616" idonLpi3/" class="line" naamionL697">|s/acpi/processor_TS_POLLINGclass="line" naTS_POLLING>v6313/a>        if (3a href="+code=cx" class=8c#L682" i8onL682" class="line" nam8onL6888ef">acpi_processor_power_veriocessor.c#L651" idonL651INVAL"line" namionL61INVAL>v6313/a>        if (3a href="+code=cx" class=8sable" cl8ss="sref">bm_check_disab8e3/a>88L623" class="line" naa9.a>  v6853/a>        3a href="+code=acpi_read_bit_8egister" 8lass="sref">acpi_read_bi8_regi885 v71)13/a>        if (3a href="+code=cx" class=8sheck - c8f">bm_status3/a>) acp8_writ88"sref">pr3/a>-vers/acpi/processor_idl Te" classsch69u="drL690"w_iar6 go="lideep-ead_:ve47">v6473/a>        3a href="+code=memset" class=8i="+code=8"drivers/acpi/processor_8dle.c88sref">power3/a>.3a href="+cosch69_cloL6or_cx3sleep_evecpi/processor_idlsch69_cloL6or_cx3sleep_evecp1">v7113/a>        if (3a href="+code=cx" class=8 Erratum 818: Note that BM_STS doe8nྔhref="drivers/acpi/processor_idle.c#L7">v6473/a>        3a href="+code=memset" class=8rue state8of bus mastering activit8; for89ng us to3/spa	  v6913/a>3spa	 class="comment">         * manu8lly check8the BMIDEA bit of each I8E cha89el.3/spa	  v6913/a>3spa	 class="comment">         * manu8	  v6473/a>        3a href="+code=memset" class=8" class="8ref">errata3/a>.3a href=8+code89line" namionL3a href="+code="drivers/acpsor_id"sref">pr3/a>); prL714" idonL714" clascp"line" namionL659">v68" idonL628" class="line" namionL628">v6>v6883/a>        3spa	 class="comment">/*3/spa8b_p" clas8="sref">inb_p3/a>(3a hre8="+co89>v6853/a>        3a href="+code=acpi_read_bit_8=inb_p" c8ass="sref">inb_p3/a>(3a 8ref="895 v6473/a>        3a href="+code=memset" class=8"heck - c8" class="sref">bm_status8/a> =89onL707" class="line" namionLaaaaaaaa*civers/a6bus L677" 7">v6473/a>        3a href="+code=memset" class=8"te_bit_r8#L698" idonL698" class="8ine" 89onL678" class="line" namionLaaaaaaaa* " namion imp ie3"w_ineedLARB_DIS7">v6473/a>        3a href="+code=memset" class=8"="+code=8sref">bm_status3/a>; v6473/a>        3a href="+code=memset" class=8"Erratum 8donL700" class="line" na8ionL789 always reflect3/spa	  v6473/a>        3a href="+code=memset" class=9c#L701" i9onL701" class="line" nam9onL7090ng us to3/spa	  v6473/a>        3a href="+code=memset" class=9c1L701" i9ohe BMIDEA bit of each I9702" 90el.3/spa	  v6473/a>        3a href="+code=memset" class=9c2L701" i9o"drivers/acpi/processor9 C2 a90 C3 typi entry3/spa	  v>v6473/a>        3a href="+code=memset" class=9c3L701" i9oef">errata3/a>.3a href=9ocess90_idle.c#L704" idonL704" clasacpi/pro* wihreu0"do="lianyhrnam06">v7063/a>3spa	 class="comment"> */3/spa	  inb_p3/a>(3a hre905" i90nL705" class="line" namionL777777777*47">v6473/a>        3a href="+code=memset" class=9es interr9pt before call and enabl9s int905 entry_method3/acp"line" namionL659">v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPdle.c#L679" idonL679" c" namionL679>wer3/onL696"drivers/acpi/pcp"line" namionL659">v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPdle.ontrol79" idonL679" c" naontrol2">v7663/a>       v        3spa	 class="comment"9ef="drive9s/acpi/processor_idle.c#9707" 90; ACPraw_spin_loL679" idonL679" craw_spin_loL6L714"wer3/a>.3a href="+cos3_loL679" idonL679" cs3_loL6">v7143/a>        } else if (3a href="+code=cx"9e7="drive9sL698" idonL698" class="9=acpi90+code=power" class="se.c#L616" idonLc3_cpuIs/acpi/processor_idle3_cpuIs/acp>v70++43/a>        } else if (3a href="+code=cx"9e8="drive9sref">bm_status3/a>; v6473/a>        3a href="+code=memset" class=9e9="drive9sonL700" class="line" na9a	  <90vers/acpi/processor_ief">entry_method3/ac3_cpuIs/acpi/processor_idle3_cpuIs/acp>v70/vers/acpi/processonum_onass=_cpu711" idonL711" cnum_onass=_cpu71">v71)3/a>        3a href="+code=memset" class=9imings" c9ass="sref">stop_critical9timin91>: cx3/a>); cxL714" idonL714" clasline"BITREG_ARB_DISABLEdonL715" class="lineBITREG_ARB_DISABLE">v6>v6883/a>        3spa	 class="comment">/*3/spa9sref">cx39a>->3a href="+code=en9ry_me91ef">acpi_processor_polass="sref">ACPraw_spin_unloL679" idonL679" craw_spin_unloL6L714"wer3/a>.3a href="+cos3_loL679" idonL679" cs3_loL6">v7143/a>        } else if (3a href="+code=cx"9/* Call i9to architectural FFH bas9d C-s9ate */3/spa	  }as="sref">/a>) v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPdle.c#L679" idonL679" c" namionL6797663/a>       v        3spa	 class="comment"9ocessor_f9h_cstate_enter" class="s9ef">a9pi_processor_ffh_cstat idonL714" clasline"FLUSH_c#L_CACHEdonL715" class="lineFLUSH_c#L_CACHE1">v7113/a>        if (3a href="+code=cx" class=9class="sr9f">cx3/a>->3a href="+9ode=e9try_method" cla9.a> v6563/a>       v3a href="+code=acpi_processor9sf="drive9drivers/acpi/processor_i9le.c#91processor_get_power_info_defocessor_cx" class="sref">acpi_processor_cx3/a> *3a href= idonL714" class="line" namionL714">v7143/a>        } else if (3a href="+code=cx"9=cx" clas9="sref">cx3/a>->3a hr9f="+c91>v6583/a>        3a href="+code=pr" class="sre9oc#L709" 9acpi/processor_idle.c#L699" id91sref">power3/avers/acpi/processor_idl Re-enrs/a6bus L677" iarbitrae" i"*47">v6473/a>        3a href="+code=memset" class=9o9;t trac9onL620" class="line" nam9onL6291/processor_idef">entry_method3/acp"line" namionL659">v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPdle.c#L679" idonL679" c" namionL679>wer3/onL696"drivers/acpi/pcp"line" namionL659">v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPdle.ontrol79" idonL679" c" naontrol2">v7663/a>       v        3spa	 class="comment"9PI_STATE_93" class="sref">ACPI_STA9E_C3392>: ACPraw_spin_loL679" idonL679" craw_spin_loL6L714"wer3/a>.3a href="+cos3_loL679" idonL679" cs3_loL6">v7143/a>        } else if (3a href="+code=cx"9Pref">cx39essor_power_verify_c3" c9ass="92ef">acpi_processor_polass="sref">ACPlass=wri_id"it_regis>cx3/a>); cxL714" idonL714" clasline"BITREG_ARB_DISABLEdonL715" class="lineBITREG_ARB_DISABLE">v6>v0143/a>        } else if (3a href="+code=cx"9="drivers9acpi/processor_idle.c#L693" id92L623" class="line" na" class="sref">c3_cpuIs/acpi/processor_idle3_cpuIs/acp>v70--43/a>        } else if (3a href="+code=cx"9=cessor_f9r_idle.c#L624" idonL624"9class92i_processor_ffh_cstate_enter3/a>(3a raw_spin_unloL679" idonL679" craw_spin_unloL6L714"wer3/a>.3a href="+cos3_loL679" idonL679" cs3_loL6">v7143/a>        } else if (3a href="+code=cx"9" class="9ref">cx3/a>->3a href=9+code92ry_method" cla9.a> v6563/a>       v3a href="+code=acpi_processor9Pf="drive9onL627" class="line" nam9onL6292processor_get_power_info_defsch69_cloL6or_cx3wakeup_evecpi/processor_idlsch69_cloL6or_cx3wakeup_evecphref=0143/a>        } else if (3a href="+code=cx"9"cx" clas9_state" class="sref">lap9c_tim92>v6583/a>        3a href="+code=pr" class="sre9ck_state"9class="sref">tsc_check_s9ate3/92L619" class="ef">entry_method3/a> == 3a href="+code=ACPI_CSTATE_FFH" class="sref">ACPI_CSTATE_FFH3/a>) { v73/a>        3a href="+code=pr" class="sre9c9;t trac9ref">working3/a>++; curr>) _#L644"essor" class="sref">curr>) _#L644"essor1">v71r_idle.c#L616" idonLpi3/" class="line" naamionL697">|s/acpi/processor_TS_POLLINGclass="line" naTS_POLLING>v6313/a>        if (3a href="+code=cx" class=9sor_idle.9#L631" idonL631" class="9ine" 93>v7013/a>3spa	 class="comment">/**3/spa	  cx39onL632" class="line" nam9onL6393od" class="sr3a href="+code="drivers/acpsor_id"sref">pr3/a>); prL714" idonL714" clascp"line" namionL659">v68" idonL628" class="line" namionL628">v6>v0143/a>        } else if (3a href="+code=cx"9s"drivers9adcast" class="sref">lap9c_tim93L623" class="673">v6= 3a href="+codendexdle_do_entry3/a>(dex>v7043/a>        } else if (3a href="+code=cx"9s/process9onL634" class="line" nam9onL6393">v6749.a> working3/a>); v70/v663/a>       v        3spa	 class="comment"9.#L627" i9onL637" class="line" nam9onL6393processor_getclass="sref">ACPne" 11" idonL711" cne" >v70/v6>power3/avers/acpi/pr"+cing">"ocessor_c"7">v647>3/a>        3a href="+code=memset" class=9or_get_po9er_info" class="sref">ac9i_pro937rocessor_getclass="sref">ACPown hdle_do_entry3/aown h>v70/v6>power3acpi/processor_THIS_MODULEdonL715" class=THIS_MODULE">v6>3/a>        3a href="+code=memset" class=9ok_state"9donL639" class="line" na9ionL6938rocessor_getclass="sref">ACPenIs/re_t6orrqenCSTATE_FFH3/a>) {Is/re_t6orrqen>v70/v61>3/a>        3a href="+code=memset" class=9o9;t trac9ef">i3/a>; ; /**3/spa	  v7023/a>3spa	 class="comment"> * acpi_idle_do9c#L643" i9onL643" class="line" nam9onL6494 C3 typi entry3/spa	   * acpis73"p_cpumion_cx - prepare3"andL626figure3"CPUIDLE">>v7023/a>3spa	 class="comment"> * acpi_idle_do9c/process9thread may not be runnin9 whil94_idle.c#L704" idonL704" class=devici i.e. per-cpuonL704">v7043/a>3spa	 class="comment"> *3/spa	  v7043/a>3spa	 class="comment"> *3/spa	  v7043/a>3spa	 class="comment"> *3/spa	  v6473/a>        3a href="+code=memset" class=9ir_get_po9et3/a>(3a href="+code=pr9 clas94onL67d)  * acpis73"p_cpumion_cxdle_do_entry3/aocesst"> * acpis73"p_cpumion_cxL714""+code=cx" class="srefa>) v6373/a>        3a href="+code=pr" class="sre9c#L649" i9onL649" class="line" nam9onL6494pa	  63/a>       v        3spa	 class="comment"9sref">res9lt3/a> = 3a href="+code=9cpi_p94/processor_ide idonL640" class="ldle_do_entry3/a>">v68" idonL628" class/acpi/processor_idle/acp>v70/v" idonL628" clasCPUIDLE_DRIVERlionL66ionR3a href="+code=ACPUIDLE_DRIVERlionL66ionR3>v7043/a>        } else if (3a href="+code=cx"9ss="sref"9result3/a> == -3a href="9code=95>: cx3/a> = &3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref"43/a>        } else if (3a href="+code=cx"9s#L642" i9ef">result3/a> = 3a href9"+cod951:         } else if (3a href="+code=cx"9s#L643" i9onL653" class="line" nam9onL6595line" namionL"+code=cx" class="srefcpumion_devicidle_do_entry3/acpumion_deviciL708" idonL708" classdevdle_do_entry3/adev688"/v" idonL628" clasper_cpuline" namionL638er_cpuL714" idonL714" clasr" clcpumion_devicidle_do_entry3/ar" clcpumion_devici">v68" idonL628" clascp"line" namionL659">v6r_idle.c#L616" idonLeae=piix4" class=ea1">v143/a>        } else if (3a href="+code=cx"9 /process9result3/a>) result3/a>; <9 href95sref">i3/a> &ef">/a>) v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowepis73"p_dsso"line" namionL65owepis73"p_dsso>v6373/a>        3a href="+code=pr" class="sre9c#L656" i9onL656" class="line" nam9onL6595donL626" class="line"ocessor.c#L651" idonL651INVAL"line" namionL61INVAL>v6313/a>        if (3a href="+code=cx" class=9get_power9info_default" class="sre9">acp95>v6273/a>             v  3a href="+code=lapic_9c#L658" i9onL658" class="line" nam9onL65957ref">i3/a> &ef">a>) v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowep"line" namionL65owep>v70/ver07123/a>                3spa	 class="comment"9c#L649" i9gt;3a href="+code=power"9class95L619" class="line" naocessor.c#L651" idonL651INVAL"line" namionL61INVAL>v6313/a>        if (3a href="+code=cx" class=9gref">res9onL660" class="line" nam9onL6695vers/acpi/proa9.a> v7013/a>3spa	 class="comment">/**3/spa	  /a>)         3a href="+code=pr" class="sre9s being &9uot;idle manageable"93/spa96L623" class="line" naocessor.c#L651" idonL651INVAL"line" namionL61INVAL>v6313/a>        if (3a href="+code=cx" class=9s/process9="drivers/acpi/processor9idle.96>v6343/a>        return (3a href="+code=workin9sref">i3/9> = 1;v3a href="+code=i"9class96alid" class="3a href="+code=devdle_do_entry3/adev688"r_idle.c#L616" idonLcpuline" namionL63cpuL714/v" idonL628" claspp"line" namionL659">v6r_idle.c#L616" idonLeae=piix4" class=ea1">v13/a>        if (3a href="+code=cx" class=9s#L656" i9ef">pr3/a>->3a href="9code=96>v6563/a>       v3a href="+code=acpi_processor9=pr" clas9="sref">pr3/a>->3a hr9f="+c96; a>) v70/ver073/a>       v3a href="+code=acpi_processor9=#L658" i9lass="sref">pr3/a>->39 href96+code=power" class="sa>) v70/v 113/a>        if (3a href="+code=cx" class=9s#L649" i9r" class="sref">pr3/a>-&9t;3a 96>v6493/a>        3a href="+code=result" class=9i/process9r_idle.c#L670" idonL670"9class96vers/acpi/profor">a>) v6/v 11donL640" class="ldle_do_entry3/a>">v6 <1donL640" class="line"PROCESSOR_MAX_POWERonL712" class="line"PROCESSOR_MAX_POWERL679>wer3/onL696"drivers/acpi/pldle_do_entry3/a>">v6 <1v" idonL628" clasmax_csor_ie=piix4" class=max_csor_i>v7096"drivers/acpi/pldle_do_entry3/a>">v6++7123/a>                3spa	 class="comment"9sor_idle.9#L671" idonL671" class="9ine" 97>: ACPode=power" class="sref">power3/a>.3a href="+copp"line" namionL659">v6r_idle.c#L616" idonLpowep"line" namionL65owep>v70class="sref">ACPpor_isdle_do_entry3/asor_isL638;= 3a href="+codldle_do_entry3/a>">v6083/a> acpi_processor_polass="sref">ACPsor_idusagidle_do_entry3/asor_idusagiL638"power3/a>.3a href="+codevdle_do_entry3/adev688"r_idle.c#L616" idonLpi3/a>dusagidle_do_entry3/asor_isdusagiL638;= 3a href="+cods/acpi/processor_idle/acp>v70083/a>  /a>)         3a href="+code=pr" class="sre9c#L675" i9onL675" class="line" nam9onL6797=errata" class="sref"wer_veriaontinue83/a> v6563/a>       v3a href="+code=acpi_processor9check - c9ecks if bus master activ9ty wa97onL70#ifdef" idonL628" clasCONFIG_HOTPLUG_c#La href="+code=ACONFIG_HOTPLUG_c#Lv6563/a>       v3a href="+code=acpi_processor9c#L658" i9s/acpi/processor_idle.c#9678" 97+code=power" class="sef">/acpi/processor_> == 3a href="+code=ACPI_CSTATE_HALT" classTE_C23/a>) wer3/onL696"entry_method3/anum_onass=_cpu711" idonL711" cnum_onass=_cpu71">v71>widl 17>wer3/onL693/a>       v3a href="+code=acpi_processor9c#L649" i9ass="sref">acpi_idle_bm_9heck397L619" class="line" naaaaa/a>) v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPhas_cso11" idonL711" chas_csoL679>wer3/onL693/a>       v3a href="+code=acpi_processor9c/process9donL680" class="line" na9ionL697vers/acpi/processor_iaaaa/" idonL714" clasr" clgbl_FAD3a href="+code=Ar" clgbl_FAD3">v6class="sref">ACPflaL711" idonL711" cflaL7">v6 onL696"drivers/acpi/p"lineFAD3_C2_MP_SUPPORTEDonL712" class="line"FAD3_C2_MP_SUPPORTED688"773/a>        3a href="+code=pr" class="sre9f">u323/a9 3a href="+code=bm_statu9" cla98>:  a#endif3/a> bm_check_disab9e3/a>98L623"3/a> (3a cpumion_scpisor_idode=bmisx" class="cpumion_scpisor_idodeL714" idonL714" classor_idusagidle_do_entry3/asor_idusagiL6388" idonL628" class="line" namionL628">v6143/a>        } else if (3a href="+code=cx"9c#L685" i9onL685" class="line" nam9onL6898>v6853/a>        3a href="+code=acpi_read_bit_9egister" 9lass="sref">acpi_read_bi9_regi98donL626" class="line"= 3a href="+cods/acpi/processor_idle/acp>v70++43/a>        } else if (3a href="+code=cx"9sheck - c9f">bm_status3/a>) entry_method3/a>/acpi/processor_idle/acp>v70/vv" idonL628" clasCPUIDLE_ionL66MAXa href="+code=ACPUIDLE_ionL66MAX688"73/a>        3a href="+code=pr" class="sre9ite_bit_r9gister" class="sref">acp9_writ98+code=power" class="sref">powbreak43/a>        } else if (3a href="+code=cx"9s#L649" i9"drivers/acpi/processor_9dle.c98sref">power3/a9.a> /*3/spa9rue state9of bus mastering activit9; for993/a>(); /acpi/processor_idle/acp>v7043/a>        } else if (3a href="+code=cx"9lly check9the BMIDEA bit of each I9E cha99>v6423/a> /acpi/processor_idle/acp>v7073/a>        3a href="+code=pr" class="sre9" class="9ref">errata3/a>.3a href=9+code99i_processor_ffh_cstatocessor.c#L651" idonL651INVAL"line" namionL61INVAL>v6313/a>        if (3a href="+code=cx" class=9b_p" clas9="sref">inb_p3/a>(3a hre9="+co99>v6853/a>        3a href="+code=acpi_read_bit_9=inb_p" c9ass="sref">inb_p3/a>(3a 9ref="995 bm_status9/a> =99;  v6583/a>        3a href="+code=pr" class="sre9"="+code=9sref">bm_status3/a>; v7023/a>3spa	 class="comment"> * acpi_idle_do9"Erratum 9donL700" class="line" na9ionL799 always reflect3/spa	   * acpis73"p_cpumion"">typs- prepare3"andL626figure3"cpumion2">v7023/a>3spa	 class="comment"> * acpi_idle_do10c#L701" i10c#L7700" class="line" na10c#L>10c#always reflect3/spa	  v6473/nt"e>/a>3spa	 class="comment"> * acpi_idle_do10c1L701" i10che BMIDEA bit of each I10che>10cel.3/spa	  v7023/a>3spa	 class="comment"> * acpi_idle_do10c2L701" i10c"drivers/acpi/processor10c"d>10c C3 typi entry3/spa	  v7043/a>3spa	 class="comment"> *3/spa	  errata3/a>.3a href=10cef>10c_idle.c#L704" idonL704" class47">v6473/a>        3a href="+code=memset" class=10c4L701" i10c"sref">inb_p3/a>(3a hre10c"s>10c4nL67d)  * acpis73"p_cpumion_por_isdle_do_entry3/a"drivt"> * acpis73"p_cpumion_por_isL714""+code=cx" class="srefa>) v6373/a>        3a href="+code=pr" class="sre10c5L701" i10css="sref">inb_p3/a>(3a 10css>10c5a	  63/a>       v        3spa	 class="comment"10c6L701" i10c class="sref">bm_status10c c>10c; v68" idonL628" class/acpi/processor_idle/acp>v70/v" idonL628" clasCPUIDLE_DRIVERlionL66ionR3a href="+code=ACPUIDLE_DRIVERlionL66ionR3>v7043/a>        } else if (3a href="+code=cx"10c7L701" i10cL698" idonL698" class="10cL6>10c+code=power" "+code=cx" class="sref">cx3/a> = &3a href="+code=pr" class="sref">pr3/a>->3a href="+code=power" class="sref"43/a>        } else if (3a href="+code=cx"10c8L701" i10cref">bm_status3/a>; 10c8code=power" "+code=cx" class="srefcpumion_por_idle_do_entry3/acpumion_sor_iL638" idonL638" classsor_ii/processor_idlpi3/aref"43/a>        } else if (3a href="+code=cx"10c9L701" i10conL700" class="line" na10con>10c9code=power" "+code=cx" class="srefcpumion_d 3a hdle_do_entry3/acpumion_d 3a hL708" idonL708" classdrvdle_do_entry3/adrv688""power3/a>.3a href="+coocessor_cx" 3a hdle_do_entry3/aocessor_cx" 3a h>v7043/a>        } else if (3a href="+code=cx"101#L701" i10ass="sref">stop_critical10ass>10asv6583/a>        3a href="+code=pr" class="sre10a1L701" i10a>->3a href="+code=en10a>->10aod" class="sref">/a>) v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowepis73"p_dsso"line" namionL65owepis73"p_dsso>v6373/a>        3a href="+code=pr" class="sre10a2L701" i10to architectural FFH bas10to >10aL623" class="line" naocessor.c#L651" idonL651INVAL"line" namionL61INVAL>v6313/a>        if (3a href="+code=cx" class=10a3L701" i10h_cstate_enter" class="s10h_c>10a>v6343/a>        return (3a href="+code=workin10a4L701" i10f">cx3/a>->3a href="+10f">>10asref">i3/a> &ef">a>) v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowep"line" namionL65owep>v70/ver073/a>        return (3a href="+code=workin10a5L701" i10ocessor_idle.c#L715" ido10oce>10adonL626" class="line"ocessor.c#L651" idonL651INVAL"line" namionL61INVAL>v6313/a>        if (3a href="+code=cx" class=10a6L701" i10drivers/acpi/processor_i10dri>10a>v6273/a>             v  3a href="+code=lapic_10a7L701" i10="sref">cx3/a>->3a hr10="s>10a"sref">pr3/a>-donL708" classdrvdle_do_entry3/adrv688"r_idle.c#L616" idonLpf="dsor_idendexdle_do_entry3/apf="dsor_idendex697">= -113/a>        if (3a href="+code=cx" class=10a8L701" i10acpi/processor_idle.c#L610acp>10a8code=power" for">a>) v6/v 01donL640" class="ldle_do_entry3/a>">v6 <1donL640" class="CPUIDLE_ionL66MAXa href="+code=ACPUIDLE_ionL66MAX688"96"drivers/acpi/pldle_do_entry3/a>">v6++7123/a>                3spa	 class="comment"10a9L701" i10onL620" class="line" nam10onL>10avers/acpi/processor_i" class="sref">drvdle_do_entry3/adrv688"r_idle.c#L616" idonLpor_isdle_do_entry3/asor_isL638;= 3a href="+codldle_do_entry3/a>">v60class="sref">ACPne" 11" idonL711" cne" >v70[0]/v" vers/acpi/pr"+cing">'\0'7">v64713/a>        if (3a href="+code=cx" class=102#L701" i103" class="sref">ACPI_STA103" >103"ers/acpi/processor_i" class="sref">drvdle_do_entry3/adrv688"r_idle.c#L616" idonLpor_isdle_do_entry3/asor_isL638;= 3a href="+codldle_do_entry3/a>">v60class="sref">ACPdescdle_do_entry3/adesc>v70[0]/v" vers/acpi/pr"+cing">'\0'7">v64713/a>        if (3a href="+code=cx" class=1021L701" i10essor_power_verify_c3" c10ess>103od" class="sra9.a> 103L623"3/a> 1033ref">i3/a> &ef">a>) v70/ver073/a>       v3a href="+code=acpi_processor1034L701" i10ref">cx3/a>->3a href=10ref>103=errata" class="sref"a>) v70/v 113/a>        if (3a href="+code=cx" class=1035L701" i10rs/acpi/processor_idle.c10rs/>103>v6563/a>       v3a href="+code=acpi_processor1036L701" i10onL627" class="line" nam10onL>1036code=power" for">a>) v6/v 11donL640" class="ldle_do_entry3/a>">v6 <1donL640" class="line"PROCESSOR_MAX_POWERonL712" class="line"PROCESSOR_MAX_POWERL679>wer3/onL696"drivers/acpi/pldle_do_entry3/a>">v6 <1v" idonL628" clasmax_csor_ie=piix4" class=max_csor_i>v7096"drivers/acpi/pldle_do_entry3/a>">v6++7123/a>                3spa	 class="comment"1027L701" i10_state" class="sref">lap10_st>103+code=power" class="se.c#L616" idonLcde=power" class="sref">power3/a>.3a href="+copp"line" namionL659">v6r_idle.c#L616" idonLpowep"line" namionL65owep>v70class="sref">ACPpor_isdle_do_entry3/asor_isL638;= 3a href="+codldle_do_entry3/a>">v6083/a> tsc_check_s10cla>103>v6493/a>        3a href="+code=result" class=1039L701" i10ref">working3/a>++; 103vers/acpi/processor_ief">/a>)         3a href="+code=pr" class="sre103#L701" i10#L631" idonL631" class="10#L6>10#L:  10#>v6423/a> lap10adc>10#2nL70#ifdef" idonL628" clasCONFIG_HOTPLUG_c#La href="+code=ACONFIG_HOTPLUG_c#Lv6563/a>       v3a href="+code=acpi_processor10#3L701" i10onL634" class="line" nam10onL>10#i_processor_ffh_cstatef">/acpi/processor_> == 3a href="+code=ACPI_CSTATE_HALT" classTE_C23/a>) wer3/onL696"entry_method3/anum_onass=_cpu711" idonL711" cnum_onass=_cpu71">v71>widl 17>wer3/onL693/a>       v3a href="+code=acpi_processor10#4L701" i10ref">working3/a>); 10#=errata" class="sref"wer_/a>) v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPhas_cso11" idonL711" chas_csoL679>wer3/onL693/a>       v3a href="+code=acpi_processor10#5L701" i10donL636" class="line" na10don>10#donL626" class="line"wer_/" idonL714" clasr" clgbl_FAD3a href="+code=Ar" clgbl_FAD3">v6class="sref">ACPflaL711" idonL711" cflaL7">v6 onL696"drivers/acpi/p"lineFAD3_C2_MP_SUPPORTEDonL712" class="line"FAD3_C2_MP_SUPPORTED688"773/a>        3a href="+code=pr" class="sre10#6L701" i10onL637" class="line" nam10onL>10#; ac10er_>10#7f">a#endif3/a> 10#>v6493/a>        3a href="+code=result" class=1039L701" i10ef">i3/a>; 10#vers/acpi/processor_i" class="sref">sor_ii/processor_idlpi3/aref""power3/a>.3a href="+codrvdle_do_entry3/adrv688"r_idle.c#L616" idonLpor_isdle_do_entry3/asor_isL638;= 3a href="+cods/acpi/processor_idle/acp>v70083/a> ; snpcintfdle_do_entry3/asnpcintf1">v7" class="sref">sor_ii/processor_idlpi3/aref"r_idle.c#L616" idonLne" 11" idonL711" cne" >v708" idonL628" clasCPUIDLE_NAME_LENa href="+code=ACPUIDLE_NAME_LEN>v708" vers/acpi/pr"+cing">"C%d"7">v647>6"drivers/acpi/pldle_do_entry3/a>">v6143/a>        } else if (3a href="+code=cx"10r1L701" i10onL642" class="line" nam10onL>10ref">acpi_processor_polass="sref">ACPsorncp="sref">acpi_prosorncp=1">v7" class="sref">sor_ii/processor_idlpi3/aref"r_idle.c#L616" idonLdescdle_do_entry3/adesc>v708" idonL628" class="line" namionL628">v6r_idle.c#L616" idonLdescdle_do_entry3/adesc>v708" idonL628" clasCPUIDLE_DESC_LENa href="+code=ACPUIDLE_DESC_LEN">v6143/a>        } else if (3a href="+code=cx"10r2L701" i10onL643" class="line" nam10onL>10rL623" class="line" na" class="sref">sor_ii/processor_idlpi3/aref"r_idle.c#L616" idonLexit_l3/anc="sref">acpi_proexit_l3/anc=>v70/v" idonL628" class="line" namionL628">v6r_idle.c#L616" idonLl3/anc="sref">acpi_prol3/anc=>v7043/a>        } else if (3a href="+code=cx"10r3L701" i10thread may not be runnin10thr>10ri_processor_ffh_cstate_enter3/a>(3a sor_ii/processor_idlpi3/aref"r_idle.c#L616" idonLtarget_residanc="sref">acpi_protarget_residanc=>v70/v" idonL628" class="line" namionL628">v6r_idle.c#L616" idonLl3/anc="sref">acpi_prol3/anc=>v70 *r3a href="+code="d/anc=_fact"drivers/acpi/pro"d/anc=_fact"d>v7043/a>        } else if (3a href="+code=cx"10r4L701" i10/3/spa	  10rdonL626" class="line"= 3a href="+codsor_ii/processor_idlpi3/aref"r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6 =r013/a>        if (3a href="+code=cx" class=10r6L701" i10 all the C-states info. 10 al>10r; entry_method3/a> == 3a href="+code=ACPI_CSTATE_FFH" class=TE_C23/a>) (3a href="+code=pr10et3>10r+code=power" class="sref">powcrse"acpi/processor_idle.ionL6681onL712" class="line"ionL6681688":3/a>                3spa	 class="comment"1048L701" i10onL649" class="line" nam10onL>10rL619" class="line" naaaaaaaaaef">entry_method3/a> == 3a href="+code=ACPI_CSTATE_FFH" class="sref">ACPI_CSTATE_FFH3/a>) { v73/a>        3a href="+code=pr" class="sre10r9L701" i10lt3/a> = 3a href="+code=10lt3>10rvers/acpi/processor_iaaaaclass="line"= 3a href="+codsor_ii/processor_idlpi3/aref"r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6 |s/acpi/processor_CPUIDLE_FLAG_TIME_VALIDonL712" class="CPUIDLE_FLAG_TIME_VALID>v7043/a>        } else if (3a href="+code=cx"105#L701" i10result3/a> == -3a href="10res>10rev6853/a>        3a href="+code=acpi_read_bit_1051L701" i10ef">result3/a> = 3a href10ef">10ref">acpi_processor_power_veri" class="sref">sor_ii/processor_idlpi3/aref"r_idle.c#L616" idonLen>cx3/a>); cx>v70/v" idonL628" clasocessor_cxen>cx_c1onL712" class="ocessor_cxen>cx_c1>v7043/a>        } else if (3a href="+code=cx"1052L701" i10onL653" class="line" nam10onL>10rL623" class="line" nawer_veri" class="sref">sor_ii/processor_idlpi3/aref"r_idle.c#L616" idonLen>cx_dea_CSTATE_FFH3/a>) { cx_dea_>v70/v" idonL628" clasocessor_cxplay_dea_CSTATE_FFH3/a>)ocessor_cxplay_dea_>v7043/a>        } else if (3a href="+code=cx"1053L701" i10result3/a>) drvdle_do_entry3/adrv688"r_idle.c#L616" idonLpf="dsor_idendexdle_do_entry3/apf="dsor_idendex697">= = 3a href="+cods/acpi/processor_idle/acp>v7043/a>        } else if (3a href="+code=cx"1054L701" i10ass="sref">result3/a>; <10ass>10r=errata" class="sref"wer_veribreak43/a>        } else if (3a href="+code=cx"10r5L701" i10onL656" class="line" nam10onL>10r>v6563/a>       v3a href="+code=acpi_processor1056L701" i10info_default" class="sre10inf>10r;                 3spa	 class="comment"1057L701" i10onL658" class="line" nam10onL>10r+code=power" class="sref">pow= 3a href="+codsor_ii/processor_idlpi3/aref"r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6 |s/acpi/processor_CPUIDLE_FLAG_TIME_VALIDonL712" class="CPUIDLE_FLAG_TIME_VALID>v7043/a>        } else if (3a href="+code=cx"1058L701" i10gt;3a href="+code=power"10gt;>10rL619" class="line" naaaaaaaaa" class="sref">sor_ii/processor_idlpi3/aref"r_idle.c#L616" idonLen>cx3/a>); cx>v70/v" idonL628" clasocessor_cxen>cx_simp ii/processor_idlocessor_cxen>cx_simp i>v7043/a>        } else if (3a href="+code=cx"1059L701" i10onL660" class="line" nam10onL>10rvers/acpi/processor_iaaaaclas" class="sref">sor_ii/processor_idlpi3/aref"r_idle.c#L616" idonLen>cx_dea_CSTATE_FFH3/a>) { cx_dea_>v70/v" idonL628" clasocessor_cxplay_dea_CSTATE_FFH3/a>)ocessor_cxplay_dea_>v7043/a>        } else if (3a href="+code=cx"106#L701" i10"drivers/acpi/processor_10"dr>10"d_processor_ffh_cstatwer_veri" class="sref">drvdle_do_entry3/adrv688"r_idle.c#L616" idonLpf="dsor_idendexdle_do_entry3/apf="dsor_idendex697">= = 3a href="+cods/acpi/processor_idle/acp>v7043/a>        } else if (3a href="+code=cx"1061L701" i10 typi C2 or C3 is availa10 ty>10"ef">acpi_processor_power_veribreak43/a>        } else if (3a href="+code=cx"1062L701" i10uot;idle manageable"10uot>10"L623"3/a> 10"i_processor_ffh_cstatwer_veriarse"acpi/processor_idle.ionL6683onL712" class="line"ionL6683688":3/a>                3spa	 class="comment"1064L701" i10> = 1;v3a href="+code=i"10> =>10"=errata" class="sref"wer_veri= 3a href="+codsor_ii/processor_idlpi3/aref"r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6 |s/acpi/processor_CPUIDLE_FLAG_TIME_VALIDonL712" class="CPUIDLE_FLAG_TIME_VALID>v7043/a>        } else if (3a href="+code=cx"1065L701" i10ef">pr3/a>->3a href="10ef">10"donL626" class="line"wer_clas" class="sref">sor_ii/processor_idlpi3/aref"r_idle.c#L616" idonLen>cx3/a>); cx>v70/v" idonL628" clascp"line" namionL659">v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPdle.c#L679" idonL679" c" namionL679>?3/a>        } else if (3a href="+code=cx"1066L701" i10="sref">pr3/a>->3a hr10="s>10"; ocessor_cxen>cx_bmi/processor_idlocessor_cxen>cx_bm                 3spa	 class="comment"1067L701" i10lass="sref">pr3/a>->310las>10"+code=power" class="sref">pows="line"wer_clas" class="sref">ocessor_cxen>cx_simp ii/processor_idlocessor_cxen>cx_simp i>v7043/a>        } else if (3a href="+code=cx"1068L701" i10r" class="sref">pr3/a>-&10r" >10"L619" class="line" naaaaaaaaabreak43/a>        } else if (3a href="+code=cx"1069L701" i10r_idle.c#L670" idonL670"10r_i>10"vers/acpi/processor_ia9.a>  10#ef">acpi_processor_polass="sref">ACPs/acpi/processor_idle/acp>v70++43/a>        } else if (3a href="+code=cx"10#2L701" i10r_idle.c#L673" idonL673"10r_i>10#L623" class="line" naef">entry_method3/a>/acpi/processor_idle/acp>v70/vv" idonL628" clasCPUIDLE_ionL66MAXa href="+code=ACPUIDLE_ionL66MAX688"73/a>        3a href="+code=pr" class="sre10#3L701" i10donL674" class="line" na10don>10#i_processor_ffh_cstatwer_veribreak43/a>        } else if (3a href="+code=cx"1074L701" i10onL675" class="line" nam10onL>10#ry_method" cla9.a> 10#>v6563/a>       v3a href="+code=acpi_processor1076L701" i10ecks if bus master activ10eck>10#processor_get_power_info_defdrvdle_do_entry3/adrv688"r_idle.c#L616" idonLpor_iIs/acpi/processor_idlpi3/aIs/acpL714/v" idonL628" clas>/acpi/processor_idle/acp>v7043/a>        } else if (3a href="+code=cx"10#7L701" i10s/acpi/processor_idle.c#10s/a>10#>v6583/a>        3a href="+code=pr" class="sre10#8L701" i10ass="sref">acpi_idle_bm_10ass>10#L619" class="ef">/a>) 10#vers/acpi/processor_iocessor.c#L651" idonL651INVAL"line" namionL61INVAL>v6313/a>        if (3a href="+code=cx" class=108#L701" i10 3a href="+code=bm_statu10 3a>10 3v6583/a>        3a href="+code=pr" class="sre1081L701" i10onL682" class="line" nam10onL>10 ef">acpi_prococessor013/a>        if (3a href="+code=cx" class=10 2L701" i10ss="sref">bm_check_disab10ss=>10 L623"a9.a> 10 >v6343/a>        return (3a href="+code=workin1084L701" i10onL685" class="line" nam10onL>10 ry_meref="drivers/acpi/p"drivt"> * acpihotplugi/processor_idlocesst"> * acpihotplug1">v7"+code=cx" class="srefa>) v6373/a>        3a href="+code=pr" class="sre1085L701" i10lass="sref">acpi_read_bi10las>10 5a	  63/a>       v        3spa	 class="comment"1086L701" i10f">bm_status3/a>) >10 ; v6 =r013/a>        if (3a href="+code=cx" class=1087L701" i10gister" class="sref">acp10gis>10 +code=power" "+code=cx" class="srefcpumion_devicidle_do_entry3/acpumion_deviciL708" idonL708" classdevdle_do_entry3/adev688"13/a>        if (3a href="+code=cx" class=1088L701" i10"drivers/acpi/processor_10"dr>10 >v6493/a>        3a href="+code=result" class=1089L701" i1018: Note that BM_STS doe1018:>10 /processor_idef">entry_method3/adisrs/ad_bysor_cxboot_parami/processor_idldisrs/ad_bysor_cxboot_param1">v7773/a>        3a href="+code=pr" class="sre109#L701" i10of bus mastering activit10of >10ofers/acpi/processor_iocessor013/a>        if (3a href="+code=cx" class=1091L701" i10the BMIDEA bit of each I10the>10o>v6423/a> 10ov6373/a>        3a href="+code=pr" class="sre1093L701" i10ref">errata3/a>.3a href=10ref>10oi_processor_ffh_cstatocessor.c#L651" idonL651INVAL"line" namionL61INVAL>v6313/a>        if (3a href="+code=cx" class=10o4L701" i10="sref">inb_p3/a>(3a hre10="s>10o>v6853/a>        3a href="+code=acpi_read_bit_1095L701" i10ass="sref">inb_p3/a>(3a 10ass>10o5processor_idef">entry_method3/anocso11" idonL711" cnocsovers7123/a>                3spa	 class="comment"1096L701" i10" class="sref">bm_status10" c>10o; v6313/a>        if (3a href="+code=cx" class=10o7L701" i10#L698" idonL698" class="10#L6>10o+code=power" a9.a> bm_status3/a>; 10o>v6493/a>        3a href="+code=result" class=1099L701" i10donL700" class="line" na10don>10o/processor_idef">/a>) v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowepis73"p_dsso"line" namionL65owepis73"p_dsso>v6373/a>        3a href="+code=pr" class="sre11c#L701" i11c#L7700" class="line" na11c#L>110fers/acpi/processor_iocessor.c#L651" idonL651NODEV"line" namionL61NODEV>v6313/a>        if (3a href="+code=cx" class=11c1L701" i11che BMIDEA bit of each I11che>110>v6423/a> 110v68" idonL628" clascp"line" namionL659">v6r_idle.c#L616" idonLeae=piix4" class=ea1">v143/a>        } else if (3a href="+code=cx"1103L701" i11cef">errata3/a>.3a href=11cef>1103a href="drividonL708" classcpumion_pause_and_loL6dle_do_entry3/acpumion_pause_and_loL61">v7743/a>        } else if (3a href="+code=cx"1104L701" i11c"sref">inb_p3/a>(3a hre11c"s>110alid" class="3a href="+code=cpumion_disrs/a_devicidle_do_entry3/acpumion_disrs/a_deviciL714" idonL714" clasdevdle_do_entry3/adev688"743/a>        } else if (3a href="+code=cx"1105L701" i11css="sref">inb_p3/a>(3a 11css>1105lid" class="3a href="+code=ocesst"> * acpiget_5owepissor" class="sref">ocesst"> * acpiget_5owepissorL714" idonL714" clas="line" namionL638">v63743/a>        } else if (3a href="+code=cx"1106L701" i11c class="sref">bm_status11c c>110; a>) v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowep"line" namionL65owep>v707123/a>                3spa	 class="comment"11c7L701" i11cL698" idonL698" class="11cL6>110+code=power" class="se.c#L616" idonLocesst"> * acpis73"p_cpumion_cxdle_do_entry3/aocesst"> * acpis73"p_cpumion_cxL714" idonL714" clas="line" namionL638">v63743/a>        } else if (3a href="+code=cx"1108L701" i11cref">bm_status3/a>; 110L619" class="line" naonL640" class="oceline" namionL63oce">v6 =r3a href="+code=cpumion_enrs/a_devicidle_do_entry3/acpumion_enrs/a_deviciL714" idonL714" clasdevdle_do_entry3/adev688"743/a>        } else if (3a href="+code=cx"1109L701" i11conL700" class="line" na11con>11c9code=power" a9.a> stop_critical11ass>1113/a>(); v7743/a>        } else if (3a href="+code=cx"11a1L701" i11a>->3a href="+code=en11a>->111>v6423/a> 11aL623" class="ocessoronL640" class="oceline" namionL63oce">v643/a>        } else if (3a href="+code=cx"11a3L701" i11h_cstate_enter" class="s11h_c>11a>v634a9.a> cx3/a>->3a href="+11f">>111>v6853/a>        3a href="+code=acpi_read_bit_11a5L701" i11ocessor_idle.c#L715" ido11oce>11adonL6ref="drivers/acpi/p"drivt"> * acpicso_has_change_CSTATE_FFH3/a>)ocesst"> * acpicso_has_change_1">v7"+code=cx" class="srefa>) v6373/a>        3a href="+code=pr" class="sre11a6L701" i11drivers/acpi/processor_i11dri>11a>v62723/a>                3spa	 class="comment"11a7L701" i11="sref">cx3/a>->3a hr11="s>11a"sref">pr3/a>ref="drivers/acpi/pcpuline" namionL63cpuL71443/a>        } else if (3a href="+code=cx"11a8L701" i11acpi/processor_idle.c#L611acp>1118code=power" "+code=cx" class="srefa>) v7043/a>        } else if (3a href="+code=cx"11a9L701" i11onL620" class="line" nam11onL>1119code=power" "+code=cx" class="srefcpumion_devicidle_do_entry3/acpumion_deviciL708" idonL708" classdevdle_do_entry3/adev688"13/a>        if (3a href="+code=cx" class=112#L701" i113" class="sref">ACPI_STA113" >1123v6583/a>        3a href="+code=pr" class="sre1121L701" i11essor_power_verify_c3" c11ess>112od" class="sref">entry_method3/adisrs/ad_bysor_cxboot_parami/processor_idldisrs/ad_bysor_cxboot_param1">v7773/a>        3a href="+code=pr" class="sre1132L701" i11acpi/processor_idle.c#L611acp>112L623" class="line" naocessor013/a>        if (3a href="+code=cx" class=1133L701" i11r_idle.c#L624" idonL624"11r_i>112>v6343/a>        return (3a href="+code=workin1134L701" i11ref">cx3/a>->3a href=11ref>113=errata" clasers//a>) v6373/a>        3a href="+code=pr" class="sre1135L701" i11rs/acpi/processor_idle.c11rs/>112donL626" class="line"ocessor.c#L651" idonL651INVAL"line" namionL61INVAL>v6313/a>        if (3a href="+code=cx" class=1136L701" i11onL627" class="line" nam11onL>112>v6273/a>             v  3a href="+code=lapic_1127L701" i11_state" class="sref">lap11_st>1127ref">i3/a> &ef">a>)              v  3a href="+code=lapic_1128L701" i11class="sref">tsc_check_s11cla>112L619" class="line" naocessor.c#L651" idonL651NODEV"line" namionL61NODEV>v6313/a>        if (3a href="+code=cx" class=1139L701" i11ref">working3/a>++; 112>v6603/a>       v3spa	 class="comment">/*3/spa1a>#L701" i11#L631" idonL631" class="11#L6>11#L: /a>) v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowepis73"p_dsso"line" namionL65owepis73"p_dsso>v6373/a>        3a href="+code=pr" class="sre11#1L701" i11onL632" class="line" nam11onL>113ef">acpi_processor_poocessor.c#L651" idonL651NODEV"line" namionL61NODEV>v6313/a>        if (3a href="+code=cx" class=11#2L701" i11adcast" class="sref">lap11adc>113L623"3/a> 11#i_processor_fv6473/a>        3a href="+code=memset" class=11#4L701" i11ref">working3/a>); 11#=erra.c#L704" idonL704" classsssssss* FIXME:  Design or_i"lin notification oo make it once pe#L6>v7043/a>3spa	 class="comment"> *3/spa	  11#donL6.c#L704" idonL704" classsssssss* system>restead of once pe#-cpu.  Thisiaondition isia>3aL61">v7043/a>3spa	 class="comment"> *3/spa	  11#; v7043/a>3spa	 class="comment"> *3/spa	  ac11er_>11#7f">a.c#L704" idonL704" classsssssss*47">v6473/a>        3a href="+code=memset" class=11#8L701" i11donL639" class="line" na11don>11#>v6493/a>        3a href="+code=result" class=1139L701" i11ef">i3/a>; 113/processor_idef">entry_method3/acp"line" namionL659">v6r_idle.c#L616" idonLeae=piix4" class=ea1">v/ver0>wer3/onL696"drivers/acpi/pcpumion_get_  3a hdle_do_entry3/acpumion_get_  3a h1">v77/verwer3/a>.3a href="+coocessor_cx" 3a hdle_do_entry3/aocessor_cx" 3a h>v707123/a>                3spa	 class="comment"114#L701" i11result3/a>; 11ref">acpi_processor_polass="sref">ACPcpumion_pause_and_loL6dle_do_entry3/acpumion_pause_and_loL61">v7743/a>        } else if (3a href="+code=cx"11r2L701" i11onL643" class="line" nam11onL>11rL623" class="line" na"a href="drivers/acpi/L7 Protede=agarest"cpu-hotplugs*47">v6473/a>        3a href="+code=memset" class=11r3L701" i11thread may not be runnin11thr>11ri_processor_ffh_cstate_enter3/a>(3a get_onass=_cpu711" idonL711" cget_onass=_cpu71">v7743/a>        } else if (3a href="+code=cx"11r4L701" i11/3/spa	  11rdonL626" class="line"=a href="drivers/acpi/L7 Disrs/a al/"cpumion deviciss*47">v6473/a>        3a href="+code=memset" class=11r6L701" i11 all the C-states info. 11 al>11r;                 3spa	 class="comment"1147L701" i11et3/a>(3a href="+code=pr11et3>11r+code=power" class="sref">powidonL638" class_="line" namionL63_pd>v70/v" idonL628" clasper_cpuline" namionL638er_cpuL714" idonL714" clasa	 class=711" idonL711" ca	 class=7">v68" idonL628" clascpuline" namionL63cpuL714743/a>        } else if (3a href="+code=cx"11r8L701" i11onL649" class="line" nam11onL>11rL619" class="line" naaaaaaaaaef">/a>) v70/||_/a>) v70r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowepis73"p_dsso"line" namionL65owepis73"p_dsso>v6373/a>        3a href="+code=pr" class="sre11r9L701" i11lt3/a> = 3a href="+code=11lt3>11rvers/acpi/processor_iaaaaclass="line"aontinue83/a>  == -3a href="11res>115d_processor_ffh_cstatwer_veri" class="sref">devdle_do_entry3/adev688"/v" idonL628" clasper_cpuline" namionL638er_cpuL714" idonL714" clasr" clcpumion_devicidle_do_entry3/ar" clcpumion_devici">v68" idonL628" clascpuline" namionL63cpuL714743/a>        } else if (3a href="+code=cx"1151L701" i11ef">result3/a> = 3a href11ef">11ref">acpi_processor_power_veri" class="sref">cpumion_disrs/a_devicidle_do_entry3/acpumion_disrs/a_deviciL714" idonL714" clasdevdle_do_entry3/adev688"743/a>        } else if (3a href="+code=cx"1152L701" i11onL653" class="line" nam11onL>11rL623" class="line" naa9.a> ) result3/a>; <11ass>11r=errata" class="sref""a href="drivers/acpi/L7 Popu"d/a Updr_id C- namiossorrmation *47">v6473/a>        3a href="+code=memset" class=11r5L701" i11onL656" class="line" nam11onL>115donL626" class="line"= 3a href="+codocesst"> * acpiget_5owepissor" class="sref">ocesst"> * acpiget_5owepissorL714" idonL714" clas="line" namionL638">v63743/a>        } else if (3a href="+code=cx"1156L701" i11info_default" class="sre11inf>11r;  * acpis73"p_cpumion_por_isdle_do_entry3/a"drivt"> * acpis73"p_cpumion_por_isL714" idonL714" clas="line" namionL638">v63743/a>        } else if (3a href="+code=cx"1157L701" i11onL658" class="line" nam11onL>115>v6583/a>        3a href="+code=pr" class="sre1158L701" i11gt;3a href="+code=power"11gt;>11rL619" class="line" na"a href="drivers/acpi/L7 Enrs/a al/"cpumion deviciss*47">v6473/a>        3a href="+code=memset" class=1159L701" i11onL660" class="line" nam11onL>11rvers/acpi/processor_ie.c#L616" idonLfseteach_onass=_cpu11" idonL711" cfseteach_onass=_cpuL714" idonL714" clascpuline" namionL63cpuL7147123/a>                3spa	 class="comment"116#L701" i11"drivers/acpi/processor_11"dr>11"d_processor_ffh_cstatwer_veri" class="sref">_="line" namionL63_pd>v70/v" idonL628" clasper_cpuline" namionL638er_cpuL714" idonL714" clasa	 class=711" idonL711" ca	 class=7">v68" idonL628" clascpuline" namionL63cpuL714743/a>        } else if (3a href="+code=cx"1161L701" i11 typi C2 or C3 is availa11 ty>11"ef">acpi_processor_power_verief">/a>) v70/||_/a>) v70r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowepis73"p_dsso"line" namionL65owepis73"p_dsso>v6373/a>        3a href="+code=pr" class="sre1162L701" i11uot;idle manageable"11uot>116L623" class="line" nawer_veriiiiiiiiiaontinue83/a> 11"i_processor_ffh_cstatwer_veri= 3a href="+codocesst"> * acpiget_5owepissor" class="sref">ocesst"> * acpiget_5owepissorL714" idonL714" clas_="line" namionL63_pd>v70743/a>        } else if (3a href="+code=cx"1164L701" i11> = 1;v3a href="+code=i"11> =>11"=errata" class="sref"wer_verief">entry_method3/a_="line" namionL63_pd>v70r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowep"line" namionL65owep>v707123/a>                3spa	 class="comment"1165L701" i11ef">pr3/a>->3a href="11ef">11"donL626" class="line"wer_claswer_veri= 3a href="+codocesst"> * acpis73"p_cpumion_cxdle_do_entry3/aocesst"> * acpis73"p_cpumion_cxL714" idonL714" clas_="line" namionL63_pd>v70743/a>        } else if (3a href="+code=cx"1166L701" i11="sref">pr3/a>->3a hr11="s>11"; devdle_do_entry3/adev688"/v" idonL628" clasper_cpuline" namionL638er_cpuL714" idonL714" clasr" clcpumion_devicidle_do_entry3/ar" clcpumion_devici">v68" idonL628" clascpuline" namionL63cpuL714743/a>        } else if (3a href="+code=cx"1167L701" i11lass="sref">pr3/a>->311las>11"+code=power" class="sref">pows="line"3a href="+code=cpumion_enrs/a_devicidle_do_entry3/acpumion_enrs/a_deviciL714" idonL714" clasdevdle_do_entry3/adev688"743/a>        } else if (3a href="+code=cx"1168L701" i11r" class="sref">pr3/a>-&11r" >11"L619" class="line" naaaaaaaaaa9.a> 11"vers/acpi/processor_ia9.a> put_onass=_cpu711" idonL711" cput_onass=_cpu71">v7743/a>        } else if (3a href="+code=cx"1171L701" i11onL672" class="line" nam11onL>11#ef">acpi_processor_polass="sref">ACPspumion_resume_and_unloL6dle_do_entry3/acpumion_resume_and_unloL61">v7743/a>        } else if (3a href="+code=cx"11#2L701" i11r_idle.c#L673" idonL673"11r_i>11#L623" class="a9.a> 117>v6343/a>        return (3a href="+code=workin1174L701" i11onL675" class="line" nam11onL>11#ry_method" clocessor013/a>        if (3a href="+code=cx" class=11#5L701" i11s/acpi/processor_idle.c#11s/a>11#>v656a9.a> 117>v6273/a>             v  3a href="+code=lapic_11#7L701" i11s/acpi/processor_idle.c#11s/a>11#>v658d)  * acpiregistere_CSTATE_FFH3/a>)ocesst"> * acpiregistere_>v6313/a>        if (3a href="+code=cx" class=11#8L701" i11ass="sref">acpi_idle_bm_11ass>117>v6493/a>        3a href="+code=result" class=11#9L701" i11donL680" class="line" na11don>11#vers/ref="drivers/acpi/p_lcpumnio11" idonL711" c_lcpumnioy_met"drivers/acpi/p"drivt"> * acpi5owepissio11" idonL711" c"drivt"> * acpi5owepissio1">v7"+code=cx" class="srefa>) v6373/a>        3a href="+code=pr" class="sre118#L701" i11 3a href="+code=bm_statu11 3a>11 3v65823/a>                3spa	 class="comment"1181L701" i11onL682" class="line" nam11onL>11 ef">acpi_proccx" class="srefa>) )         if (3a href="+code=cx" class=11 2L701" i11ss="sref">bm_check_disab11ss=>118v6313/a>        if (3a href="+code=cx" class=1183L701" i11processor_idle.c#L684" i11pro>118i_processor_f"+code=cx" class="srefcpumion_devicidle_do_entry3/acpumion_deviciL708" idonL708" classdevdle_do_entry3/adev688"13/a>        if (3a href="+code=cx" class=1184L701" i11onL685" class="line" nam11onL>1184_processor_f"+         if (3a href="+code=cx" class=1185L701" i11lass="sref">acpi_read_bi11las>118>v6563/a>       v3a href="+code=acpi_processor1186L701" i11f">bm_status3/a>) >118; a>) v7773/a>        3a href="+code=pr" class="sre1187L701" i11gister" class="sref">acp11gis>118+code=power" class="socessor013/a>        if (3a href="+code=cx" class=1188L701" i11"drivers/acpi/processor_11"dr>11 >v6493/a>        3a href="+code=result" class=1189L701" i1118: Note that BM_STS doe1118:>11 /processor_idef">/a>)                 3spa	 class="comment"119#L701" i11of bus mastering activit11of >11ofers/acpi/processor_ia>)         } else if (3a href="+code=cx"1191L701" i11the BMIDEA bit of each I11the>119ef">acpi_processor_polass="sref">ACPmax_csor_ie=piix4" class=max_csor_i>v70/v "drivers/acpi/p"drivt"> * acpicpi3/aIsc#L679" idonL679" c"drivt"> * acpicpi3/aIsc#L6L714" idonL714" clasmax_csor_ie=piix4" class=max_csor_i>v70743/a>        } else if (3a href="+code=cx"1192L701" i11="drivers/acpi/processor11="d>119L623" class="line" naef">a>) v70/<1donL640" class="line"C_ionL6S6MAXa href="+code=Aline"C_ionL6S6MAX>v6373/a>        3a href="+code=pr" class="sre1193L701" i11ref">errata3/a>.3a href=11ref>11oi_processor_ffh_cstatessor_polass="sref">ACPpcint679" idonL679" cpcint6L714" idonL714" clasKERN_NOTICE79" idonL679" cKERN_NOTICEv6493/a>        3a href="+code=result" class=11o4L701" i11="sref">inb_p3/a>(3a hre11="s>119=errata" class="sref"wer_verissor_polvers/acpi/pr"+cing">"line: ode=resul limi_id oo max C- namio%d\n"7">v647>3/a>        3a href="+code=result" class=11o5L701" i11ass="sref">inb_p3/a>(3a 11ass>119donL626" class="line"wer_claswer_ver idonL714" clasmax_csor_ie=piix4" class=max_csor_i>v70743/a>        } else if (3a href="+code=cx"1196L701" i11" class="sref">bm_status11" c>11o;         } else if (3a href="+code=cx"11o7L701" i11#L698" idonL698" class="11#L6>11o+code=power" a9.a> bm_status3/a>; 11o>v6493/a>        3a href="+code=result" class=1199L701" i11donL700" class="line" na11don>11o/processor_idef">/a>) v673/a>        3a href="+code=pr" class="sre12c#L701" i12c#L7700" class="line" na12c#L>120fers/acpi/processor_iocessor.c#L651" idonL651INVAL"line" namionL61INVAL>v6313/a>        if (3a href="+code=cx" class=12c1L701" i12che BMIDEA bit of each I12che>120>v6423/a> 120a>) v6class="sref">ACPcso_aontrol11" idonL711" ccso_aontrol>v70/&er3/onL696/a>)                 3spa	 class="comment"1203L701" i12cef">errata3/a>.3a href=12cef>120i_processor_ffh_cstate_enter3/a>(3a d)                 3spa	 class="comment"1204L701" i12c"sref">inb_p3/a>(3a hre12c"s>120=errata" class="sref"wer_a>) v6class="sref">ACPsminaomman_CSTATE_FFH3/a>)sminaomman_">v68" idonL628" clas"drivgbl_FAD3a href="+code=Ar" clgbl_FAD3">v6class="sref">ACPcso_aontrol11" idonL711" ccso_aontrol>v70, 8743/a>        } else if (3a href="+code=cx"1205L701" i12css="sref">inb_p3/a>(3a 12css>120donL626" class="line"ef">a>)                 3spa	 class="comment"1206L701" i12c class="sref">bm_status12c c>120; a>) v68" idonL628" clasd) 3/a>        3a href="+code=result" class=12c7L701" i12cL698" idonL698" class="12cL6>120+code=power" class="shref="drivers/aciiiiiiiiavers/acpi/pr"+cing">"Notifying BIOS of " na ability failed"7">v647)743/a>        } else if (3a href="+code=cx"1208L701" i12cref">bm_status3/a>; 120L619" class="line" naa9.a> 12c9code=power" a9.a> stop_critical12ass>1213v6583/a>        3a href="+code=pr" class="sre12a1L701" i12a>->3a href="+code=en12a>->121ef">acpi_proccx" class="srefa>)  * acpiget_5owepissor" class="sref">ocesst"> * acpiget_5owepissorL714" idonL714" clas="line" namionL638">v63743/a>        } else if (3a href="+code=cx"12a2L701" i12to architectural FFH bas12to >12aL623" class=" idonL714" clas="line" namionL638">v63r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowepis73"p_dsso"line" namionL65owepis73"p_dsso>v63 = 143/a>        } else if (3a href="+code=cx"12a3L701" i12h_cstate_enter" class="s12h_c>121>v6343/a>        return (3a href="+code=workin1214L701" i12f">cx3/a>->3a href="+12f">>121alid" class="3a href="drivers/acpi/L77">v6473/a>        3a href="+code=memset" class=12a5L701" i12ocessor_idle.c#L715" ido12oce>121donL6.c#L704" idonL704" classsssssss* Ind) ll or_imion han_ler"ef"ode=resul 5owep manage4" c isisup5oroed.1">v7043/a>3spa	 class="comment"> *3/spa	  121; v7043/a>3spa	 class="comment"> *3/spa	  cx3/a>->3a hr12="s>1217f">a.c#L704" idonL704" classsssssss* platorrms orat only sup5oro C1.1">v7043/a>3spa	 class="comment"> *3/spa	  1218code.c#L704" idonL704" classsssssss*47">v6473/a>        3a href="+code=memset" class=12a9L701" i12onL620" class="line" nam12onL>121/processor_idef">entry_method3/acp"line" namionL659">v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowep"line" namionL65owep>v707123/a>                3spa	 class="comment"122#L701" i123" class="sref">ACPI_STA123" >122fers/acpi/processor_iaa href="drivers/acpi/L7 Register ocessor_cx" 3a hdef"not already registere_s*47">v6473/a>        3a href="+code=memset" class=1221L701" i12essor_power_verify_c3" c12ess>122ef">acpi_processor_poef">/a>)  * acpiregistere_CSTATE_FFH3/a>)ocesst"> * acpiregistere_>v637123/a>                3spa	 class="comment"1222L701" i12acpi/processor_idle.c#L612acp>122L623" class="line" nacpi_proccx" class="srefa>)  * acpis73"p_cpumion_por_isdle_do_entry3/a"drivt"> * acpis73"p_cpumion_por_isL714" idonL714" clas="line" namionL638">v63743/a>        } else if (3a href="+code=cx"1233L701" i12r_idle.c#L624" idonL624"12r_i>122i_processor_ffh_cstatessor_polass="sref">ACPoceval11" idonL711" coceval>v63 =r3a href="+code=cpumion_register_  3a hdle_do_entry3/acpumion_register_  3a hL714"wer3/a>.3a href="+coocessor_cx" 3a hdle_do_entry3/aocessor_cx" 3a h>v70743/a>        } else if (3a href="+code=cx"1234L701" i12ref">cx3/a>->3a href=12ref>122=errata" class="sref"wer_verief">entry_method3/aoceval11" idonL711" coceval>v6373/a>        3a href="+code=pr" class="sre1235L701" i12rs/acpi/processor_idle.c12rs/>122donL626" class="line"""""""""""""""""ocessoronL640" class="oceval11" idonL711" coceval>v6313/a>        if (3a href="+code=cx" class=1236L701" i12onL627" class="line" nam12onL>122; "line: %s registere_swith"cpumion\n"7">v647>3/a>        3a href="+code=result" class=1227L701" i12_state" class="sref">lap12_st>122+code=power" class="sref">pows="line"wer_clas" class="sref">ocessor_cx" 3a hdle_do_entry3/aocessor_cx" 3a h>v70class="sref">ACPef">11" idonL711" cnf">>v70743/a>        } else if (3a href="+code=cx"1238L701" i12class="sref">tsc_check_s12cla>122L619" class="line" naa9.a> working3/a>++; 122>v6603/a>       v3spa	 class="comment">/*3/spa12>#L701" i12#L631" idonL631" class="12#L6>123fers/acpi/processor_ia>) v7"izeof( idonL708" classdevdle_do_entry3/adev688")8" idonL628" clasGFP_KERNEL"line" namionL6GFP_KERNEL>v70743/a>        } else if (3a href="+code=cx"12#1L701" i12onL632" class="line" nam12onL>123ef">acpi_processor_poef">/a>)         } else if (3a href="+code=cx"12#2L701" i12adcast" class="sref">lap12adc>123L623" class="line" nacpi_prococessor.c#L651" idonL651NOMEM"line" namionL61NOMEM>v6313/a>        if (3a href="+code=cx" class=12#3L701" i12onL634" class="line" nam12onL>123i_processor_ffh_cstate_enter3/a>(3a per_cpuline" namionL638er_cpuL714" idonL714" clasr" clcpumion_devicidle_do_entry3/ar" clcpumion_devici">v68" idonL628" clascp"line" namionL659">v6r_idle.c#L616" idonLeae=piix4" class=ea1">v1/v" idonL628" clasdevdle_do_entry3/adev688"13/a>        if (3a href="+code=cx" class=12#4L701" i12ref">working3/a>); 123>v6853/a>        3a href="+code=acpi_read_bit_12#5L701" i12donL636" class="line" na12don>123donL626" class="line"= 3a href="+codocesst"> * acpis73"p_cpumion_cxdle_do_entry3/aocesst"> * acpis73"p_cpumion_cxL714" idonL714" clas="line" namionL638">v63743/a>        } else if (3a href="+code=cx"12#6L701" i12onL637" class="line" nam12onL>123>v6273/a>             v  3a href="+code=lapic_12#7L701" i12er_info" class="sref">ac12er_>123+code=power" class="sea href="drivers/acpi/L7 Register pe#-cpu cpumion_devici. Cpumion d 3a h>v>v6473/a>        3a href="+code=memset" class=12#8L701" i12donL639" class="line" na12don>1238code.c#L704" idonL704" classsssssssssssssss* must already be registere_sbefore registering devici">>v6473/a>        3a href="+code=memset" class=12#9L701" i12ef">i3/a>; 123/proc.c#L704" idonL704" classsssssssssssssss*47">v6473/a>        3a href="+code=memset" class=124#L701" i12result3/a>; v63 =r3a href="+code=cpumion_register_ evicidle_do_entry3/acpumion_register_ eviciL714" idonL714" clasdevdle_do_entry3/adev688"743/a>        } else if (3a href="+code=cx"12r1L701" i12onL642" class="line" nam12onL>12ref">acpi_processor_poef">entry_method3/aoceval11" idonL711" coceval>v637123/a>                3spa	 class="comment"12r2L701" i12onL643" class="line" nam12onL>12rL623" class="line" naessor_poef">entry_method3/a"drivt"> * acpiregistere_CSTATE_FFH3/a>)ocesst"> * acpiregistere_>v63/ver0)3/a>        } else if (3a href="+code=cx"12r3L701" i12thread may not be runnin12thr>12ri_processor_ffh_cstatacpi/processor_ia>) .3a href="+coocessor_cx" 3a hdle_do_entry3/aocessor_cx" 3a h>v70743/a>        } else if (3a href="+code=cx"12r4L701" i12/3/spa	  v6313/a>        if (3a href="+code=cx" class=12r5L701" i12onL646" class="line" nam12onL>12rdonL626" class="line"a9.a> 12r;  * acpiregistere_CSTATE_FFH3/a>)ocesst"> * acpiregistere_>v63++43/a>        } else if (3a href="+code=cx"1247L701" i12et3/a>(3a href="+code=pr12et3>124+code=power" a9.a> 12rL619" class="ocessor013/a>        if (3a href="+code=cx" class=12r9L701" i12lt3/a> = 3a href="+code=12lt3>12rvers/a9.a>  == -3a href="12res>1253v6583/a>        3a href="+code=pr" class="sre1251L701" i12ef">result3/a> = 3a href12ef">12ref">aref="drivers/acpi/p"drivt"> * acpi5owepiexio11" idonL711" c"drivt"> * acpi5owepiexio1">v7"+code=cx" class="srefa>) v6373/a>        3a href="+code=pr" class="sre1252L701" i12onL653" class="line" nam12onL>12rL623"23/a>                3spa	 class="comment"1253L701" i12result3/a>) v68" idonL628" clascp"line" namionL659">v6r_idle.c#L616" idonLeae=piix4" class=ea1">v143/a>        } else if (3a href="+code=cx"1254L701" i12ass="sref">result3/a>; <12ass>125>v6853/a>        3a href="+code=acpi_read_bit_12r5L701" i12onL656" class="line" nam12onL>125donL626" clasef">a>) v7773/a>        3a href="+code=pr" class="sre1256L701" i12info_default" class="sre12inf>12r; 125>v6583/a>        3a href="+code=pr" class="sre1258L701" i12gt;3a href="+code=power"12gt;>125L619" class="ef">entry_method3/acp"line" namionL659">v6r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowep"line" namionL65owep>v707123/a>                3spa	 class="comment"1259L701" i12onL660" class="line" nam12onL>12rvers/acpi/processor_ie.c#L616" idonLcpumion_unregister_ evicidle_do_entry3/acpumion_unregister_ eviciL714" idonL714" clasdevdle_do_entry3/adev688"743/a>        } else if (3a href="+code=cx"126#L701" i12"drivers/acpi/processor_12"dr>12"d_processor_ffh_cstate.c#L616" idonL"drivt"> * acpiregistere_CSTATE_FFH3/a>)ocesst"> * acpiregistere_>v63--43/a>        } else if (3a href="+code=cx"1261L701" i12 typi C2 or C3 is availa12 ty>12"ef">acpi_processor_poef">entry_method3/a"drivt"> * acpiregistere_CSTATE_FFH3/a>)ocesst"> * acpiregistere_>v63/ver0)3/a>        } else if (3a href="+code=cx"1262L701" i12uot;idle manageable"12uot>126L623" class="line" nawer_veria>) .3a href="+coocessor_cx" 3a hdle_do_entry3/aocessor_cx" 3a h>v70743/a>        } else if (3a href="+code=cx"1263L701" i12="drivers/acpi/processor12="d>12"i_processor_fa9.a>  = 1;v3a href="+code=i"12> =>126>v6853/a>        3a href="+code=acpi_read_bit_1265L701" i12ef">pr3/a>->3a href="12ef">12"donL626" clas idonL714" clas="line" namionL638">v63r_idle.c#L616" idonLflaL711" idonL711" cflaL7">v6class="sref">ACPpowepis73"p_dsso"line" namionL65owepis73"p_dsso>v63 = 013/a>        if (3a href="+code=cx" class=1266L701" i12="sref">pr3/a>->3a hr12="s>12"; pr3/a>->312las>12"+codea9.a> pr3/a>-&12r" >12"L619"





The original LXR software by or_i.a> LXR L704unity">v68"thisiex8eri4" cal "driion by .a> lxh@refux.no">v6c


lxh.refux.no kindly hos_id by .a> Re_pill Lefcpi AS">v68"cpivider of Lefuxiaonsulting and o8erations servicisssince 1995.