linux/drivers/acpi/processor_throttling.c
<<
>>
Prefs
   1/*
   2 * processor_throttling.c - Throttling submodule of the ACPI processor driver
   3 *
   4 *  Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
   5 *  Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
   6 *  Copyright (C) 2004       Dominik Brodowski <linux@brodo.de>
   7 *  Copyright (C) 2004  Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
   8 *                      - Added processor hotplug support
   9 *
  10 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  11 *
  12 *  This program is free software; you can redistribute it and/or modify
  13 *  it under the terms of the GNU General Public License as published by
  14 *  the Free Software Foundation; either version 2 of the License, or (at
  15 *  your option) any later version.
  16 *
  17 *  This program is distributed in the hope that it will be useful, but
  18 *  WITHOUT ANY WARRANTY; without even the implied warranty of
  19 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  20 *  General Public License for more details.
  21 *
  22 *  You should have received a copy of the GNU General Public License along
  23 *  with this program; if not, write to the Free Software Foundation, Inc.,
  24 *  59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  25 *
  26 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  27 */
  28
  29#include <linux/kernel.h>
  30#include <linux/module.h>
  31#include <linux/slab.h>
  32#include <linux/init.h>
  33#include <linux/sched.h>
  34#include <linux/cpufreq.h>
  35
  36#include <asm/io.h>
  37#include <asm/uaccess.h>
  38
  39#include <acpi/acpi_bus.h>
  40#include <acpi/acpi_drivers.h>
  41#include <acpi/processor.h>
  42
  43#define PREFIX "ACPI: "
  44
  45#define ACPI_PROCESSOR_CLASS            "processor"
  46#define _COMPONENT              ACPI_PROCESSOR_COMPONENT
  47ACPI_MODULE_NAME("processor_throttling");
  48
  49/* ignore_tpc:
  50 *  0 -> acpi processor driver doesn't ignore _TPC values
  51 *  1 -> acpi processor driver ignores _TPC values
  52 */
  53static int ignore_tpc;
  54module_param(ignore_tpc, int, 0644);
  55MODULE_PARM_DESC(ignore_tpc, "Disable broken BIOS _TPC throttling support");
  56
  57struct throttling_tstate {
  58        unsigned int cpu;               /* cpu nr */
  59        int target_state;               /* target T-state */
  60};
  61
  62#define THROTTLING_PRECHANGE       (1)
  63#define THROTTLING_POSTCHANGE      (2)
  64
  65static int acpi_processor_get_throttling(struct acpi_processor *pr);
  66int acpi_processor_set_throttling(struct acpi_processor *pr,
  67                                                int state, bool force);
  68
  69static int acpi_processor_update_tsd_coord(void)
  70{
  71        int count, count_target;
  72        int retval = 0;
  73        unsigned int i, j;
  74        cpumask_var_t covered_cpus;
  75        struct acpi_processor *pr, *match_pr;
  76        struct acpi_tsd_package *pdomain, *match_pdomain;
  77        struct acpi_processor_throttling *pthrottling, *match_pthrottling;
  78
  79        if (!zalloc_cpumask_var(&covered_cpus, GFP_KERNEL))
  80                return -ENOMEM;
  81
  82        /*
  83         * Now that we have _TSD data from all CPUs, lets setup T-state
  84         * coordination between all CPUs.
  85         */
  86        for_each_possible_cpu(i) {
  87                pr = per_cpu(processors, i);
  88                if (!pr)
  89                        continue;
  90
  91                /* Basic validity check for domain info */
  92                pthrottling = &(pr->throttling);
  93
  94                /*
  95                 * If tsd package for one cpu is invalid, the coordination
  96                 * among all CPUs is thought as invalid.
  97                 * Maybe it is ugly.
  98                 */
  99                if (!pthrottling->tsd_valid_flag) {
 100                        retval = -EINVAL;
 101                        break;
 102                }
 103        }
 104        if (retval)
 105                goto err_ret;
 106
 107        for_each_possible_cpu(i) {
 108                pr = per_cpu(processors, i);
 109                if (!pr)
 110                        continue;
 111
 112                if (cpumask_test_cpu(i, covered_cpus))
 113                        continue;
 114                pthrottling = &pr->throttling;
 115
 116                pdomain = &(pthrottling->domain_info);
 117                cpumask_set_cpu(i, pthrottling->shared_cpu_map);
 118                cpumask_set_cpu(i, covered_cpus);
 119                /*
 120                 * If the number of processor in the TSD domain is 1, it is
 121                 * unnecessary to parse the coordination for this CPU.
 122                 */
 123                if (pdomain->num_processors <= 1)
 124                        continue;
 125
 126                /* Validate the Domain info */
 127                count_target = pdomain->num_processors;
 128                count = 1;
 129
 130                for_each_possible_cpu(j) {
 131                        if (i == j)
 132                                continue;
 133
 134                        match_pr = per_cpu(processors, j);
 135                        if (!match_pr)
 136                                continue;
 137
 138                        match_pthrottling = &(match_pr->throttling);
 139                        match_pdomain = &(match_pthrottling->domain_info);
 140                        if (match_pdomain->domain != pdomain->domain)
 141                                continue;
 142
 143                        /* Here i and j are in the same domain.
 144                         * If two TSD packages have the same domain, they
 145                         * should have the same num_porcessors and
 146                         * coordination type. Otherwise it will be regarded
 147                         * as illegal.
 148                         */
 149                        if (match_pdomain->num_processors != count_target) {
 150                                retval = -EINVAL;
 151                                goto err_ret;
 152                        }
 153
 154                        if (pdomain->coord_type != match_pdomain->coord_type) {
 155                                retval = -EINVAL;
 156                                goto err_ret;
 157                        }
 158
 159                        cpumask_set_cpu(j, covered_cpus);
 160                        cpumask_set_cpu(j, pthrottling->shared_cpu_map);
 161                        count++;
 162                }
 163                for_each_possible_cpu(j) {
 164                        if (i == j)
 165                                continue;
 166
 167                        match_pr = per_cpu(processors, j);
 168                        if (!match_pr)
 169                                continue;
 170
 171                        match_pthrottling = &(match_pr->throttling);
 172                        match_pdomain = &(match_pthrottling->domain_info);
 173                        if (match_pdomain->domain != pdomain->domain)
 174                                continue;
 175
 176                        /*
 177                         * If some CPUS have the same domain, they
 178                         * will have the same shared_cpu_map.
 179                         */
 180                        cpumask_copy(match_pthrottling->shared_cpu_map,
 181                                     pthrottling->shared_cpu_map);
 182                }
 183        }
 184
 185err_ret:
 186        free_cpumask_var(covered_cpus);
 187
 188        for_each_possible_cpu(i) {
 189                pr = per_cpu(processors, i);
 190                if (!pr)
 191                        continue;
 192
 193                /*
 194                 * Assume no coordination on any error parsing domain info.
 195                 * The coordination type will be forced as SW_ALL.
 196                 */
 197                if (retval) {
 198                        pthrottling = &(pr->throttling);
 199                        cpumask_clear(pthrottling->shared_cpu_map);
 200                        cpumask_set_cpu(i, pthrottling->shared_cpu_map);
 201                        pthrottling->shared_type = DOMAIN_COORD_TYPE_SW_ALL;
 202                }
 203        }
 204
 205        return retval;
 206}
 207
 208/*
 209 * Update the T-state coordination after the _TSD
 210 * data for all cpus is obtained.
 211 */
 212void acpi_processor_throttling_init(void)
 213{
 214        if (acpi_processor_update_tsd_coord()) {
 215                ACPI_DEBUG_PRINT((ACPI_DB_INFO,
 216                        "Assume no T-state coordination\n"));
 217        }
 218
 219        return;
 220}
 221
 222static int acpi_processor_throttling_notifier(unsigned long event, void *data)
 223{
 224        struct throttling_tstate *p_tstate = data;
 225        struct acpi_processor *pr;
 226        unsigned int cpu ;
 227        int target_state;
 228        struct acpi_processor_limit *p_limit;
 229        struct acpi_processor_throttling *p_throttling;
 230
 231        cpu = p_tstate->cpu;
 232        pr = per_cpu(processors, cpu);
 233        if (!pr) {
 234                ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Invalid pr pointer\n"));
 235                return 0;
 236        }
 237        if (!pr->flags.throttling) {
 238                ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Throttling control is "
 239                                "unsupported on CPU %d\n", cpu));
 240                return 0;
 241        }
 242        target_state = p_tstate->target_state;
 243        p_throttling = &(pr->throttling);
 244        switch (event) {
 245        case THROTTLING_PRECHANGE:
 246                /*
 247                 * Prechange event is used to choose one proper t-state,
 248                 * which meets the limits of thermal, user and _TPC.
 249                 */
 250                p_limit = &pr->limit;
 251                if (p_limit->thermal.tx > target_state)
 252                        target_state = p_limit->thermal.tx;
 253                if (p_limit->user.tx > target_state)
 254                        target_state = p_limit->user.tx;
 255                if (pr->throttling_platform_limit > target_state)
 256                        target_state = pr->throttling_platform_limit;
 257                if (target_state >= p_throttling->state_count) {
 258                        printk(KERN_WARNING
 259                                "Exceed the limit of T-state \n");
 260                        target_state = p_throttling->state_count - 1;
 261                }
 262                p_tstate->target_state = target_state;
 263                ACPI_DEBUG_PRINT((ACPI_DB_INFO, "PreChange Event:"
 264                                "target T-state of CPU %d is T%d\n",
 265                                cpu, target_state));
 266                break;
 267        case THROTTLING_POSTCHANGE:
 268                /*
 269                 * Postchange event is only used to update the
 270                 * T-state flag of acpi_processor_throttling.
 271                 */
 272                p_throttling->state = target_state;
 273                ACPI_DEBUG_PRINT((ACPI_DB_INFO, "PostChange Event:"
 274                                "CPU %d is switched to T%d\n",
 275                                cpu, target_state));
 276                break;
 277        default:
 278                printk(KERN_WARNING
 279                        "Unsupported Throttling notifier event\n");
 280                break;
 281        }
 282
 283        return 0;
 284}
 285
 286/*
 287 * _TPC - Throttling Present Capabilities
 288 */
 289static int acpi_processor_get_platform_limit(struct acpi_processor *pr)
 290{
 291        acpi_status status = 0;
 292        unsigned long long tpc = 0;
 293
 294        if (!pr)
 295                return -EINVAL;
 296
 297        if (ignore_tpc)
 298                goto end;
 299
 300        status = acpi_evaluate_integer(pr->handle, "_TPC", NULL, &tpc);
 301        if (ACPI_FAILURE(status)) {
 302                if (status != AE_NOT_FOUND) {
 303                        ACPI_EXCEPTION((AE_INFO, status, "Evaluating _TPC"));
end3/a>;
 236    3/a>}
 203
 298         77" class="line" name="L277"> 277        def3pan>
 255                if (pr->NUL       goto end3pan>
 283        retu3pan>
 236    3pan>
 283oid)
has_269acpi_processor_get_platform_limit(struct acpi_processor *pr3/a>{
AE_NOT_FOUNDpr->tpc3/a>,
pr->throttling_platform_limit3>));
throttling_platform_limit3>/a>
 228        struct pr->limit3
 227        int target_state3urn;
 233/a>}
 297        if (ignore_tpc3
 283        retu3/a>)
 293/a>{
pr-> 289static int acpi_pr3" class="line" name="L283"> 283        retu3/) {
pr->AE_NOT_FOUND;
 288 */ ;
pr-> 283        retu3//a>
 236    3/a>;
 299/a>;
pr->target_state = pr->throttling_platform_limit3
pr->p_throttling = &(pr->->p_throttling->state_count;
 288 */);
 295                return -EINVAL3>) {
 236    3>));
 283n 0;
target_state = pr->->p_throttlingEINVAL3>> ;
pr->state_count
 286/*
 1urrenc        L268 286/*));
 * _TPC - Throttling Present Capabilities        * T-state flag of acpi_processor_throttling.);
 288 */) {
pr<    p_limit = &pr->limit3/a>:
 227        int ->pr->throttling_platform_limit3pan>
prp_limit->thermal.tx > target_state3pan>
 227        int ->prp_limit->throttling_platform_limit3pan>
prp_limit->user.tx > target_state3pan>
 227        int ->prp_limit->user.tx3/a>;
->pr->state_count)
 286/*;
ACPI    "comment"> de=cpatline" name="L286"> 286/* 288 */;
 283        retu3/a>)
state_count
 286/*
 286/*
    com id="L2com    "comment"> de=cp" idacpdatline" name="L286"> 286/*);
e=throtteng_pl         * T-state flag of acpi_processor_throttling.)
         ,     cla ne claary"commeeck    again         * T-state flag of acpi_processor_throttling.;
 288 */
 227        int ->pr->throttling_platform_limit3an>,
 236    3>));
acpi_p            cpu,  283        retu3eak;
 236    3>an>
 213pan>
 286/*
 clref">="line" name="L286"> 286/*
 p     lassnt">        * T-state flag of acpi_processor_throttling.;

,
 286/*));
 286/*ak;
 288 */ 262  lass="line" namreref="+coname="Limit" class="sref">acpi_processor_get_platform_limit(struct acpi_puot;CPU %d is switched to T%d\n"
acpi_processor_taclasstform_limit(slass  ref="+code=target_state" class="sref">target_state3n>);
 2903eak;
pr->tpc3   }
 283
(slass  ref=a>->stat   _DEAlatforef="+code=state_count" class="sref">state_countf="+code=pimine" name="L288"> 288 */}
09"d         * T-state flag of acpi_processor_throttling.
 288 */
p_limit = &pr->flags.tpc3 lt:
 219        re3pan>
 236    3/a>)
 clacomremeeck whemmen name="L209"> clref">nt">        * T-state flag of acpi_processor_throttling.{
 288 */ 233 = &(pr->->p_throttling->state_count
 clisref">,     c"line" name="L288"> 288 */}
09"d         * T-state flag of acpi_processor_throttling.;
 288 */
p_limit = &pr->flags.tpc3/a>)
 219        re3/a>;
 236    4
p_limit = &pr->flags.state_count4a>);
state_count4a2);
 ( idenabl d).  We'comlet subsequ     ine" name="L288"> 288 */) {
) decide    286/*));
s, bute" nanow we'comcrank upomme spe"d         * T-state flag of acpi_processor_throttling. 288 */;
 294/a>}
pr-> f="+code=pr" class="sref"ode=acpi_procesg hrf="+code=pimit"de=acpi_processor" class="sref">acpi_pr3" class="line" name="L283"> 283        retu4
pr->target_state4pan>
 298                goto end4pan>
 234pan>
target_state = pr->->p_throttlingstate_count
pr->acpi_p  0             283        retu4oid)
pr->target_state4/a>{
 298                goto end4p2" class4ef="drivers/acpi/process4r_thr41tling.c#L265" id="L236" class="line" name="L236"> 236    4/a>,
 294>));
 298         77" class="line" name="L277"> 277        def4>/a>
pr->target_state4
p_limit = &pr->flags.tpc4urn;
 236    4/a>}
 286/*
AE_)9 igislasslocalass        * T-state flag of acpi_processor_throttling.)
 288 */{
 href="+codecDB_INFr" class="sref"ode=acpi_procesg hrf="+code=pecDB_INFimit" class="sref">acpi_processor_get_platform_limit(struct acpi_pf="+code=target_state" class="sref">target_state4/) {
state_count;
pr->tpc4a> ;
 291        acpi_status status4//a>
status = status =buffreALLOCATE_BUFFERf">status =303">ALLOCATE_BUFFER hre            "_TPC" }> status4//a>
 297ot=igned l="L289" class="ss="string">"_TPC"> status4/a>;
 status4
 f="+code=pr" class="sref"ode=acpi_proces">flags.flags. status4
 284a>);
acpi_statusacpi_pe_integer(pr->handle, "_TPC", status =buffre 283        retu4>) {
 301        if (ACPI_FAILURE(status));
 302                if (status != AE_NOT_FOUND 303                        ACPI_EXCEPTION((AE_INFO, handan class="string">"Evaluating _TPC"> ;
 236    4//a>
end4pan>
 236    4>));
 234n 0;
 297ot=igned l(unass=28" class="line" namobjec int , status =buffre->aoe=acr           goto end4   }
 297ot=igned||d="L301" class="lat="L297"> 297ot=ignet_state = ypp      if (target_state4 >);
 297ot=ignet_state = ->p_throttli->(status 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="+c2>, 4_PTnedata"string">"Unsupported Throttling notifier event\n") {
pr->end4  0;
 298                goto end4pan>
 236    4>/a>
 214pan>
 286/*
 286/* 288 */)
 284/a>;
 297ot=ignet_state = ->end4/) {
end4/) {
->ypp      if (status =303">TYPE_BUFFERpi_pf="+code=target_state" class="sref">target_state4/a>)
->status =buffre->status =lengthling.< sizeof" class="sref">acpi_processortc_ igislasr" class="sref"ode=actc_ igislasILURE<="+code=target_state" class="sref">target_state4/an>
->status =buffre->aoe=acr    f=a>->"_TPC"E(status
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="+>(status
, 4_PTnedata (cDB_INF_ igislas)"string">"Unsupported Throttling notifier event\n");
pr->end4- 1;
 298                goto end4-a>)
 236    4-a>;
 298  memcpy      p_limit = &pr->->p_throttli-&B_INF_ igislas="((->status =buffre->aoe=acr    uot;CPU %d is switched to T%d\n"
acpi_processortc_ igislasr" class="sref"ode=actc_ igislasILURE<       goto end4-) {
 284>));
 286/*AE__ igislas="line" name="L286"> 286/*an>
 288 */
 294pan>
 297ot=ignet_state = ->end4p 1;
state_count4pan>
->ypp      if (status =303">TYPE_BUFFERpi_pf="+code=target_state" class="sref">target_state4pa>;
->status =buffre->status =lengthling.< sizeof" class="sref">acpi_processortc_ igislasr" class="sref"ode=actc_ igislasILURE<="+code=target_state" class="sref">target_state4pan>
->status =buffre->aoe=acr    f=a>->"_TPC"E(status,
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="+s2>, 4_PTnedata (f">AE__ igislas)"string">"Unsupported Throttling notifier event\n"));
pr->end4>ak;
 298                goto end4ult:
 236    4
 294n>);
 298  memcpy      p_limit = &pr->->AE__ igislasNFO" class="sref">AE__ igislas="((->status =buffre->aoe=acr    uot;CPU %d is switched to T%d\n"acpi_processortc_ igislasr" class="sref"ode=actc_ igislasILURE<       goto end4   }
 284
flags.p_limit = &pr->end4 an>
end4/a>}
pr-> = &p_throttli-&B_INF_ igislas="->status =bit_widthling.+      goto end4/));
pr-> = &p_throttli-&B_INF_ igislas="->pr->u32(status
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="+s2>, 4_PTne-&B_INF9 igislas"string">"Unsupported Throttling notifier event\n"pr->end4pan>
 298                goto end4/a>)
 236    4/a>{
state_count4/  }
pr-> = &AE__ igislasNFO" class="sref">AE__ igislas="->status =bit_widthling.+      goto end4= 0;
pr-> = &AE__ igislasNFO" class="sref">AE__ igislas="->pr->u32(status
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="+s2>, 4_PTnef">AE_9 igislas"string">"Unsupported Throttling notifier event\n"}
pr->end4/a>;
 298                goto end4
 236    4/a>)
 214/a>;
 298         77" class="line" name="L277"> 277        def5
status =buffre->aoe=acr    Unsupported Throttling notifier event\n");
state_count5a2);
pr-> 236    5>));
end592" class5ef="drivers/acpi/process5r_thr50tling.c#L194" id="L194" class="line" name="L286"> 286/*;
 286/*;
 288 */
 href="+code   * sr" class="sref"ode=acname="L289"> href="+code   * s      class="sref">acpi_processor_get_platform_limit(struct acpi_pf="+code=target_state" class="sref">target_state5pan>
status
pr->tpc5pan>
 291        acpi_statusstatus =3E_OKignensupported Throttling notifier event\n"
status = status =buffreALLOCATE_BUFFERf">status =303">ALLOCATE_BUFFER hre            "_TPC" }> status = pr->, "U, " }> status = p_throttling"_TPC" }> tsstatus"_TPC"> status5/a>,
"_iquot> status5/7>;
status5//a>
acpi_statusacpi_pe_integer(pr->handle, "_TPC", status =buffre 283        retu5
 301        if (ACPI_FAILURE(status 302                if (status != AE_NOT_FOUND}
 303                        ACPI_EXCEPTION((AE_INFO, handE<       goto end5
 236    5/a>)
end5/a>{
 236    5/2" class5ef="drivers/acpi/process5r_thr52tling.c#L285" id="L285" class="line" name="L285"> 285/a>;
tsstatusstatus =buffre->aoe=acr           goto end5a> ;
tsstatus||d="L301" class="ltss" class="sref">tsstatut_state = ypp      if (AE_NOT_FOUND
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="+s2>, 4_TSS data"string">"Unsupported Throttling notifier event\n"
pr->end5/a>;
 298                goto end5
 236    5
 285a>);
ACPI_E    DB" claINFO,     * s"string">"uot;CPU %d is switched to T%d\n") {
tsstatut_state = ->p_throttli->end5>));
 285n 0;
 233 = &(pr->->p_throttling->tsstatut_state = ->p_throttli->end5>> ;
 233 = &(pr->->g" cls_tssend5>/a>
 297kmallo=      izeof" class="sref">acpi_processore=end" clax_tss" class="sref">cessore=end" clax_tss href=*/ (tsstatut_state = ->p_throttli->/a>
->"_GFP_codeE" 283        retu5>));
 233 = &(pr->->g" cls_tssAE_NOT_FOUNDpr->end5   }
 298                goto end5 >);
 236    5 ) {
end5>) {
"_iquotd lon="L227" class="listring">"_iquot.< de=acpi_processne" name="L233"> 233 = &(pr->->p_throttling->"_iquot++f="+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND 295pan>
acpi_processore=end" clax_tss" class="sref">cessore=end" clax_tss hrecode=acpi_processtxr" class="sref">xend5>/a>
acpi_processore=end" clax_tss" class="sref">cessore=end" clax_tss hre *)/span="L301" class="late" class="sref">target_state = pr->end5>/a>
->g" cls_tss"_iquot]r3" class="line" name="L283"> 283        retu5pan>
 235p 0;
p_throttling->status =lengthling.=2sizeof" class="sref">acpi_processore=end" clax_tss" class="sref">cessore=end" clax_tss href3" class="line" name="L283"> 283        retu5p  }
p_throttling->aoe=acr    f=/ (x 283        retu5p>);
 283        retu5p) {
          e    DEBUG_PRIN7f="+code=ACPI_EXCEPTIO    DB" class="sref">ACPI_E    DB" claINFO,     *  %d"string">"u="L227" class="listring">"_iquotE<       goto end5/) {
 285/a>)
acpi_statustsstatut_state = ->"_iquot]ruot;CPU %d is switched to T%d\n"
, pr->, p_throttlingend5//a>
 301        if (ACPI_FAILURE(status
 303                        ACPI_EXCEPTION((AE_INFO, 4_TSS datas="sref">handE<       goto end5n>);
pr->end5- 1;
 233 = &(pr->->g" cls_tssend5-  }
 298                goto end5-a>;
 236    5pan>
end5-) {
x = &AE_NOT_FOUND));
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="++code=AE_NOT_FOUND" class="sref">AE_NOT_FOUNDan>
, 4_TSS data: freq is zero"string">"Unsupported Throttling notifier event\n"an>
pr->end5-an>
 233 = &(pr->->g" cls_tssend5pan>
 298                goto end5p 1;
 236    5pan>
 236    5pa>;
 283        retu5pan>
 298         77" class="line" name="L277"> 277        def5pn>,
status =buffre->aoe=acr    Unsupported Throttling notifier event\n"));
 295>ak;
pr-> 236    5pan>
 295n>);
 286/* 286/* 288 */
 hsL298"> 298  line" name="L289"> hsL      class="sref">acpi_processor_get_platform_limit(struct acpi_pf="+code=target_state" class="sref">target_state5 an>
AE_NOT_FOUND}
pr->tpc5/));
 291        acpi_statusstatus =3E_OKignensupported Throttling notifier event\n"
status = status =buffreALLOCATE_BUFFERf">status =303">ALLOCATE_BUFFER hre            "_TPC" }> status = pr->, "U, " }> status = p_throttling"_TPC" }>  298  hsL    s"_TPC"> status5/a>{
adomainquot> status5/  }
acpi_processore=end" cla="+code=pr" class="sref"cessore=end" cla="+code=pf="+code=acpi_processoa="+code=pr" class="sref"pa="+code=pf="+> status5//a>
 283        retu5
p_limit = &pr->end5=a>}
 = &_flapr" class="sref">sL_ref">_flapigned long long tpc5/a>;
 295
acpi_statusacpi_pe_integer(pr->handle, "_TPC", status =buffre 283        retu5/a>)
 301        if (ACPI_FAILURE(status;
 302                if (status != AE_NOT_FOUND
 303                        ACPI_EXCEPTION((AE_INFO, handE<       goto end6a>);
 236    6a2);
end6a3);
 236    6>));
end692" class6ef="drivers/acpi/process6r_thr60tling.c#L295"ef="+code=acpi_tsL298"> 298  hsL    sstatus =buffre->aoe=acr           goto end6/a>;
 298  hsL    s||d="L301" class="ltsL298"> 298  hsL    t_state = ypp      if (AE_NOT_FOUND;
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="+s2>, 4_TSD data"string">"Unsupported Throttling notifier event\n"
pr->end6pan>
 298                goto end6pan>
 236    6pan>
state_count6pan>
 298  hsL    t_state = ->p_throttli->AE_NOT_FOUND 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="+s2>, 4_TSD data"string">"Unsupported Throttling notifier event\n"pr->end6p2" class6ef="drivers/acpi/process6r_thr61tling.c#L255" id="L258" class="line" name="L298"> 298                goto end6pa>;
 236    6p7>;
status6//a>
adomainquotd l  233 = &(pr->-> 283        retu6
 296urn;
p_throttling->status =lengthling.=2sizeof" class="sref">acpi_processohsL_packagpu" class="sref"" namhsL_packagpf="+r3" class="line" name="L283"> 283        retu6/a>}
p_throttling->aoe=acr    f=/ (adomainquot> status6
 286/a>)
acpi_status 298  hsL    t_state = ->{
pr->, p_throttlingend6/2" class6ef="drivers/acpi/process6r_thr62tling.c#L255" id="L301" class="line" name="L301"> 301        if (ACPI_FAILURE(status;
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="+s2>, 4_TSD data"string">"Unsupported Throttling notifier event\n" ;
pr->end6//a>
 298                goto end6//a>
 236    6/a>;
 236
adomainquott_state = AE_NOT_FOUND
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="+s2>, "Unsupported Throttling notifier event\n");
pr->end6>) {
 298                goto end6>));
 236    6/a>;
 296>> ;
adomainquott_state = revision      if (AE_NOT_FOUND
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="+s2>, "Unsupported Throttling notifier event\n"
pr->end6>));
 298                goto end6n 0;
 236    6   }
 286 >);
p_limit = &pr->end6 ) {
 = &_flapr" class="sref">sL_ref">_flapigned l1       goto end6 ));
 = &adomainquotit = &end6 a>;
p_limit = & 298  idON(( = &end6pan>
 286/*/a>
 286/*/a>
sL_ref">_flap will be clear and coordinatass=fypp="line" name="L286"> 286/*
ALL.="line" name="L286"> 286/* 288 */adomainquotit = &ALLt; 288 */);
adomainquotit = &ANYt; 288 */adomainquotit = &ALLt;AE_NOT_FOUND = &_flapr" class="sref">sL_ref">_flapigned long long tpc6/a>)
 = &ALLt;tpc6/an>
 236    6//a>
 236    6//a>
 298         77" class="line" name="L277"> 277        def6n>);
status =buffre->aoe=acr    Unsupported Throttling notifier event\n"pr-> 236    6-a>;
 283        retu6pan>
 288 */  Control"line" name="L288"> 288 */)
 288 */an>
 homment"> _fad int  homment"> _fad       class="sref">acpi_processor_get_platform_limit(struct acpi_pf="+code=target_state" class="sref">target_state6>an>
AE_NOT_FOUND
p_throttlingtpc6pan>
p_thu3tling. id="L300" claslasslass="sref">p_thlasslingtpc6p 1;
p_thu3tling. id="L300" clasduty_mask="drivers">p_thduty_maskingtpc6p  }
p_thu3tling. id="L300" clasduty_lasslass="sref">p_thduty_lasslingtpc6pa>;
 283        retu6pan>
 233target_state6pn>,
));
 296>ak;
 233 = &(->pr->target_state6pan>
end6pan>
 296n>);
 233 = &(pr->->p_throttlingtpc6eak;
state_count6   }
p_thduty_masking 233 = &(pr->->p_throttling->end6
 283        retu6 an>
p_thduty_masking 233 = &(pr->->p_throttliduty_offses           goto end6/a>}
 286/));
status6plt:
p_thlassling = & 298  inl          p_limit = &pr->->cddress    Unsupported Throttling notifier event\n"
 296/a>)
 286/*{
    *  when   omment"> is enabcod="line" name="L286"> 286/* 286/*
 288 */
p_thlasslingAE_NOT_FOUND}
p_thduty_lasslingp_thlasslingp_thduty_masking;
p_thduty_lassling 233 = &(pr->->p_throttliduty_offses           goto end6
status6/a>)
p_thduty_lasslingtarget_state6/a>;
p_throttling 233 = &(pr->->p_throttling->p_thduty_lassling<       goto end7
 236    7a>);
state_count7a2);
 233 = &(pr->->p_throttling->p_throttling<       goto end7<3);
 283        retu7>));
 287/a>;
          e    DEBUG_PRIN7f="+code=ACPI_EXCEPTIO    DB" class="sref">ACPI_E    DB" claINFO<.c#L285" id="L285" class="line" name="L285"> 287/7>;
,     *  is T%d (%d%%   omment"> applied)"string">"u.c#L285" id="L285" class="line" name="L285"> 287/8>;
p_throttling(( 233 = &(pr->->p_throttlIp_throttling<]/a>->p_thperottlancling;
 297pan>
tpc7pan>
 236    7pan>
 287p3);
p_thCONFIG_Xefling.c#L282" id="L282" class="line" name="L282"> 287p));
 _rdmsatform_limit(struhomment"> _rdmsa          p_thu6tlingcode=acpi_processlasslass="sref">p_thlasslingtarget_state7p2" class7ef="drivers/acpi/process7r_thr71tling"+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND;
p_thu6tlingcde=acpi_processmsa_highf">status =msa_highing((status =msa_lowing<       goto end7p7>;
p_thu6tlingcde=acpi_processmsaf">status =msaingtpc7//a>
pr->end7
 297urn;
 298  hhis_cpu_reaL          ->x86_vendlaing 297uan>
this_cpu_has          AE_NOT_FOUND
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="++code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND, , ce,NOT supported yet"string">"Unsupported Throttling notifier event\n"{
AE_NOT_FOUNDstatus =msa_lowingtpc7/a>;
status =msa_highingtpc7/7>;
p_thrdmsa_safl           287//a>
p_thu3tling.*) status =msa_lowingp_thu3tling.*)l status =msa_highing
status =msaingstatus =msa_highing((status =msa_lowing<       goto end7/a>;
p_thlasslingp_thu6tling)78ef="+code=p_limsaf">status =msaing<       goto end7/an>
pr->tpc7
 236    7a>);
pr->tpc7{
 236    7a2" class7ef="drivers/acpi/process7r_thr73tling.c#L285" id="L285" class="line" name="L285"> 287/a>;
 _wrmsatform_limit(struhomment"> _wrmsa          p_thu6tlingcde=acpi_processlasslass="sref">p_thlasslingtarget_state7>> ;
AE_NOT_FOUND
pr->end7a/a>
p_thu6tlingcde=acpi_processmsaf">status =msaing<       goto end7>));
 237n 0;
 298  hhis_cpu_reaL          ->x86_vendlaing 237n/a>
this_cpu_has          AE_NOT_FOUND);
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="++code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND{
, , ce,NOT supported yet"string">"Unsupported Throttling notifier event\n"AE_NOT_FOUND;
status =msaingp_thlassling ;
p_thwrmsa_safl           287>/a>
status =msaing((status =msaing
pr->tpc7pan>
 236    7p 0;
pr->tpc7p  }
 236    7p>);
 236    7pa>{
 _rdmsatform_limit(struhomment"> _rdmsa          p_thu6tlingcode=acpi_processlasslass="sref">p_thlasslingtarget_state7/) {
AE_NOT_FOUND)
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="++code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND
, ce,NOT supported yet"string">"Unsupported Throttling notifier event\n"
end7//a>
 236    7n>);
 237- 1;
 _wrmsatform_limit(struhomment"> _wrmsa          p_thu6tlingcde=acpi_processlasslass="sref">p_thlasslingtarget_state7-  }
AE_NOT_FOUND;
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="++code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND
, ce,NOT supported yet"string">"Unsupported Throttling notifier event\n"end7-a>)
 236    7nan>
 236    7n/a>
 236    7-an>
 _ILURE" class="sref">Aline"reaLuhomment"> _ILURE"      class="sref">acpi_processor_get_platform_limit(struct acpi_p<.c#L285" id="L285" class="line" name="L285"> 287pan>
p_thu6tlingcode=acpi_processlasslass="sref">p_thlasslingtarget_state7p 1;
AE_NOT_FOUNDp_thu3tling. id="L300" clasbit_widthf">status =bit_widthing((p_throttlibit_offsesigneng long tpc7pa>;
p_thu3tling. id="L300" clasptc_lasslass="sref">p_thptc_lassligneng long tpc7pan>
p_thu6tlingcde=acpi_processptc_mask="drivers">p_thptc_maskigneng long tpc7p) {
acpi_processor_get_pla="sref">tpctform_limit(struct tpclingcode=acpi_processf="+code=pr" class="sref">pr->tpc7pa>)
pr->end7>ak;
status7pan>
pr->p_limit = &pr->end7pan>
pr-> = &sLURE""regisacrt;->, ce_iL298"> 298  >, ce_iLingAE_NOT_FOUND);
ACPI_E    ADR_SPACE_SYSTEM_Ialing77" class="line" name="L277"> 277        def7eak;
status =bit_widthingpr-> = &sLURE""regisacrt;->status =bit_widthing<       goto end7   }
p_throttlibit_offsesigner= de=acpi_processt="+code=pr" class="sref">pr-> = &sLURE""regisacrt;->p_throttlibit_offsesigneng long tpc7
 283        retu7 an>
acpi_processoos"reaLuporttform_limit(struos"reaLuport     class="line" nam(struio_address" class="sref">cstruio_addressling)78ef="+code=p_lit="+code=pr" class="sref">pr-> = &sLURE""regisacrt; 283        retu7 ) {
cddress    ;, p_thptc_lassligne<.c#L285" id="L285" class="line" name="L285"> 287/));
p_thu3tling)7      status =bit_widthingp_throttlibit_offsesignefUnsupported Throttling notifier event\n"
p_thptc_maskigner=  1r<<      status =bit_widthing<)s-l1       goto end7plt:
p_thlasslingp_thu6tling)7 class="line" namptc_lasslass="sref">p_thptc_lassligner p_throttlibit_offsesignefr p_thptc_maskigneUnsupported Throttling notifier event\n"
pr->tpc7/a>)
tpc7/ak;
ACPI_E    ADR_SPACE_FIXED_HARDWAREling77" class="line" name="L277"> 277        def7/  }
pr-> _rdmsatform_limit(struhomment"> _rdmsa          p_thlasslingtpc7//a>
tpc7/an>
 277        def7/) {
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="+s2>, , ce %d"string">"u.c#L285" id="L285" class="line" name="L285"> 287/a>;
p_thu3tling)7      pr-> = &sLURE""regisacrt;->, ce_iL298"> 298  >, ce_iLingtpc7/an>
 236    7/a>)
pr->tpc7/a>;
 236    8
 238a>);
 _ILURlass="sref">p_thline"writeuhomment"> _ILURl      class="sref">acpi_processor_get_platform_limit(struct acpi_p<.c#L285" id="L285" class="line" name="L285"> 288a2);
p_thu6tlingcde=acpi_processlasslass="sref">p_thlasslingtarget_state8<3);
AE_NOT_FOUND));
p_thu3tling. id="L300" clasbit_widthf">status =bit_widthing((p_throttlibit_offsesigneng long tpc892" class8ef="drivers/acpi/process8r_thr80tling.c#L295"ef="+code=acpi_uef="drivers">p_thu6tlingcde=acpi_processptc_lasslass="sref">p_thptc_lassligneng long tpc8/a>;
p_thu6tlingcde=acpi_processptc_mask="drivers">p_thptc_maskigneng long tpc8/7>;
acpi_processor_get_pla="sref">tpctform_limit(struct tpclingcode=acpi_processf="+code=pr" class="sref">pr->tpc8/8>;
pr->end899>;
 298pan>
pr->p_limit = &pr->end8pan>
pr-> = &control"regisacrt;->, ce_iL298"> 298  >, ce_iLingAE_NOT_FOUND
ACPI_E    ADR_SPACE_SYSTEM_Ialing77" class="line" name="L277"> 277        def8p3);
status =bit_widthingpr-> = &control"regisacrt;->status =bit_widthing<       goto end8p));
acpi_probit_offsesref">p_throttlibit_offsesigner= de=acpi_processt="+code=pr" class="sref">pr-> = &control"regisacrt;->p_throttlibit_offsesigneng long tpc8p2" class8ef="drivers/acpi/process8r_thr81tling.c#L255" id="L25de=acpi_processoac_mask="drivers">p_thptc_maskigner=  1r<<      status =bit_widthing<)s-l1       goto end8pa>;
p_thptc_lassligner= ef="+code=acpi_lasslass="sref">p_thlasslingp_thptc_maskigneng long tpc8p7>;
status8//a>
acpi_processoos"writeuporttform_limit(struos"writeuport     class="line" nam(struio_address" class="sref">cstruio_addressling)78ef="+code=p_lit="+code=pr" class="sref">pr->status8/9>;
acpi_procontrol"regisacr" class="sref">control"regisacrt;->cddress    ; status8urn;
p_thu3tling)7      p_thptc_lassligner lt;<      p_throttlibit_offsesignef; status8uan>
p_thu3tling)7      status =bit_widthingp_throttlibit_offsesignefUnsupported Throttling notifier event\n"
pr->tpc8<3);
tpc8/a>{
ACPI_E    ADR_SPACE_FIXED_HARDWAREling77" class="line" name="L277"> 277        def8<2" class8ef="drivers/acpi/process8r_thr82tling.c#L255" id="L25de=acpi_processre">pr-> _wrmsatform_limit(struhomment"> _wrmsa          p_thlasslingtpc8/a>;
tpc8/7>;
 277        def8//a>
 278                status =code=ERRf="+c28" class="linePREFIXf">status =PREFIXf="+s2>, , ce %d"string">"u.c#L285" id="L285" class="line" name="L285"> ef8/9>;
p_thu3tling)7      pr-> = &control"regisacrt;->, ce_iL298"> 298  >, ce_iLingtpc8/a>;
 236    8/an>
pr->tpc8
 236    8a>);
 283        retu8{
 homment"> _ILURlass="sref">p_thline"9"> homment"> _ILURl      class="sref">acpi_processor_get_platform_limit(struct acpi_p<.c#L285" id="L285" class="line" name="L285"> 288a2" class8ef="drivers/acpi/process8r_thr83tling.c#L255" id="L25s".c#L279" id="Lde=acpi_processuef="drivers">p_thu6tlingcde=acpi_processlasslass="sref">p_thlasslingtarget_state8/a>;
AE_NOT_FOUND> ;
p_thiigneng long tpc8
 236    8a/a>
p_thiigned lond="L289" class="iass="sref">p_thiigne <       233 = &(pr->->p_throttling->p_thiigne++f "+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND));
acpi_processor_get_pla="x_tss" class="sref">cstrur_get_pla="x_tsslingcode=acpi_processfxr" class="sref">xigned +code=AE_NOT_FOUND" class="sref">AE_NOT_FOUNDan>
acpi_processor_get_pla="x_tss" class="sref">cstrur_get_pla="x_tsslingco) p_limit = &pr->AE_NOT_FOUND/a>
g" cls_tssling["L227" class="liass="sref">p_thiigne]fng long tpc8 >);
xigneit = &controligned = ef="+code=acpi_lasslass="sref">p_thlasslingtarget_state8 a>{
p_thiigneng long tpc8 ));
tpc8 a>;
end8 > ;
tpc8 /a>
 236    8 /a>
 homment"> _lasslass="sref">p_thline"9"> homment"> _lassl      class="sref">acpi_processor_get_platform_limit(struct acpi_p<.c#L285" id="L285" class="line" name="L285"> 288pan>
p_throttling((p_thu6tlingcode=acpi_processlasslass="sref">p_thlasslingtarget_state8p 0;
AE_NOT_FOUNDpr->end8p>);
 283        retu8pa>{
p_throttlingp_throttling 233 = &(pr->->p_throttling->AE_NOT_FOUNDacpi_processor_get_pla="x_tss" class="sref">cstrur_get_pla="x_tsslingcode=acpi_processfxr" class="sref">xigned +code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND)
acpi_processor_get_pla="x_tss" class="sref">cstrur_get_pla="x_tsslingco) p_limit = &pr->AE_NOT_FOUND
g" cls_tssling["L227" class="lg" class="sref">p_throttling<]fng long tpc8//a>
p_thlasslingxigneit = &controligneng long tpc8//a>
pr->tpc8n>);
 236    8- 1;
pr->tpc8-  }
 236    8-a>;
 283        retu8pan>
 283 homment"> _ptc" class="sref">cstrur_get_pla=9"> homment"> _ptc      class="sref">acpi_processor_get_platform_limit(struct acpi_pf="+code=target_state" class="sref">target_state8-) {
AE_NOT_FOUND)
p_throttlingtpc8nan>
pr->tpc8-/a>
p_thu6tlingcde=acpi_processlasslass="sref">p_thlasslingtpc8-/a>
 298pan>
acpi_pf="+code=target_state" class="sref">target_state8p 1;
tpc8p  }
 288pa>;
acpi_pit = &flagst;->pr->target_state8pan>
tpc8p) {
 288pa>)
 233 = &(pr->->p_throttlingtpc8>ak;
status8pan>
p_thlasslingtpc8>/a>
pr-> _ILURE" class="sref">Aline"reaLuhomment"> _ILURE"     de=acpi_processor" class="sref">acpi_pp_thlasslingtpc8n>);
pr->AE_NOT_FOUNDp_throttling homment"> _ILURlass="sref">p_thline"9"> homment"> _ILURl     de=acpi_processor" class="sref">acpi_pp_thlasslingtpc8n  }
p_throttlingAE_NOT_FOUND;
p_thE    DEBUG_PRINT     =ef="+code=acpi_E    DB_INFass="sref">ACPI_E    DB_INFapi_p<.c#L285" id="L285" class="line" name="L285"> 288 an>
"Ufng long tpc8n) {
->p_throttlingtpc8/));
pr-> homment"> " class="sref">cstrur_get_pla=s"> homment">      de=acpi_processor" class="sref">acpi_pp_throttling((p_thtrslingtpc8nak;
pr->target_state8plt:
pr->tpc8pan>
 236    8/a>)
 233 = &(pr->->p_throttling->p_throttlingtpc8/ak;
 236    8/  }
 288//a>
tpc8/an>
 236    8/) {
 288/a>;
 homment"> " class="sref">cstrur_get_pla=9"> homment">       class="sref">acpi_processor_get_platform_limit(struct acpi_pf="+code=target_state" class="sref">target_state8/an>
AE_NOT_FOUND)
A" class="sref">cpumask_va">Alingcde=acpi_processsaved_mask="drivers">p_thsaved_maskingtpc8/an>
pr->tpc9
 239a>);
acpi_pf="+code=target_state" class="sref">target_state9a2);
tpc9<3);
 283        retu9>));
acpi_pit = &flagst;->pr->target_state992" class9ef="drivers/acpi/process9r_thr90tling.c#L255" id="L25 id="L2sL233" class="liENODEVu" class="sref"ENODEVingtpc9/a>;
tpc9/7>;
(lloc_cpumask_va"      p_thsaved_masking((target_state998>;
tpc9/9>;
 299pan>
, /*>".c#L299" id="L299" class="line" name="L299"> 299p>);
" id="L23* Migrttl task to the cpu po  ied by pr.>".c#L299" id="L299" class="line" name="L299"> 299p2);
" id="L23*/>".c#L299" id="L299" class="line" name="L299"> 299p3);
cpumask_copy     de=acpi_processsaved_mask="drivers">p_thsaved_masking p_throttlicurre"signeit = & 298  cpus_(lloweLingtpc9p));
, /* FIXME: use work_on_cpu()3*/>".c#L299" id="L299" class="line" name="L299"> 299p2" class9ef="drivers/acpi/process9r_thr91tling.c#L255" id=ef="+code=acpi_g"> cpus_(lloweL_ptr" class="sref">s"> cpus_(lloweL_ptr     de=acpi_processcurre"sref">p_throttlicurre"signea>((cpumask_of     de=acpi_processor" class="sref">acpi_pit = & 298  iLingAE_NOT_FOUND;
/* Can't migrttl to the tar9"> prit".c#L299" id="L299" class="line" name="L299"> 299p7>;
free_cpumask_va"     de=acpi_processsaved_mask="drivers">p_thsaved_maskingtpc9p8>;
tpc9/9>;
 236    9urn;
pr-> 233 = &(pr->-> homment"> " class="sref">cstrur_get_pla=9"> homment">      L233" class="lior" class="sref">acpi_pfng long tpc9uan>
, /* restore the previous rottl3*/>".c#L299" id="L299" class="line" name="L299"> 299
 cpus_(lloweL_ptr" class="sref">s"> cpus_(lloweL_ptr     de=acpi_processcurre"sref">p_throttlicurre"signea>((p_thsaved_maskingtpc9<3);
free_cpumask_va"     de=acpi_processsaved_mask="drivers">p_thsaved_maskingtpc9/a>{
tpc9/2" class9ef="drivers/acpi/process9r_thr92tling.c#L255" id="L205" class="linere">pr->tpc9/a>;
 236    9/7>;
status9//a>
 fadt_info" class="sref">cstrur_get_pla=9"> fadt_info      class="sref">acpi_processor_get_platform_limit(struct acpi_pf="+code=target_state" class="sref">target_state9/9>;
AE_NOT_FOUND;
p_thiignep_throepigneng long tpc9/an>
tpc9//a>
acpi_pit = &pr->->cddress    f "+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND);
p_thE    DEBUG_PRINT     =ef="+code=acpi_E    DB_INFass="sref">ACPI_E    DB_INFapi_p<72>, "Ufng long tpc9{
tpc9a2" class9ef="drivers/acpi/process9r_thr93tling.c#L255"} else" id="L233" class="lior" class="sref">acpi_pit = &pr->->status =duty_width    f "+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND;
p_thE    DEBUG_PRINT     =ef="+code=acpi_E    DB_INFass="sref">ACPI_E    DB_INFapi_p<72>, "Ufng long tpc9<7>;
tpc9a/a>
 236    9a/a>
, /* TBD: Support duty_cycle lassls amat >, ".c#L299" id="L299" class="line" name="L299"> 299>));
p_limit = &pr->->p_throttliduty_offsesling.+72" class="line"or" class="sref">acpi_pit = &pr->->status =duty_width    f tAE_NOT_FOUNDan>
 278                 278code=WARNINGlingcde=acpi_processPREFIXf">status =PREFIXf="+s2>, , "Ung long tpc9>/a>
tpc9 >);
 236    9 a>{
tpc9 ));
 233 = &(pr->->p_throttling->p_thline"9bl_FADTt;->status =duty_width    ng long tpc9 a>;
tpc9 > ;
, /*>".c#L299" id="L299" class="line" name="L299"> 299>/a>
" id="L23* Compute rottl3lassls. Notl tmat ame="L285" displays a /acpar powcrt;quot;.c#L299" id="L299" class="line" name="L299"> 299>/a>
" id="L23* performance7 ilationship (at 50% performance7the CPU will consumet;quot;.c#L299" id="L299" class="line" name="L299"> 299pan>
" id="L23* 50% powcr).  Vassls are" n 1/10th of a percent to p iserve accuracy.>".c#L299" id="L299" class="line" name="L299"> 299p 0;
" id="L23*/>".c#L299" id="L299" class="line" name="L299"> 299p  }
 289p>);
p_throepigner=  1000 /"de=acpi_processmi" name="L233"> 233 = &(pr->->p_throttling->tpc9pa>{
tpc9/) {
p_thiigned lond="L289" class="iass="sref">p_thiigne <       233 = &(pr->->p_throttling->p_thiigne++f "+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND)
 233 = &(pr->->g" clst;p_thiigne]t-> 2erformancep_throepigner*205" class="lineiass="sref">p_thiigneng long tpc9/an>
 233 = &(pr->->g" clst;p_thiigne]t-> 2owcrt; h = 1000 -" id="L300" clasg"epass="sref">p_throepigner*205" class="lineiass="sref">p_thiigneng long tpc9//a>
 236    9//a>
tpc9n>);
 236    9- 1;
tpc9-  }
 homment">  fadt" class="sref">cstrur_get_pla=s"> homment">  fadt      class="sref">acpi_processor_get_platform_limit(struct acpi_p<.c#L285" id="L285" class="line" name="L285"> 289-a>;
p_throttling((boollingcde=acpi_processforce" name="L233"> forcepi_pf="+code=target_state" class="sref">target_state9pan>
AE_NOT_FOUNDp_thu3tling. id="L300" claslasslass="sref">p_thlasslingtpc9-a>)
p_thu3tling. id="L300" clasduty_mask="drivers">p_thduty_maskingtpc9-an>
p_thu3tling. id="L300" clasduty_lasslass="sref">p_thduty_lasslingtpc9-/a>
 236    9-/a>
acpi_pf="+code=target_state" class="sref">target_state9pan>
tpc9p 1;
tpc9p  }
p_throttlingp_throttling 233 = &(pr->->p_throttling->target_state9pa>;
tpc9pan>
tpc9p) {
acpi_pit = &flagst;->pr->target_state9pa>)
tpc9>ak;
status9pan>
 forcepi_pr p_throttling 233 = &(pr->->p_throttlingtarget_state9p/a>
tpc9n>);
 239eak;
p_throttling 233 = &(p_throttlif="+code=p_platform_limist;target_state9n  }
tpc9ea>;
, /*>".c#L299" id="L299" class="line" name="L299"> 299 an>
" id="L23* Calculttl the duty_lassl and duty_mask.>".c#L299" id="L299" class="line" name="L299"> 299n) {
" id="L23*/>".c#L299" id="L299" class="line" name="L299"> 299/));
p_throttlingAE_NOT_FOUNDp_thduty_lassling 233 = &(pr->->p_throttling->p_throttlingtpc9ean>
 236    9pan>
p_thduty_lassling 233 = &(pr->->p_throttliduty_offseslingng long tpc9/a>)
 239/ak;
/* Used to clpar all duty_lassl bits3*/>".c#L299" id="L299" class="line" name="L299"> 299/  }
p_thduty_masking 233 = &(pr->->p_throttling->end9//a>
 283        retu9/an>
p_thduty_maskingp_thline"9bl_FADTt;->p_throttliduty_offseslingng long tpc9/) {
p_thduty_maskingp_thduty_maskingtpc9/));
 236    9/an>
status9/a>)
p_thlocal_irq_disabll     Ung long tpc9/an>
 291000n>
drivers/acpi/process1000n>1000ling.c#L253"2>, /*>".css=e> 291001n>
" id="L23* Disabll ame="L285" by writ85" a 0 to bit 4.3 Notl tmat we must>".c#L299" id="L299" class="line" name="L299"> 291002n>
" id="L23* d="L2it off before you c ".c#L299" id="L299" class="line" name="L299"> 291003n>
" id="L23*/>".c#L299" id="L299" class="line" name="L299"> 291004n>
p_thlasslinginl           233 = &(pr->->cddress    fng long tpc1005n>
p_thlasslingAE_NOT_FOUND
p_thlasslingtpc1007n>
outl          p_thlassling(( 233 = &(pr->->cddress    fng long tpc1008n>
 236    1009n>
 291010n>
, /*>".c#L299" id="L299" class="line" name="L299"> 2910e1n>
" id="L23* Writl the new duty_lassl and then enabll ame="L285".3 Notl>".c#L299" id="L299" class="line" name="L299"> 2910e2n>
" id="L23* dmat a rottl3lassl of 0 lpavls ame="L285" disablld.>".c#L299" id="L299" class="line" name="L299"> 291013n>
" id="L23*/>".c#L299" id="L299" class="line" name="L299"> 291014n>
p_throttlingAE_NOT_FOUND
p_thlasslingp_thduty_maskingtpc10e6n>
p_thlasslingp_thduty_lasslingtpc10e7n>
outl          p_thlassling(( 233 = &(pr->->cddress    fng long tpc10e8n>
 236    10e9n>
p_thlasslingtpc1020n>
outl          p_thlassling(( 233 = &(pr->->cddress    fng long tpc1021n>
 236    10e2n>
 2810e3n>
 233 = &(pr->->p_throttling->p_throttlingtpc10e4n>
tpc10e5n>
p_thlocal_irq_enabll     Ung long tpc10e6n>
tpc10e7n>
p_thE    DEBUG_PRINT     =ef="+code=acpi_E    DB_INFass="sref">ACPI_E    DB_INFapi_p<.c#L285" id="L285" class="line" name="L285"> 2810e8n>
"p_throttling 2810e9n>
 233 = &(pr->->g" clst;p_throttling<]t-> 2erformance 233.c#L285" id="L285" class="line" name="L285"> 281030n>
pr->->g" clst;p_throttling<]t-> 2erformancetpc10e1n>
tpc10e2n>
tpc10e3n>
 236    1034n>
tpc1035n>
 homment">  ptc" class="sref">cstrur_get_pla=s"> homment">  ptc      class="sref">acpi_processor_get_platform_limit(struct acpi_p<.c#L285" id="L285" class="line" name="L285"> 2810e6n>
p_throttling((boollingcde=acpi_processforce" name="L233"> forcepi_pf="+code=target_state" class="sref">target_state10e7n>
AE_NOT_FOUND
pr->tpc10e9n>
p_thu6tling7 id="L300" claslasslass="sref">p_thlasslingtpc1040n>
tpc1041n>
acpi_pf="+code=target_state" class="sref">target_state10e2n>
tpc10e3n>
 283        retu10e4n>
p_throttlingp_throttling 233 = &(pr->->p_throttling->target_state10e5n>
tpc10e6n>
tpc1047n>
acpi_pit = &flagst;->pr->target_state10e8n>
tpc10e9n>
 291050n>
 forcepi_pr p_throttling 233 = &(pr->->p_throttling 291051n>
tpc1052n>
 281053n>
p_throttling 233 = &(p_throttlif="+code=p_platform_limist;target_state10e4n>
tpc10e5n>
 2810e6n>
p_thlasslingtpc10e7n>
pr-> homment"> _lasslass="sref">p_thline"9"> homment"> _lassl          acpi_pp_throttling p_thlasslingtpc1058n>
pr->= 0f "+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND
 _g" class="sref">p_thline"write homment"> _g" cl          acpi_pp_thlasslingtpc1060n>
 233 = &(pr->->p_throttling->p_throttlingtpc1061n>
 236    1062n>
 281063n>
tpc10e4n>
 236    10e5n>
 281066n>
 homment"> " class="sref">cstrur_get_pla=s"> homment">       class="sref">acpi_processor_get_platform_limit(struct acpi_p<.c#L285" id="L285" class="line" name="L285"> 281067n>
p_throttling((boollingcde=acpi_processforce" name="L233"> forcepi_pf="+code=target_state" class="sref">target_state1068n>
AE_NOT_FOUND
p_throttlicpumask_va"_slingcde=acpi_processsaved_mask="drivers">p_thsaved_maskingtpc1070n>
pr->tpc1071n>
p_thiigneng long tpc1072n>
acpi_processor_get_platform_limit(struct match_origneng long tpc1073n>
acpi_processor_get_pla homment"> " class="sref">cstrur_get_pla=homment">     code=acpi_processo homment"> " class="sref">p=homment">     ng long tpc1074n>
acpi_prohomment"> _tg" class="sref">p_thhomment"> _tg" cllingcde=acpi_processt_g" class="sref">p_tht_rottlingtpc1075n>
p_throttlicpumask_va"_slingcde=acpi_processon/acp homment"> _cpusref">p_throttlion/acp homment"> _cpusingtpc1076n>
tpc1077n>
acpi_pf="+code=target_state" class="sref">target_state1078n>
tpc1079n>
 291080n>
acpi_pit = &flagst;->pr->target_state1081n>
tpc1082n>
 281083n>
p_throttlingp_throttling 233 = &(pr->->p_throttling->target_state1084n>
tpc10e5n>
 281086n>
(lloc_cpumask_va"      p_thsaved_masking(( 291087n>
tpc10e8n>
 236    1089n>
(lloc_cpumask_va"       _cpusref">p_throttlion/acp homment"> _cpusing((AE_NOT_FOUND
free_cpumask_va"     de=acpi_processsaved_mask="drivers">p_thsaved_maskingtpc10e1n>
tpc1092n>
 236    1093n>
 283        retu1094n>
p_throttlicpu_is_off/acp          acpi_pg = &(p_thidingAE_NOT_FOUND
/*>".c#L299" id="L299" class="line" name="L299"> 291096n>
" id="L2333333333* the cpu pointed by prgid is off/acp. Unnelineary to changl>".c#L299" id="L299" class="line" name="L299"> 291097n>
" id="L2333333333* the ame="L299" rottl3any morl.>".c#L299" id="L299" class="line" name="L299"> 291098n>
" id="L2333333333*/>".c#L299" id="L299" class="line" name="L299"> 291099n>
tpc1100n>
drivers/acpi/process1100n>1100ling.c#L253" id="L236" class="line" name="L236"> 236    1101n>
tpc1102n>
p_throttlicpumask_copy     de=acpi_processsaved_mask="drivers">p_thsaved_masking p_throttlicurre"spi_pg = &(p_thcpus_(llowedingtpc1103n>
p_tht_rottling-> g" class="sref">p_thtar9"> g" cling->p_throttlingtpc1104n>
 " class="sref">p=homment">     r=   233 = &(pr->tpc1105n>
p_thcpumask_and     de=acpi_processon/acp homment"> _cpusref">p_throttlion/acp homment"> _cpusing((p_thcpu_on/acp maskpi_p<.c#L285" id="L285" class="line" name="L285"> 281106n>
 " class="sref">p=homment">     g = &(p_thrhared_cpu_mapt;tpc1107n>
, /*>".c#L299" id="L299" class="line" name="L299"> 291108n>
" id="L23* The ame="L299" notifier will be c(lled for7eL29y>".c#L299" id="L299" class="line" name="L299"> 291109n>
" id="L23* affected cpu in order to 9"> one proper T-rottl.>".c#L299" id="L299" class="line" name="L299"> 291110n>
" id="L23* The notifier eL2nt is THROTTLING_PRECHANGE.>".c#L299" id="L299" class="line" name="L299"> 291111n>
" id="L23*/>".c#L299" id="L299" class="line" name="L299"> 2911e2n>
 for_each_cpu     de=acpi_processiass="sref">p_thiignea>(( _cpusref">p_throttlion/acp homment"> _cpusingAE_NOT_FOUND
p_tht_rottling-> cpu    r= "L301" class="liass="sref">p_thiigneng long tpc1114n>
 _notifier" class="sref">cstrur_get_pla=homment"> _notifier     de=acpi_processTHROTTLING_PRECHANGE" class="sref">THROTTLING_PRECHANGEpi_p<.c#L285" id="L285" class="line" name="L285"> 281115n>
p_tht_rottlingtpc11e6n>
 236    1117n>
, /*>".c#L299" id="L299" class="line" name="L299"> 2911e8n>
" id="L23* The function of astrur_get_pla=s"> homment">  will be c(lled>".c#L299" id="L299" class="line" name="L299"> 2911e9n>
" id="L23* to switch T-rottl. If the coordination type is SW_ALL or HW_ALL,>".c#L299" id="L299" class="line" name="L299"> 291120n>
" id="L23* it is nelineary to call it for7eL29y affected cpu. Otherwisl>".c#L299" id="L299" class="line" name="L299"> 291121n>
" id="L23* it c ".c#L299" id="L299" class="line" name="L299"> 2911e2n>
" id="L23*/>".c#L299" id="L299" class="line" name="L299"> 2911e3n>
 " class="sref">p=homment">     g = &(p_thrhared_type    r== "L301" class="lDOMAIN_COORD_TYPE_SW_ANYass="sref">p_thDOMAIN_COORD_TYPE_SW_ANYingAE_NOT_FOUND
/* FIXME: use work_on_cpu()3*/>".c#L299" id="L299" class="line" name="L299"> 2911e5n>
 cpus_(llowed_ptr" class="sref">g"> cpus_(llowed_ptr     de=acpi_processcurre"sref">p_throttlicurre"spi_pa>((p_thcpumask_of          acpi_pg = &(p_thidingAE_NOT_FOUND
/* Can't migrttl to7the prgid CPU. Exit */>".c#L299" id="L299" class="line" name="L299"> 2911e7n>
pr->tpc11e8n>
p_throttliexisingtpc11e9n>
 236    1130n>
pr-> " class="sref">p=homment">     g = &( homment"> " class="sref">cstrur_get_pla=s"> homment">           acpi_p<.c#L285" id="L285" class="line" name="L285"> 2811e1n>
p_tht_rottling-> g" class="sref">p_thtar9"> g" cling(( forcepi_pfng long tpc11e2n>
AE_NOT_FOUND
/*>".c#L299" id="L299" class="line" name="L299"> 291134n>
" id="L2333333333* When the T-rottl coordination is SW_ALL or HW_ALL,>".c#L299" id="L299" class="line" name="L299"> 291135n>
" id="L2333333333* it is nelineary to set T-rottl for7eL29y affected>".c#L299" id="L299" class="line" name="L299"> 291136n>
" id="L2333333333* cpus.>".c#L299" id="L299" class="line" name="L299"> 2911e7n>
" id="L2333333333*/>".c#L299" id="L299" class="line" name="L299"> 2911e8n>
 for_each_cpu     de=acpi_processiass="sref">p_thiignea>(( _cpusref">p_throttlion/acp homment"> _cpusingAE_NOT_FOUND
match_origner= ef="+code=acpi_oer_cpu" name="L233"> oer_cpu          p_throttlior="sref"signea>((p_thiignefng long tpc1140n>
/*>".c#L299" id="L299" class="line" name="L299"> 291141n>
" id="L23 id="L2333333333* If the pointer is invalid, we will report the>".c#L299" id="L299" class="line" name="L299"> 291142n>
" id="L23 id="L2333333333* error7mineagl and continsl.>".c#L299" id="L299" class="line" name="L299"> 2911e3n>
" id="L23 id="L2333333333*/>".c#L299" id="L299" class="line" name="L299"> 2911e4n>
match_orignef "+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND
p_thE    DEBUG_PRINT     =ef="+code=acpi_E    DB_INFass="sref">ACPI_E    DB_INFapi_p<.c#L285" id="L285" class="line" name="L285"> 2811e6n>
"p_thiigneffng long tpc1147n>
tpc1148n>
 236    11e9n>
/*>".c#L299" id="L299" class="line" name="L299"> 291150n>
" id="L233333333333333333* If the homment">  control is unsupported on7CPU i,>".c#L299" id="L299" class="line" name="L299"> 291151n>
" id="L23 id="L2333333333* we will report the error7mineagl and continsl.>".c#L299" id="L299" class="line" name="L299"> 291152n>
" id="L23 id="L2333333333*/>".c#L299" id="L299" class="line" name="L299"> 291153n>
match_origneit = &flagst;->pr->AE_NOT_FOUND
p_thE    DEBUG_PRINT     =ef="+code=acpi_E    DB_INFass="sref">ACPI_E    DB_INFapi_p<.c#L285" id="L285" class="line" name="L285"> 2811e5n>
".c#L285" id="L285" class="line" name="L285"> 2811e6n>
"p_thiigneffng long tpc11e7n>
tpc1158n>
 236    1159n>
p_tht_rottling-> cpu    r= "L301" class="liass="sref">p_thiigneng long tpc1160n>
/* FIXME: use work_on_cpu()3*/>".c#L299" id="L299" class="line" name="L299"> 291161n>
 cpus_(llowed_ptr" class="sref">g"> cpus_(llowed_ptr     de=acpi_processcurre"sref">p_throttlicurre"spi_pa>((p_thcpumask_of          p_thiignefff="+code=target_state" cl="line" name="L299"> 291162n>
tpc1163n>
pr->match_origneit = &pr->tpc1164n>
 homment"> " class="sref">cstrur_get_pla=s"> homment">      g long tpc1165n>
match_orignea>((p_tht_rottling-> g" class="sref">p_thtar9"> g" cling(( forcepi_pfng long tpc1166n>
 236    1167n>
 236    1168n>
, /*>".c#L299" id="L299" class="line" name="L299"> 291169n>
" id="L23* After the s"> homment">  is c(lled, the>".c#L299" id="L299" class="line" name="L299"> 291170n>
" id="L23* ame="L299" notifier is c(lled for7eL29y>".c#L299" id="L299" class="line" name="L299"> 291171n>
" id="L23* affected cpu to updatl the T-rottls.>".c#L299" id="L299" class="line" name="L299"> 291172n>
" id="L23* The notifier eL2nt is THROTTLING_POSTCHANGEpiquot;.c#L299" id="L299" class="line" name="L299"> 291173n>
" id="L23*/>".c#L299" id="L299" class="line" name="L299"> 291174n>
 for_each_cpu     de=acpi_processiass="sref">p_thiignea>(( _cpusref">p_throttlion/acp homment"> _cpusingAE_NOT_FOUND
p_tht_rottling-> cpu    r= "L301" class="liass="sref">p_thiigneng long tpc1176n>
 _notifier" class="sref">cstrur_get_pla=homment"> _notifier     de=acpi_processTHROTTLING_POSTCHANGE" class="sref">THROTTLING_POSTCHANGEpi_p<.c#L285" id="L285" class="line" name="L285"> 281177n>
p_tht_rottlingtpc1178n>
 236    1179n>
, /* restore7the previous rottl3*/>".c#L299" id="L299" class="line" name="L299"> 291180n>
, /* FIXME: use work_on_cpu()3*/>".c#L299" id="L299" class="line" name="L299"> 291181n>
 cpus_(llowed_ptr" class="sref">g"> cpus_(llowed_ptr     de=acpi_processcurre"sref">p_throttlicurre"spi_pa>((p_thsaved_maskingtpc1182n>
p_throttliexising<:g long tpc1183n>
free_cpumask_va"     de=acpi_processon/acp homment"> _cpusref">p_throttlion/acp homment"> _cpusingtpc1184n>
free_cpumask_va"     de=acpi_processsaved_mask="drivers">p_thsaved_maskingtpc11e5n>
pr->tpc11e6n>
 236    1187n>
 236    1188n>
 homment"> _info" class="sref">cstrur_get_pla=9"> homment"> _info      class="sref">acpi_processor_get_platform_limit(struct acpi_pf="+code=target_state" cl="line" name="L299"> 291189n>
AE_NOT_FOUND
pr->tpc11e1n>
acpi_processor_get_pla homment"> " class="sref">cstrur_get_pla=homment">     code=acpi_processohomment"> " class="sref">phomment">     ng long tpc11e2n>
 281193n>
p_thE    DEBUG_PRINT     =ef="+code=acpi_E    DB_INFass="sref">ACPI_E    DB_INFapi_p<.c#L285" id="L285" class="line" name="L285"> 281194n>
, [%d] duty_width[%d]"string">"<.c#L285" id="L285" class="line" name="L285"> 281195n>
acpi_pg = &(pr->->cddresspi_p<.c#L285" id="L285" class="line" name="L285"> 281196n>
acpi_pg = &(pr->->r" class="sref"duty_offg">pi_p<.c#L285" id="L285" class="line" name="L285"> 281197n>
acpi_pg = &(pr->->tpc1198n>
 236    1199n>
, /*>".c#L299" id="L299" class="line" name="L299"> 291200n>
drivers/acpi/process1200n>120tling >, " id="L23* Elassttl3_PTC, _TSS and _TPC>".c#L299" id="L299" class="line" name="L299"> 291201n>
" id="L23* They must all be pres2nt or none of them c ".c#L299" id="L299" class="line" name="L299"> 291202n>
" id="L23*/>".c#L299" id="L299" class="line" name="L299"> 291203n>
 homment"> _control" class="sref">cstrur_get_pla=9"> homment"> _control          acpi_pf ||.c#L299" id="L299" class="line" name="L299"> 291204n>
 homment"> _rottls" class="sref">cstrur_get_pla=9"> homment"> _rottls          acpi_pf ||.c#L299" id="L299" class="line" name="L299"> 291205n>
 platform_limisref">p_throttlicstrur_get_pla=9"> platform_limis          acpi_pff="+code=target_state" cl="line" name="L299"> 291206n>
AE_NOT_FOUND
acpi_pg = &(pr->-> homment"> " class="sref">cstrur_get_pla=9"> homment">     r=+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND
 homment"> _fadsref">p_throttlicstrur_get_pla=9"> homment"> _fads    ng long tpc1209n>
acpi_pg = &(pr->-> homment"> " class="sref">cstrur_get_pla=s"> homment">     r=+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND
 homment"> _fadsref">p_throttlicstrur_get_pla=s"> homment"> _fads    ng long tpc1211n>
 fads_info" class="sref">cstrur_get_pla=9"> fads_info          acpi_pff="+code=target_state" cl="line" name="L299"> 2912e2n>
tpc1213n>
AE_NOT_FOUND
acpi_pg = &(pr->-> homment"> " class="sref">cstrur_get_pla=9"> homment">     r=+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND
 homment"> _ptcref">p_throttlicstrur_get_pla=9"> homment"> _ptc    ng long tpc1216n>
acpi_pg = &(pr->-> homment"> " class="sref">cstrur_get_pla=s"> homment">     r=+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND
 homment"> _ptcref">p_throttlicstrur_get_pla=s"> homment"> _ptc    ng long tpc1218n>
 236    12e9n>
 291220n>
, /*>".c#L299" id="L299" class="line" name="L299"> 291221n>
" id="L23* If TSD packagl for7one CPU can't be parsed suclinefully, it means>".c#L299" id="L299" class="line" name="L299"> 291222n>
" id="L23* that this CPU will have no coordination with other CPUs.>".c#L299" id="L299" class="line" name="L299"> 2912e3n>
" id="L23*/>".c#L299" id="L299" class="line" name="L299"> 2912e4n>
 hsdass="sref">p_thcstrur_get_pla=9"> hsd          acpi_pff "+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND
 " class="sref">phomment">     r=  acpi_pg = &(pr->tpc12e6n>
 " class="sref">phomment">     g = &(sd_valid_flag    r= ong long tpc12e7n>
 cpu" name="L233"> cpumask_g"> cpu          acpi_pg = &(p_thiding(( " class="sref">phomment">     g = &(p_thrhared_cpu_mapt;tpc12e8n>
 " class="sref">phomment">     g = &(p_thrhared_type    r= "L301" class="lDOMAIN_COORD_TYPE_SW_ALLu" class="sref"DOMAIN_COORD_TYPE_SW_ALLt;tpc12e9n>
 236    1230n>
 236    1231n>
, /*>".c#L299" id="L299" class="line" name="L299"> 2912e2n>
" id="L23* PIIX4 Errata: We don't support ame="L299" on the original PIIX4.>".c#L299" id="L299" class="line" name="L299"> 2912e3n>
" id="L23* This shouldn't be an issue as few ( idany) mobile systems7eL29>".c#L299" id="L299" class="line" name="L299"> 2912e4n>
" id="L23* used this part.>".c#L299" id="L299" class="line" name="L299"> 2912e5n>
" id="L23*/>".c#L299" id="L299" class="line" name="L299"> 291236n>
p_throttlierratat;->piix4t;->p_thtme="L2lpi_pf "+code=AE_NOT_FOUND" class="sref">AE_NOT_FOUND
p_thE    DEBUG_PRINT     =ef="+code=acpi_E    DB_INFass="sref">ACPI_E    DB_INFapi_p<.c#L285" id="L285" class="line" name="L285"> 2812e8n>
"ffng long tpc12e9n>
tpc1240n>
 236    1241n>
tpc1242n>
p_thE    DEBUG_PRINT     =ef="+code=acpi_E    DB_INFass="sref">ACPI_E    DB_INFapi_p<32>, "<.c#L285" id="L285" class="line" name="L285"> 2812e3n>
acpi_pg = &(pr->->p_throttling->tpc12e4n>
tpc12e5n>
acpi_pg = &(flagst;->pr->tpc12e6n>
tpc12e7n>
, /*>".c#L299" id="L299" class="line" name="L299"> 291248n>
" id="L23* Disable homment">  ( idenabled).  We'll let subsequ2nt policy (e.g.>".c#L299" id="L299" class="line" name="L299"> 2912e9n>
" id="L23* thermal) decidl to7lower performance" idit so chooses, but for7now>".c#L299" id="L299" class="line" name="L299"> 291250n>
" id="L23* we'll crank up the speed.>".c#L299" id="L299" class="line" name="L299"> 291251n>
" id="L23*/>".c#L299" id="L299" class="line" name="L299"> 291252n>
 281253n>
pr->-> homment"> " class="sref">cstrur_get_pla=9"> homment">           acpi_pfng long tpc12e4n>
pr-> 2912e5n>
p_thend    ng long tpc12e6n>
tpc12e7n>
acpi_pg = &(pr->->p_throttlingAE_NOT_FOUND
p_thE    DEBUG_PRINT     =ef="+code=acpi_E    DB_INFass="sref">ACPI_E    DB_INFapi_p<.c#L285" id="L285" class="line" name="L285"> 281259n>
  homment">  (was T%d)"string">"<.c#L285" id="L285" class="line" name="L285"> 281260n>
acpi_pg = &(pr->->p_throttlingtpc1261n>
pr->-> homment"> " class="sref">cstrur_get_pla=s"> homment">           acpi_p< 0a>(( falsepi_pfng long tpc1262n>
pr-> 291263n>
p_thend    ng long tpc1264n>
 236    1265n>
 236    1266n>
p_thend    :g long tpc1267n>
pr-> 291268n>
acpi_pg = &(flagst;->pr->tpc1269n>
 291270n>
pr->tpc1271n>
 236    1272n>
 281273n>

The original LXR software by the c#L282" ihttp://sourceforge.netss="jects/lxr">LXR communitypi_p< this experimental L282ion by c#L282" imailto:lxr@/acux.no">lxr@/acux.not;

lxr./acux.no kindly hosted by c#L282" ihttp://www.redpill-/acs=".no">Redpill Lacs=" ASpi_p< s="vider of Lacux5consul"">  and operations servilin since"1995.
 sdiv>