linux/drivers/thermal/cpu_cooling.c
<<
>>
Prefs
   1/*
   2 *  linux/drivers/thermal/cpu_cooling.c
   3 *
   4 *  Copyright (C) 2012  Samsung Electronics Co., Ltd(http://www.samsung.com)
   5 *  Copyright (C) 2012  Amit Daniel <amit.kachhap@linaro.org>
   6 *
   7 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   8 *  This program is free software; you can redistribute it and/or modify

  
  >   1/*
   2 *  linux/drivers/thermal/cpuware; you can refy
d in  re hope thatoptiwill be useful, an>thermal/cpu_cooling.c#L7" id="L7" class="line" n1ame="L3"1>   3 *
   4 *  Copyright (C) 2012  SamsuMERCHANTABILITY "drFITNESS FOR A PARTICULAR PURPOSE., Lee  re GNUthermal/cpu_cooling.c#L7" id="L7" class="line" n1ame="L5"1>   5 *  Copyright (C) 2012  Amit General Pub;"> License f"drivit details.thermal/cpu_cooling.c#Lan redistribute it and/or1ame="L6"1>   6 *
   7 * ~~~~~~~~~~~~~~~~~~~~~~~~~ Yd/osrnald haveodice.c#d a cani of  re GNU General Pub;"> License alongthermal/cpu_cooling.c#L7" id="L7" class="line" n1ame="L8"1>   8 *  This program is free softwiur tare; you ca; if not, wri>

   1/*
>   2 *  linux/drivers/thermal/c/thermal/cpu_cooling.c#L8" id="L8" class="line" n2ame="L3"2>   3 *<#i();udeorg&gcpu_coolii();udermal/c/kernel.h   3mal/c/kernel.h> *   4mal/c/iveule.h> *   5mal/c/ id="L8.h> *   6mal/c/plathead_device.h> *   7mal/c/ cldisq.h> *   8mal/c/err.h> *
mal/c/slab.h> *mal/c/ cl.h> *   1mal/c/ class="lineh> *   2 * /cpu_cooling.c#L8" id="L8" class="line" n3ame="L3">>   3 *
   4 *  Copyright (C) 2012  Sams   5 *  Copyright (C) 2012  Amit@id: unique integer
      carrespondiv>   6 *
   7 * ~~~~~~~~~~~~~~~~~~~~~~~~~@e it_dev:  redistte it an_device pointer   8 *  This program is free softttttegy

 iv>   1/*
   2 *  linux/drivers/thermal/cpuuuuudisquency.thermal/cpu_cooling.c#Lan redistribute it and/or4ame="L3"4>   3 *
>   4 *  Copyright (C) 2012  Sams@node: ly   5 *  Copyright (C) 2012  Amithermal/cpu_cooling.c#Lan redistribute it and/or4ame="L6"4>   6 *
   7 * ~~~~~~~~~~~~~~~~~~~~~~~~~ cldisqte it an_device
 ed b/thermal/cpu_cooling.c#Lan redistribute it and/or4ame="L8"4>   8 *  This program is free sofe it an_ cldisqtly
   1/*<
      isf"> cldisqte it an_devicetha> {/cpu_cooling.c#L8" id="L8" class="line" n5ame="L2"5>   2 *         int ivers/thercode=id	 >
      isf">id> * //cpu_cooling.c#L8" id="L8" class="line" n5ame="L3"5>   3 redistte it an_device> *  *ivers/thercode=  it_dev	 >
      isf">  it_dev> * //cpu_cooling.c#L8" id="L8" class="line" n5ame="L4"5>   4
      isf"> cldisqt="&ge> * //cpu_cooling.c#L8" id="L8" class="line" n5ame="L5">>   5 cldisqt   > * //cpu_cooling.c#L8" id="L8" class="line" n5ame="L6"5>   6 clmask> *  ivers/thercode=allowed_ibus	 >
      isf">allowed_ibus> * //cpu_cooling.c#L8" id="L8" class="line" n5ame="L7"5>   7ly *  ivers/thercode=node	 >
      isf">node> * //cpu_cooling.c#L8" id="L8" class="line" n5ame="L8"5>   8 * }//cpu_cooling.c#L8" id="L8" class="line" n5 modify<5/span>
LIST_HEAD>/*<(ivers/thercode=  it an_ cldisqtly
      isf">  it an_ cldisqtly/*<)//cpu_cooling.c#L8" id="L8" class="line" n60me="L1"60   1DEFINE_IDR>/*<(ivers/thercode= cldisqtidr	 >
      isf"> cldisqtidr>/*<)//cpu_cooling.c#L8" id="L8" class="line" n6ame="L1"6>   1   2mn>
x> *  ivers/thercode=e it an_ cldisqtlock	 >
      isf">  it an_ cldisqtlock> * //cpu_cooling.c#L8" id="L8" class="line" n6ame="L3"6>   3   4 *  Copyright (C) 2012  S/* notify_table pht es<      too re CPUFREQ_ADJUST callback funst" o.  /thermal/cpu_cooling.c#L8" id="L8" class="line" n6ame="L5"6>   5NOTIFY_INVALID> *  ivers/thercode=NULL	 >
      isf">NULL> * /cpu_cooling.c#L8" id="L8" class="line" n6ame="L6">>   6 cldisqte it an_devicetha> *ivers/thercode=notify_device	 >
      isf">notify_device> * //cpu_cooling.c#L8" id="L8" class="line" n6ame="L7"6>   7   8 *  This program is free /* thermal/cpu_cooling.c#Lan redistribute it and/or6 modify<6/span>
   1/*
   2 *  linux/drivers/thermal/c/thermal/cpu_cooling.c#L8" id="L8" class="line" n7ame="L3"7>   3ge tidr>/*<(
      isf">idr>/*< *ivers/thercode=idr	 >
      isf">idr>/*<, int *ivers/thercode=id	 >
      isf">id> * )/cpu_cooling.c#L8" id="L8" class="line" n7ame="L4"7>   4 * {/cpu_cooling.c#L8" id="L8" class="line" n7ame="L5"7>   5err> * //cpu_cooling.c#L8" id="L8" class="line" n7ame="L6"7>   6 *
      isf">again> *<:/cpu_cooling.c#L8" id="L8" class="line" n7ame="L7">>   7unlikely>/*<(ivers/thercode=idr 
      isf">idr /*<(ivers/thercode=idr	 >
      isf">idr>/*<, ivers/thercode=GFP_KERNEL	 >
      isf">GFP_KERNEL> * ) == 0))/cpu_cooling.c#L8" id="L8" class="line" n7ame="L8"7>   8
      isf">ENOMEM> * //cpu_cooling.c#L8" id="L8" class="line" n7 modify<7/span>
mn>
xtlock>/*<(&ivers/thercode=  it an_ cldisqtlock	 >
      isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n8ame="L1"8>   1err> *  = ivers/thercode=idr_t t_newyp>
      isf">idr t t_new>/*<(ivers/thercode=idr	 >
      isf">idr>/*<, ivers/thercode=NULL	 >
      isf">NULL> * , ivers/thercode=id	 >
      isf">id> * )//cpu_cooling.c#L8" id="L8" class="line" n8ame="L2"8>   2mn>
xtunlock>/*<(&ivers/thercode=  it an_ cldisqtlock	 >
      isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n8ame="L3"8>   3   4unlikely>/*<(ivers/thercode=err	 >
      isf">err> *  ==i-ivers/thercode=EAGAIN	 >
      isf">EAGAIN> * ))/cpu_cooling.c#L8" id="L8" class="line" n8ame="L5"8>   5again> *   6unlikely>/*<(ivers/thercode=err	 >
      isf">err> * ))/cpu_cooling.c#L8" id="L8" class="line" n8ame="L7"8>   7
      isf">err> * //cpu_cooling.c#L8" id="L8" class="line" n8ame="L8">>   8
id> *  = *ivers/thercode=id	 >
      isf">id> *  &iivers/thercode=MAX_IDR_MASK	 >
      isf">MAX_IDR_MASK> * //cpu_cooling.c#L8" id="L8" class="line" n90me="L1"90   1   1   2 * /cpu_cooling.c#L8" id="L8" class="line" n9ame="L3"9>   3 *
   4 *  Copyright (C) 2012  Samsreleasetidr - funst" o toodistr re unique id.thermal/cpu_cooling.c#Lan redistribute it and/or9ame="L5"9>   5 *  Copyright (C) 2012  Amit@idr:    6 *
   7 * ~~~~~~~~~~~~~~~~~~~~~~~~/thermal/cpu_cooling.c#L8" id="L8" class="line" n9ame="L8"9>   8releasetidr>/*<(
      isf">idr>/*< *ivers/thercode=idr	 >
      isf">idr>/*<, int ivers/thercode=id	 >
      isf">id> * )/cpu_cooling.c#L8" id="L8" class="line" n9 modify
00   1mn>
xtlock>/*<(&ivers/thercode=  it an_ cldisqtlock	 >
      isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="L1">0>   1idr remove>/*<(ivers/thercode=idr	 >
      isf">idr>/*<, ivers/thercode=id	 >
      isf">id> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="L2"10>   2mn>
xtunlock>/*<(&ivers/thercode=  it an_ cldisqtlock	 >
      isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="L3"10>   3   4   5 *  Copyright (C) 2012  A/* Below code defpane;funst" os toobe used   6   7 * ~~~~~~~~~~~~~~~~~~~~~~/* thermal/cpu_cooling.c#Lan redistribute it and/or10ame="L8"10>   8 *  This program is free sofis_ cldisqt   idi- funst" o toocheck rf a cpu hasudisquency transit" o pit cy.thermal/cpu_cooling.c#Lan redistribute it and/or10 modify<10/span>
>0   1>>   1is_ cldisqt   id>/*<(int ivers/thercode= cl	 >
      isf"> cl> * )/cpu_cooling.c#L8" id="L8" class="line" n11ame="L2"11>   2 * {/cpu_cooling.c#L8" id="L8" class="line" n11ame="L3"11>   3 cldisqtpit cy> *  ivers/thercode=pit cy	 >
      isf">pit cy> * //cpu_cooling.c#L8" id="L8" class="line" n11ame="L4"11>   4
      isf"> cldisqtt t_pit cy>/*<(&ivers/thercode=pit cy	 >
      isf">pit cy> * , ivers/thercode= cl	 >
      isf"> cl> * )//cpu_cooling.c#L8" id="L8" class="line" n11ame="L5"11>   5 * }/cpu_cooling.c#L8" id="L8" class="line" n11ame="L6"11>   6   7 * ~~~~~~~~~~~~~~~~~~~~~~/* thermal/cpu_cooling.c#Lan redistribute it and/or11ame="L8"11>   8 *  This program is free soft t_ibutdisquency -oge ;tre absoln>
<      of disquency from level.thermal/cpu_cooling.c#Lan redistribute it and/or11 modify<11/span>
   1/*
>   2 *  linux/drivers/thermal/c/thermal/cpu_cooling.c#L8" id="L8" class="line" n12ame="L3"12>   3ge tibutdisquency>/*<(unsign
d int ivers/thercode= cl	 >
      isf"> cl> * , unsign
d long ivers/thercode=level	 >
      isf">level> * )/cpu_cooling.c#L8" id="L8" class="line" n12ame="L4"12>   4 * {/cpu_cooling.c#L8" id="L8" class="line" n12ame="L5"12>   5r t>/*< = 0, ivers/thercode=i	 >
      isf">i>/*< = 0//cpu_cooling.c#L8" id="L8" class="line" n12ame="L6"12>   6level_ind
x> * //cpu_cooling.c#L8" id="L8" class="line" n12ame="L7"12>   7
      isf">bs="> *  ivers/thercode=descend	 >
      isf">descend> *  = ivers/thercode=dden"	 >
      isf">dden"> * //cpu_cooling.c#L8" id="L8" class="line" n12ame="L8"12>   8 cldisqtdisquency_table>/*< *ivers/thercode=table	 >
      isf">table>/*< =/cpu_cooling.c#L8" id="L8" class="line" n12 modify<12/span>
 cldisqtdisquency_ge ttable>/*<(ivers/thercode= cl	 >
      isf"> cl> * )//cpu_cooling.c#L8" id="L8" class="line" n130me="L1"130   1table>/*<)/cpu_cooling.c#L8" id="L8" class="line" n13ame="L1"13>   1
      isf">r t>/*   2 * /cpu_cooling.c#L8" id="L8" class="line" n13ame="L3"1>>   3table>/*<[ivers/thercode=i	 >
      isf">i>/*<].ivers/thercode=disquency	 >
      isf">disquency>/*< != ivers/thercode=CPUFREQ_TABLE_END	 >
      isf">CPUFREQ_TABLE_END> * ) {/cpu_cooling.c#L8" id="L8" class="line" n13ame="L4"13>   4table>/*<[ivers/thercode=i	 >
      isf">i>/*<].ivers/thercode=disquency	 >
      isf">disquency>/*< == ivers/thercode=CPUFREQ_ENTRY_INVALID	 >
      isf">CPUFREQ_ENTRY_INVALID>/*<)/cpu_cooling.c#L8" id="L8" class="line" n13ame="L5"13>   5   6   7   8table>/*<[ivers/thercode=i	 >
      isf">i>/*< + 1].ivers/thercode=disquency	 >
      isf">disquency>/*< != ivers/thercode=CPUFREQ_TABLE_END	 >
      isf">CPUFREQ_TABLE_END> * ) &&/cpu_cooling.c#L8" id="L8" class="line" n13 modify<13/span>
table>/*<[ivers/thercode=i	 >
      isf">i>/*< + 1].ivers/thercode=disquency	 >
      isf">disquency>/*< rg&g ivers/thercode= able	 >
      isf">table>/*<[ivers/thercode=i	 >
      isf">i>/*<].ivers/thercode=disquency	 >
      isf">disquency>/*<)/cpu_cooling.c#L8" id="L8" class="line" n1a0me="L1"140   1descend> * ) {/cpu_cooling.c#L8" id="L8" class="line" n14ame="L1"14>   1descend> *  = ivers/thercode=/sue	 >
      isf">tsue>/*   2   3>   4   5descend> *  &&iivers/thercode=i	 >
      isf">i>/*< == ivers/thercode=level	 >
      isf">level> * )/cpu_cooling.c#L8" id="L8" class="line" n14ame="L6"14>   6
      isf">table>/*<[ivers/thercode=i	 >
      isf">i>/*<].ivers/thercode=disquency	 >
      isf">disquency>/*   7i>/*<++//cpu_cooling.c#L8" id="L8" class="line" n14ame="L8"14>   8
i>/*<--//cpu_cooling.c#L8" id="L8" class="line" n150me="L1"150   1   1level> *  ers/ ivers/thercode=i	 >
      isf">i>/*< || ~vers/thercode=descend	 >
      isf">descend> * )/cpu_cooling.c#L8" id="L8" class="line" n15ame="L2"15>   2
      isf">r t>/*   3level_ind
x> *  = ivers/thercode=i	 >
      isf">i>/*< - ivers/thercode=level	 >
      isf">level> * //cpu_cooling.c#L8" id="L8" class="line" n15ame="L4"15>   4>   5   6i>/*< ers/= 0) {/cpu_cooling.c#L8" id="L8" class="line" n15ame="L7"15>   7table>/*<[ivers/thercode=i	 >
      isf">i>/*<].ivers/thercode=disquency	 >
      isf">disquency>/*< == ivers/thercode=CPUFREQ_ENTRY_INVALID	 >
      isf">CPUFREQ_ENTRY_INVALID>/*<)/cpu_cooling.c#L8" id="L8" class="line" n15ame="L8"15>   8
i>/*< == ivers/thercode=level_ind
x	 >
      isf">level_ind
x> * )/cpu_cooling.c#L8" id="L8" class="line" n16ame="L1"16>   1
      isf">table>/*<[ivers/thercode=i	 >
      isf">i>/*<].ivers/thercode=disquency	 >
      isf">disquency>/*   2i>/*<--//cpu_cooling.c#L8" id="L8" class="line" n16ame="L3"16>   3   4
      isf">r t>/*   5 * }/cpu_cooling.c#L8" id="L8" class="line" n16ame="L6"1>>   6   7 * ~~~~~~~~~~~~~~~~~~~~~~/* thermal/cpu_cooling.c#Lan redistribute it and/or16ame="L8"16>   8 *  This program is free ~~~ cldisqtapplyte it ani- funst" o tooapply disquency clipp andthermal/cpu_cooling.c#Lan redistribute it and/or16 modify<16/span>
/ermal/cpu_cooling.c#L7" id="L7" class="line" n1a0me="L1"170   1   1/*
   2 *  linux/drivers/thermal/c/thermal/cpu_cooling.c#L8" id="L8" class="line" n17ame="L3"17>   3 cldisqtapplyte it an>/*<(
      isf"> cldisqte it an_devicetha> *ivers/thercode= cldisqtdevice	 >
      isf"> cldisqtdevicetha>,/cpu_cooling.c#L8" id="L8" class="line" n17ame="L4"17>   4
      isf">  it an_="&ge> * )/cpu_cooling.c#L8" id="L8" class="line" n17ame="L5"17>   5   6 clid> * , ivers/thercode= liptdisq	 >
      isf"> liptdisq>/*>   7 clmask> *  *ivers/thercode=maskPtr	 >
      isf">maskPtr> *  = &ivers/thercode= cldisqtdevice	 >
      isf"> cldisqtdevicetha>-ers/ivers/thercode=allowed_ibus	 >
      isf">allowed_ibus> * //cpu_cooling.c#L8" id="L8" class="line" n17ame="L8"17>   8 cl> *  = ivers/thercode= clmask_any	 >
      isf"> clmask_any>/*<(ivers/thercode=maskPtr	 >
      isf">maskPtr> * )//cpu_cooling.c#L8" id="L8" class="line" n17 modify<17/span>
   1   2 cldisqtdevicetha>-ers/ivers/thercode= cldisqt="&ge	 >
      isf"> cldisqt="&ge> *  == ivers/thercode=e it an_="&ge	 >
      isf">  it an_="&ge> * )/cpu_cooling.c#L8" id="L8" class="line" n18ame="L3"18>   3   4   5 liptdisq>/*< = ivers/thercode=t t_ibutdisquency	 >
      isf">ge tibutdisquency>/*<(ivers/thercode= cl	 >
      isf"> cl> * , ivers/thercode=  it an_="&ge	 >
      isf">  it an_="&ge> * )//cpu_cooling.c#L8" id="L8" class="line" n18ame="L6"18>   6 liptdisq>/*<)/cpu_cooling.c#L8" id="L8" class="line" n18ame="L7"18>   7
      isf">EINVAL> * //cpu_cooling.c#L8" id="L8" class="line" n18ame="L8"1>>   8
 cldisqtdevicetha>-ers/ivers/thercode= cldisqt="&ge	 >
      isf"> cldisqt="&ge> *  = ivers/thercode=  it an_="&ge	 >
      isf">  it an_="&ge> * //cpu_cooling.c#L8" id="L8" class="line" n190me="L1"190   1 cldisqtdevicetha>-ers/ivers/thercode= cldisqt   	 >
      isf"> cldisqt   > *  = ivers/thercode= liptdisq	 >
      isf"> liptdisq>/*   1notify_device> *  = ivers/thercode= cldisqtdevice	 >
      isf"> cldisqtdevicetha>//cpu_cooling.c#L8" id="L8" class="line" n19ame="L2"19>   2 * /cpu_cooling.c#L8" id="L8" class="line" n19ame="L3"19>   3for_each_ cl>/*<(ivers/thercode= clid	 >
      isf"> clid> * , ivers/thercode=maskPtr	 >
      isf">maskPtr> * ) {/cpu_cooling.c#L8" id="L8" class="line" n19ame="L4"19>   4is_ cldisqt   id>/*<(ivers/thercode= clid	 >
      isf"> clid> * ))/cpu_cooling.c#L8" id="L8" class="line" n19ame="L5"19>   5 cldisqtupd&ge_pit cy>/*<(ivers/thercode= clid	 >
      isf"> clid> * )//cpu_cooling.c#L8" id="L8" class="line" n19ame="L6"19>   6   7   8notify_device> *  = ivers/thercode=NOTIFY_INVALID	 >
      isf">NOTIFY_INVALID> * //cpu_cooling.c#L8" id="L8" class="line" n19 modify<1//span>
   1   2idr>/*< *ive    is="line" n19am20ame="L3"2 isf">idri *      >
    1[0ivers/thercode= clid	 >
      isf"> Rest" sf"> Restk funst" oisq ae;e it/*<(iv changal/cpu_cooling.c#Lan redistribute it and/or17ame="25"10>   52/a> * 2Copyright (C) 2012  A/* Beloe: lybt idr * hsf"> Res_b;used*are; yk funst" t" ol/cpu_cooling.c#Lan redistribute it and/or17ame="25"2>   6   72/a> * 2~~~~~~~~~~~~~~~~~~~~~/* ther interma:yk funst"-spec> Rcherma/cpu_cooling.c#Lan redistribute it and/or120me="27"2>   8 * 2This program is free sofis_ cll/cpu_cooling.c#L8" id="L8" class="line" n2ame="L3y<10/span2
 Res   isf"> cldisqtupd&ge_
      isf"> Ressuct ivers/thercode= cldisqsf"> Res_b;use   isf">notify_devicRes_b;usevers/thercode=maskPtrnb   isf">notify_dbpu_cooling.c#L8" id="L8" class="line" n17ame="21">>0   12/a>notify_arrupvers/ters/tthercode=maskPtrerma   isf">descend>rma/c_cooling.c#L8" id="L8" class="line" n18ame="21">>>   12/a>   22/a> * 21      if (iveivers/thercode= cldisqtpit cy	 >
      isf"> cldisqtpit cy> *  ivers/tthercode=maskPtr >
      isf">pit cy> * , iverss/thercode=NOTIFY_erma   isf">descend>rma/c_cooling.c#L8" id="L8" class="line" n20ame="L3"11>   32/a> liptdimax>
   verss/tcooling.c#L8" id="L8" class="line" n20ame="L4"11>   42/a>   52/a> * 21      int ivers/thercode=is_ cldarrup   isf">notify_arrupversrs/thercode=CPUFREQ_TABLE_Ecallba   isf">CPUFREQ_ENTRY_Icallbaversrs/thercode=descenddevice	 >
      isf">notify_device> *  = ivers//thercode=NOTIFY_INVALID	 >
      isf">NOTIFY_INVALID> * //cpu_cooling.c#L8" id="L8" class="line" n18ame="21"2>   6   72/a> * 21pu_cooling.c#L8" id="L8" class="line" n19ame="28"11>   82/a> * 218     int ivers/thercode=is_ cld_any>/*for_eac_any>/*
      isf">pit cy> * , iversers/thercode= cldisqt     isf"> cl> * , ivers/ters/thercode= cldisqdevice	 >
      isf">notify_device> *  = iverers/thercode=allowed_ibus	 >
      isf">allowed_ibus> * //cpu_ccooling.c#L8" id="L8" class="line" n19ame="2y<11/span2
 liptdimax>
   verss/thercode= cldisqdevice	 >
      isf">notify_device> *  = iverers/thercode=allowedt   	 >
      isf"> cldisqt   > *  = iverooling.c#L8" id="L8" class="line" n20ame="L1"120   12/a>   12/a>/*<22      iCopyright (C) 2012  A/* Check rNorde exce ivuses_thermalmaxll/cpu_cooling.c#L8" id="L8" class="line" n2ame="L32"1>>   22/a> * 22      if (ivers/thercode= cldisqmax>
      isf"> liptdimax>
   verssers/thercode=i	 >
   >
      isf">pit cy> * , iversers/thercode= cldisquses_therma   isf">pit cy>uses_thermaversthercode=disquenmax   isf"> liptdimaxpu_cooling.c#L8" id="L8" class="line" n18ame="23"12>   32/a>
      isf"> liptdimax>
   verss/thercode= cldisq >
      isf">pit cy> * , iversers/thercode= cldisquses_therma   isf">pit cy>uses_thermaversthercode=disquenmax   isf"> liptdimaxpu_cooling.c#L8" id="L8" class="line" n20ame="L1"11>   42/a> * 22pu_cooling.c#L8" id="L8" class="line" n18ame="25"12>   52/a>pit cy> * , iversers/thercode= cldisqmax   isf"> liptdimaxpu_crs/thercode=CPUFREQmax>
      isf"> liptdimax>
   versooling.c#L8" id="L8" class="line" n18ame="23"2>   6allowedt   	 >
 erice>re; in_limit ers/thercode= clid	  >
      isf">pit cy> * , ivers,rs/thercode=i	 >
  max>
      isf"> liptdimax>
   versoooling.c#L8" id="L8" class="line" n20ame="L1"11>   72/a>   82/a> * 2      ooling.c#L8" id="L8" class="line" n20ame="L1"130   12/a>   12/a>   22/a> * 23inux/drivers/thermal/c/therma  ae;e it ost" o pointerk funst" o.  /thes arne;funstd bde d="c202tA0s="line" n19am20a~~~~~~~~~/* thermal/cpu2"12>   32/a>idri   42/a>   52/a>   6
tdismax>* //c -rk funst" o.  /the;a uniqu e imaxni="&gedthermal/cpu_cooling.c#Lan redistribute it and/or17ame="27"13>   72/a>   82/a>allowedt   	 >
tdismax>* //csuct ivers/thercode= cldisq
      i_device	 >
      isf"> cldisq
      i_device	 >
   ers/tthercode=maskPtrc      isf">  it_dev//cpu_cooling.c#L8" id="L8" class="line" n17ame="21"14>   12/a>allowed* )/cpu_cooling.c#L8" id="L8" class="line" n18ame="22"14>   22/a>   32/a>r t>/*< = 0, iverthercode=EINVAL	 >
      isf">EINVAL> * //cpu_c/thercode=i	 >
      isf">i>/*< = 0//cpu_cooling.c#L8" id="L8" class="line" n12ame="24"1>>   42/a> cldisqte it an_devicetha> *ivers/thercode= cldisqtdevice	 >
      isf"> cldisqtdevicetha>,/cpu_cooling.c#L8" id="L8" class="line" n12ame="24"13>   52/a> clmask> *  *ivers/thercode=maskPtr	 >
      isf">maskPtr> *  = &ooling.c#L8" id="L8" class="line" n12ame="24"2>   6 cl> * , iversooling.c#L8" id="L8" class="line" n12ame="24"13>   72/a> cldisqtdisquency_table>/*< *ivers/thercode=table	 >
      isf">table>/*< =/cpu_ooling.c#L8" id="L8" class="line" n12ame="24"12>   82/a>mn>
xtlock>/*<(&ivers/thercode=  it an_ cldisqtlock	 >
      isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="21"150   12/a>pit cy>list_h_ cl>/*<<@ r ers/thercode= clid	 >
 vice	 >
      isf"> cldisqtdevicetha>,/cpu_covers/thercode= cldisqt cldisqtlock> * ist   isf">  it an_ cldisqtlock> * istpu_c/thercode=i	 >
  n>
    isf">notify_dede/cpu_cooling.c#L8" id="L8" class="line" n19ame="21"15>   12/a> cldisqtdevicetha>-ers/ivamp;iivers/thercode=i	 >
  tdevice	 >
      isf"> cldisqtdevicetha>-ers/ivers/thercode= cldisqt" n_      isf">  it_dev" n_   ivers//thercode=NOTIFY_c      isf">  it_dev//cpu_cooling.c#L8" id="L8" class="line" n18ame="22"15>   22/a>   32/a>   42/a> cldisqtdevicetha>-ers/iva//thercode=NOTIFY_I      isf">NULL> * , iversooling.c#L8" id="L8" class="line" n18ame="22"13>   52/a>allowed0//cpuetdismax>* //ccpu_ooling.c#L8" id="L8" class="line" n12ame="26"15>   62/a>   72/a>	 >
      isf">maskPtr> *  = &ivers/thercode= cldisqtdevice	 >
      isf"> cldisqtdevicetha>-ers/ivers/thercode=allowed_ibus	 >
      isf">allowed_ibus> * //cpu_cooling.c#L8" id="L8" class="line" n17ame="28"15>   82/a> cl> * , iverss/thercode= clmask_any	 >
      isf"> clmask_any>/*<(ivers/thercode=maskPtr	 >
      isf">maskPtr> * )//cpu_cooling.c#L8" id="L8" class="line" n17 modi2y<15/span2
table>/*< =/cpu_cothercode= cldisqtdisquency_ge ttable	 >
      isf"> cldisqtdisquency_ge ttable>/*<(ivers/thercode= cl	 >
      isf"> cl> * )//cpu_cooling.c#L8" id="L8" class="line" n130me="21"160   12/a>table>/*<)/cpu_cocooling.c#L8" id="L8" class="line" n19ame="21"16>   12/a>allowed* )/cpu_cpu_cooling.c#L8" id="L8" class="line" n12ame="22"16>   22/a>r t>/*< = 0, iversooling.c#L8" id="L8" class="line" n12ame="22"14>   32/a>* //c   isf">allowed0//cpuetdismax>* //ccpu_ooling.c#L8" id="L8" class="line" n12ame="24"16>   42/a>   52/a> * 2/cpu_coling.c#L8" id="L8" class="line" n16ame="25"15>   62/a>table>/*<[ivers/thercode=i	 >
      isf">i>/*<].ivers/thercode=disquency	 >
      isf">disquency>/*< != ivers/thercode=CPUFREQ_TABLE_END	 >
      isf">CPUFREQ_TABLE_END> * ) {/cpu_cooling.c#L8" id="L8" class="line" n13ame="27"16>   72/a> * 26              if (ivers/thercode=table	 >
      isf">table>/*<[ivers/thercode=i	 >
      isf">i>/*<].ivers/thercode=disquency	 >
      isf">disquency>/*< == ivers/thercode=CPUFREQ_ENTRY_INVALID	 >
      isf">CPUFREQ_ENTRY_INVALID>/*<)/cpu_cooling.c#L8" id="L8" class="line" n13ame="27"15>   82/a> * 26                      e" iinue//cpu_cooling.c#L8" id="L8" class="line" n15 modi2y<16/span2
i>/*<++//cpu_cooling.c#L8" id="L8" class="line" n14ame="21"170   12/a>   12/a>/*<27      if (ivers/thercode=level	     isf">i>/*< ers/= 0) {/pu_cooling.c#L8" id="L8" class="line" n15ame="22"17>   22/a> * 27              ~vers/tthercode=maskPtr* //c   isf">allowed* )/cpu_cpu_-thercode=EINVAL	    isf">i>/*< ers/= ooling.c#L8" id="L8" class="line" n14ame="21"14>   32/a>r t>/*< = 0, iversooling.c#L8" id="L8" class="line" n12ame="24"17>   42/a>   52/a>   62/a>allowed0//cpuetdismax>* //ccpu_:oling.c#L8" id="L8" class="line" n16ame="26"16>   72/a>	lock	 >
      isf">mn>
xtunlock>/*<(&ivers/thercode=  it an_ cldisqtlock	 >
      isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="28"17>   82/a>r t>/*< = 0, iooling.c#L8" id="L8" class="line" n10ame="28<16/span2
   12/a>   22/a>   32/a>idri   42/a>   52/a>   62/a>allowedt   	 >
tdiscur>* //csuct ivers/thercode= cldisq
      i_device	 >
      isf"> cldisq
      i_device	 >
   ers/tthercode=maskPtrc      isf">  it_dev//cpu_cooling.c#L8" id="L8" class="line" n17ame="27"18>   72/a>allowed* )/cpu_cooling.c#L8" id="L8" class="line" n18ame="28"1>>   82/a> * 2       ~vers/trs/thercode=r typ>
      isf">r t>/*< = 0, iverthercode=EINVAL	 >
      isf">EINVAL> * //cpu_cooling.c#L8" id="L8" class="line" n10ame="21"190   12/a> cldisqte it an_devicetha> *ivers/thercode= cldisqtdevice	 >
      isf"> cldisqtdevicetha>,/cpu_cooling.c#L8" id="L8" class="line" n12ame="21"19>   12/a>   22/a> * 292     ivers/thercode=bs="	 >	lock	
      isf">mn>
xtlock>/*<(&ivers/thercode=  it an_ cldisqtlock	 >
      isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="23"19>   32/a>pit cy>list_h_ cl>/*<<@ r ers/thercode= clid	 >
 vice	 >
      isf"> cldisqtdevicetha>,/cpu_covers/thercode= cldisqt cldisqtlock> * ist   isf">  it an_ cldisqtlock> * istpu_c/thercode=i	 >
  n>
    isf">notify_dede/cpu_cooling.c#L8" id="L8" class="line" n10ame="23"18>   42/a> cldisqtdevicetha>-ers/ivamp;iivers/thercode=i	 >
  tdevice	 >
      isf"> cldisqtdevicetha>-ers/ivers/thercode= cldisqt" n_      isf">  it_dev" n_   ivers//thercode=NOTIFY_c      isf">  it_dev//cpu_cocooling.c#L8" id="L8" class="line" n10ame="23"17>   52/a>allowed* )/cpu_cpu_hercode=i	 >
  tdevice	 >
      isf"> cldisqtdevicetha>-ers/ivers/thercode= cldisqt="&ge	 >
      isf"> cldisqt="&ge> *  = iverooling.c#L8" id="L8" class="line" n10ame="23"18>   62/a>r t>/*< = 0, iversooling.c#L8" id="L8" class="line" n12ame="27"19>   72/a>   82/a>mn>
xtunlock>/*<(&ivers/thercode=  it an_ cldisqtlock	 >
      isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="31"20>   13/a>   23/a>r t>/*< = 0, iooling.c#L8" id="L8" class="line" n10ame="33"2 isf">3dr>/*< *ive    is="line"3n19am30ame=" 27     ooling.c#L8" id="L8" class="line" 3142 isf">3da>   53/a> * 3Copyright (C) 2012  A/* Belo/ss="c202tA0s="line" n19am20a~~~~~~~~~/* thermal/cp35"2>   6<3/a>   73/a> * 3~~~~~~~~~~~~~~~~~~~~~/* ther intcpoi: ribute t ost" o pointer   8<3/a> * 3This program is free sofis_ cl=@      osiqu et" vari revea u e icurrrupti="&gedthermal/cpu_cooling.c#Lan redistribute it and/or17ame="3792>   8<3/>0   13/a>allowedt   	 >
sdiscur>* //csuct ivers/thercode= cldisq
      i_device	 >
      isf"> cldisq
      i_device	 >
   ers/tthercode=maskPtrc      isf">  it_dev//cpu_cooling.c#L8" id="L8" class="line" n17ame="31">>>   13/a>allowed* )/cpu_cooling.c#L8" id="L8" class="line" n18ame="32"11>   23/a> * 31cpu_cooling.c#L8" id="L8" class="line" n11ame="33"11>   33/a>r t>/*< = 0, iverthercode=EINVAL	 >
      isf">EINVAL> * //cpu_cooling.c#L8" id="L8" class="line" n10ame="34"11>   43/a> cldisqte it an_devicetha> *ivers/thercode= cldisqtdevice	 >
      isf"> cldisqtdevicetha>,/cpu_cooling.c#L8" id="L8" class="line" n12ame="35"11>   53/a> * 31cpu_coling.c#L8" id="L8" class="line" n16ame="31"2>   6<3/a>	lock	
      isf">mn>
xtlock>/*<(&ivers/thercode=  it an_ cldisqtlock	 >
      isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="37"11>   73/a> * 31      ivers/thercode=bs="	 >list_h_ cl>/*<<@ r    isf">pit cy>list_h_ cl>/*<<@ r ers/thercode= clid	 >
 vice	 >
      isf"> cldisqtdevicetha>,/cpu_covers/thercode= cldisqt cldisqtlock> * ist   isf">  it an_ cldisqtlock> * istpu_c/thercode=i	 >
  n>
    isf">notify_dede/cpu_cooling.c#L8" id="L8" class="line" n10ame="37"2>   8<3/a> * 31              if ((ivers/hercode=is_ cldtdevice	 >
      isf"> cldisqtdevicetha>-ers/ivamp;iivers/thercode=i	 >
  tdevice	 >
      isf"> cldisqtdevicetha>-ers/ivers/thercode= cldisqt" n_      isf">  it_dev" n_   ivers//thercode=NOTIFY_c      isf">  it_dev//cpu_cocooling.c#L8" id="L8" class="line" n10ame="3792>   8<3
      isf">r t>/*< = 0, iversooling.c#L8" id="L8" class="line" n12ame="31"120   13/a>   13/a>/*<32                      27     ooling.c#L8" id="L8" class="line" 32"1>>   23/a> * 32      if (ive 27     ooling.c#L8" id="L8" class="line" 32"11>   33/a>r t>/*< = 0, iooling.c#L8" id="L8" class="line" n18ame="31"11>   43/a> * 32              ~~~~~~~~ercode=bs="	 >      isf">r t>/*< = 0, iverhercode=i	 >
  tdevice	 it an	 >
      isf"> cldisqtapplyte it an>/*<(
 vice	 >
      isf"> cldisqtdevicetha>,/cpu_covhercode=maskPtr* //c   isf">allowed* )/cpu_coooling.c#L8" id="L8" class="line" n10ame="31"11>   53/a>   6<3/a>	lock	 >
      isf">mn>
xtunlock>/*<(&ivers/thercode=  it an_ cldisqtlock	 >
      isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="31"11>   73/a>   83/a>r t>/*< = 0, iooling.c#L8" id="L8" class="line" n10ame="3y<12/span3
   13/a>   23/a> * 33inux/ivers/tivers/thercode= cldisq
      i_device	 >
   _ops   isf"> cldisq
      i_device	 >
   _ops     cons/thercode= cldisqte it an_device	ops   isf"> cldisqte it an_device	ops0, iverooling.c#L8" id="L8" class="line" n10ame="32"12>   33/a>allowedtdismax>* //ccpu_verhercode=i	 >
  tdevice	tdismax>* //c   isf">allowedt   	 >
tdismax>* //csuctooling.c#L8" id="L8" class="line" n17ame="34"13>   43/a>allowedtdiscur>* //csuctverhercode=i	 >
  tdevice	tdiscur>* //c   isf">allowedt   	 >
tdiscur>* //csuctooling.c#L8" id="L8" class="line" n17ame="34"11>   53/a>allowedsdiscur>* //csuctverhercode=i	 >
  tdevice	sdiscur>* //c   isf">allowedt   	 >
sdiscur>* //csuctooling.c#L8" id="L8" class="line" n17ame="34"2>   6<3/a>   73/a>   83/a> Restoisq ae;e it/*<(iv changadil/cpu_cooling.c#L8" id="L8" class="line" n2ame="L32<12/span3
 Res_b;use   isf">notify_devicRes_b;usevers/hercode= cldisq
      i_   	 >
sf"> Res_b;use   isf">notify_
      i_   	 >
sf"> Res_b;use0, iverooling.c#L8" id="L8" class="line" n10ame="31"140   13/a> Res_  fu   isf">notify_devicRes_  fusuctverhercode=i	 >
  tdevice	
      isf"> Res   isf"> cldisqtupd&ge_
      isf"> Ressuctooling.c#L8" id="L8" class="line" n17ame="31"14>   13/a>   23/a>   33/a>idri>   43/a>   53/a>   6<3/a>   73/a> cldisq
      i_device	 >
   ers/tthercode=maskPtrcclid	 >_device	registes   isf"> cldisqte it an_device	registesmp;ivoling.c#L8" id="L8" class="line" n2ame="L34"12>   83/a> clmask> *  *ivers/thercode=maskPtrsq>/*t as   isf"> clmask>q>/*t as0, iooling.c#L8" id="L8" class="line" n18ame="3y<14/span3
 cldisq
      i_device	 >
   ers/tthercode=maskPtrc" n_      isf">  it_dev" n_   iverooling.c#L8" id="L8" class="line" n10ame="31"15>   13/a> cldisqte it an_devicetha> *ivers/thercode= cldisqtdevice	 >
   isf"> cldisqtdevicetha>suctverhercode=i	 >
  I      isf">NULL> * , iversooling.c#L8" id="L8" class="line" n10ame="31"14>   23/a>notify_>
 vicetha>ne"uup0, ivers/thercode=i	 >
  min   isf">mn>
xtunin0, ivers/thercode=i	 >
  max   isf"> liptdimaxpu_crersooling.c#L8" id="L8" class="line" n12ame="31"14>   33/a> liptdiea>n15om    thercode=i	 >
  THERMAL_NAME_LENGTH   isf"> liptdiTHERMAL_NAME_LENGTH    ]ooling.c#L8" id="L8" class="line" n12ame="31"1>>   43/a>r t>/*< = 0, ivers/thercode=i	 >
      isf">i>/*< ers/= ooling.c#L8" id="L8" class="line" n14ame="32"13>   53/a> cldisqtpit cy> *  ivers/thercode= cldisq >
      isf">pit cy> * , iversooling.c#L8" id="L8" class="line" n14ame="32"2>   6<3/a>   73/a>list_h_ cl>/*<<@ r    isf">pit cy>list_h_ cl>/*<<@ r ers/thercode= clid	 >
 vice	 >
   isf"> cldisqtdevicetha>suctovers/thercode= cldisqt cldisqtlock> * ist   isf">  it an_ cldisqtlock> * istpu_c/thercode=i	 >
  n>
    isf">notify_dede/cpu_oling.c#L8" id="L8" class="line" n16ame="37"12>   83/a>notify_>
 vicetha>ne"uup0, i_cooling.c#L8" id="L8" class="line" n14ame="3y<15/span3
idri/it as havee;new vicetnin, vicetnax limitil/cpu_cooling.c#L8" id="L8" class="line" n2ame="L31"16>   13/a>for_each_ cl>/*<(ivers/thercode= clid	     isf">i>/*< ers/= /thercode=  it an_q>/*t as   isf"> clmask>q>/*t as0, iorooling.c#L8" id="L8" class="line" n10ame="32"16>   23/a>idri   33/a>
tdis >
      isf"> cldisqtpit cy>tdis >
   mp;ivers/thercode=  it an >
      isf">pit cy> * , ivers,rhercode= clid	     isf">i>/*< ers/= cooling.c#L8" id="L8" class="line" n19ame="34"16>   43/a>   53/a> * 36                     rs/thercode= cldisqmin   isf">mn>
xtunin0, iveersamp;iivers/thercode=i	 >
  max   isf"> liptdimaxpu_cre=pu_cooling.c#L8" id="L8" class="line" n15ame="35"15>   63/a>mn>
xtunin0, iverhercode=  it an >
      isf">pit cy> * , iversthercode=disquen"lit" o   isf"> cldisqtpit" oversthercode=disquennin>
      isf"> liptdimin>
   versooling.c#L8" id="L8" class="line" n14ame="37"16>   73/a> * 36              if (ive ype="hi~ercode=e it anmax   isf"> liptdimaxpu_crerhercode=  it an >
      isf">pit cy> * , iversthercode=disquen"lit" o   isf"> cldisqtpit" oversthercode=disquennax>
      isf"> liptdimax>
   versooling.c#L8" id="L8" class="line" n14ame="37"12>   83/a> * 36                     } elsecooling.c#L8" id="L8" class="line" n15ame="35<15/span3
mn>
xtunin0, ivs/thercode=CPUFREQ >
      isf">pit cy> * , iversthercode=disquen"lit" o   isf"> cldisqtpit" oversthercode=disquennin>
      isf"> liptdimin>
   vers ||oling.c#L8" id="L8" class="line" n15ame="31"170   13/a> liptdimaxpu_crs/thercode=CPUFREQ >
      isf">pit cy> * , iversthercode=disquen"lit" o   isf"> cldisqtpit" oversthercode=disquennax>
      isf"> liptdimax>
   versooling.c#L8" id="L8" class="line" n18ame="31"17>   13/a>/*<37                      ~vers/ttttttttt0//cpu_~ercode=e it anERR_PTR   isf"> liptdiERR_PTRmp;ivthercode=EINVAL	 >
      isf">EINVAL> * //cpu_ccooling.c#L8" id="L8" class="line" n10ame="32"17>   23/a> * 37     ooling.c#L8" id="L8" class="line" n20ame="31"14>   33/a>   43/a>
   isf"> cldisqtdevicetha>suctverhercode=i	 >
  kz_ibuc   isf"> cldisqkz_ibucmp;ivsizeof ivers/thercode= cldisqte it an_device	 >
      isf"> cldisqte it an_devicetha> *ivers)ooling.c#L8" id="L8" class="line" n17ame="35"17>   53/a>EINVAL>GFP_KERNE pu_ccooling.c#L8" id="L8" class="line" n10ame="32"15>   63/a> cldisqtdevicetha>suctooling.c#L8" id="L8" class="line" n18ame="31"16>   73/a> liptdiERR_PTRmp;ivthercode=EINVAL	 NOMEM   isf"> liptdiENOMEMpu_ccooling.c#L8" id="L8" class="line" n10ame="32"12>   83/a> clmask_any>/*
 >
   isf"> cldisqtdevicetha>sucters/thercode=allowed_ibus	 >
      isf">allowed_ibus> * //cpu_c/thercode=  it an_q>/*t as   isf"> clmask>q>/*t as0, ioooling.c#L8" id="L8" class="line" n10ame="31"180   13/a>   13/a>notify_>
 vicetha>ne"uup0, ive=pu_oling.c#L8" id="L8" class="line" n18ame="31"17>   23/a>notify_nlock>inipne"p    isf"> clmask_any>/ cldisqtlock	 >
      isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="3*t as   i  isf"> cldisqteime="37"16>   73/a> * cldisqtlock> * iicpu_oling.c#L8" id="L8" class="line" n16ame=ercode=level	 >
 vicetha>ne"u@      ofillnnst" vari revere; y e icu3rrupt38ode=i	 >
  kz_ibuc   isf"> cisqtapplyte it an>/*<( cliid"de=allowed_ibus	 >
      isf">allid" n2ame="L34"12>isf">allid"* istpu_c/thercode=i	 >
  nsf">allowed_ibus> * //cpu_c/thercode=  it an_q>/*t as   isf"id>   73/a> * cldisqe= cldisq#L8" id="L8" class="line3 n2am38 cldisqmax   isf"> liptdimaxpu_c43/a>allowedt3  	 >38wedt   	 >
 erice>re; in_limit ers/tkthe n17ame="35"17> kthe  cldisqt cldisqtlock> * ist   isf">  it an_ cldisqtlock> * is"16>   73/a> * cldisq=e it anE ivers/tthercode=maskPtr3 //c 3 isf">allowed* )/cpu_c     isf">EINVAL> * //cpu_ccooling.c#L8" id="L8" class="line" n10ame="32"17>   23/a> * 37     ooling.c#L8" id="L8" class="line" n15a3e="2y<18/span2
3 t>/*< = 0, iverthercode3EINVA380tio130> * 36      if (!ivL3"2 isf">idri
      isf"> cl3isqte39thercode=  it an_ cldisqtlocsprintf 23/a> liptdiTHERMAL_NAME_LENGTH    ]oo,_erroril/cpu_ca> isf">"!ivL3"2-disqtlo-%d"16omme1class="line" n10amsf">allowed_ibus> * //cpu_c/thercode=  it an_q>/*t as   isf"id>   73/a> * cldisne" n12am3="21"18>   22/a> * 292     ivers/thercode=bs="	 >	lock3
      is3">mn>
xtlock>/*<(&iv3rs/th3rcode=  it an_ cldisqtlock	 >cpu_cocooling.c#L8" id="L8" class="li   _ops     cons/thercode= cldisqte it s="line" n2ame="L34"12>/thercode= cldisqte it s="line" cldisqt cldisqtlock"> liptdiTHERMAL_NAME_LENGTH    ]oo,_eqt cldisqtlock> * ist   isf">  it an_ cldisqtlock> * ist2"> * 292     ivers/thercode=bs="	 >	lock3
tlock> *  r    isf">pit cy>list_h3 cl>/39it cy>tdis >
   mp;ivvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvu_c/thercode=i	 >
  nsf">allss="line" n10ame="32"12>   33/a>   73/a> * cldisn  ofillnnice	 >
      isf"> cldis3tdevi3etha>-ers/ivam="L8" class="line" n1pu_cocooling.c#L8" id="L8" class="1o13
  
 36              ~~~~~~~        rs/thode=maskP3r* //c   isf">allowed* )3cpu_c3u_hercode=i	 >
  tdevi> liptdimaxpu_c43leaselid" n2ame="L34"12>43leaselid"de=allowed_ibus	 >
      isf">allid" n2ame="L34"12>isf">allid"* istpass="line" n10amsf">allowed_ibus> * //cpu_c/thercode=  it an_q>/*t as   isf"id>   73/a> * cldisnlytetdis3      isf">r t>/*< = 0, 3verso3ling.c#L8" id="L8" cla in_limit ers/tkthe n17ame="35"17> kthe  cldisqt cldisqtlock> * ist   isf">  it an_ cldisqtlock> * is"16>   73/a> * cldisooling.c#38" id="L8" class="line" 310ame3"28"19>   82/a>EINVAL> * //cpu_ccooling.c#L8" id="L8" class="line" n10ame="32"17>   23/a> * 37     ooling.c#L8" id="L8" class="lg.c#L8" i3="L8" class="line" ny<1/3span239span3
 * 37      ype="hihercode= cldisqtdevicid="L8" c3ass="line" 31"200   13/a3
 >
   i">allowed_ibus> * //cpu_c/thercode=  it an_q>/*t as   isf"cpu_cocooling.c#L8" id="L8" class="li   _ops     cons"31"15>   13/a>mn>
xtunlock>/*<(&am4;iver4/thercode=  it an_ cldisqtloc  i">allowed_ibus> * //cpu_c/thercode=  it an_q>/*t as   isf"c" n10ame="23"18>   62/a>   23/a>i>/*< er
      isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="37"11>   73/a> * 31      ivers/thercode=bs="	 >list_4n      is4">r t>/*< = 0, iooling.c4L8" i40code=  it an_ cldisqtlock	 >suctoadd_tai  isf"> cldisqtusuctoadd_tai de=allowed_ibus	 >
      isf">allowed_ibus> * //cpu_c/thercode=  it an_q>/*t as   isf"  83/a>notify_dede/cpu_oling.c#L8" id="L8" class="linee13"> * 31      ivers/thercode=bs="	 >list_4n3     is4"r    isf">pit cy>list_h4ass="40"line" n16ame=ercode=level	 >
 vicetha>ne"u@  4ne" n18am4="35"10>   53/a> * 36              ype="hiers/thercode402tA0s="l4ne" n19am20a~~~~~~~~~/* 4herma40 cldisqmax   isf"> liptdimaxpu_c8" class="line" n18ame="31"17>   23/a>   13/a>s="line"ss="line"de=allowed_ibus	 >
      , iverooling.c#L8" id="L8" class="line" n10ame="31"140   13/a> * 292     ivers/thercode=bs="	 >	lock4i: ribute4t ost" o pointerallowed* )/cpu_cooling.c#L8" id="L8" id="L8" cla in_limit ers/t82/a> * 31      ivers/thercode=bs="	 >list_4n8 ribute4t"L8" class="line" ny<1/4pti="40ptio139> * 37      ~vers/thercode=i	 >
  > *  4_cooling.4#L8" id="L8" class="line4 n2am40code=  it an_ cldisqtlock	 >
          isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="31"11>   73/a>allowedt4  	 >41thercode=  it     isf">EINVAL> * //"31"15>   13/a>a134> * 37      ype="hihercode= cldisqtdevi4ine" n11a4e="33"11>   33/a> * ist L8" class="line" n2ame="L34"12>   83/a>
 vicetha>ne"u@  4qte it an4device	 >
      isf"> cl4isqte41 ae;e it ost" o pointel/cpu="c1oomme134> * 34      >
    1[0ivers/thercode= cl4ne" n16am4="31"2>   6<3/a> * 34opyright (C) 2012  A/* Beloe: lsq4
      is4">mn>
xtlock>/*<(&iv4rs/th41iqu e icurrrupti="&gedthermal//or17ame="37"2>   8<3/a> * 3This program is free sofis_ cl=@  4_ cl>/*<<4 r    isf">pit cy>list_h4 cl>/41ling.c#Lan redistribute it anc16omme133> * 36              ype="hiers/thercode4s_ cldtde4ice	 >
      isf"> cldis4tdevi4etha>-voiders)ooling.c#L8" id="L8" class="unstribute n2ame="L34"12>   83/a>  it_dev//cpu_cooling.c#L8" id="L8" class="line" n17ame="31">>>   13/a>r t>/*< = 0, 4verso4150tio13alu
 35      ivers/tivers/thercode= cldi4ooling.c#48" id="L8" class="line" 410ame42t an_devicetha> *ivers/thercode= cldisqtdevice	 >
      isf"> cldisqtdevicetha>,/cpu_cooling.c#L8" id="L8" class="line" n12amecmp;ivsizeof ivers/thercode= cldisqte it an_devi  23/a>4   234a>
  min   isf">mn>
xtunin0, ivers/thercode=i	 >
  max   isf"> l132> * 3              d int ivers/thercode4gne" n11a4ass="line" 32"11>   33/a4 * 34ame="L3"2 isf">idri/*< = 0, iooling.c#L4" id=42<@ r ers/thercode= clid	 >
 
      isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="37"11>   73/a> * 31      ivers/thercode=bs="	 >list_4 >      i4f">r t>/*< = 0, iverherc4de=i	42ode=i	 >
  kz_ibuc   isf"> cvice	 >
   isf"> cldisqtdevicetha>suctovers/thercode= cldisqt cldisqtlock> * ist   isf">  it an_ cldisqtlock> * istpu_c/thercode=i	 >
  n>
    isf">notify_dede/cpu_oling.c#L8" id="L8" class="line" n16ame="37"12>   83/a>   6<3/a> liptdimine" n12amecmp;ivsizeof ivers/thercode= cl/thercode= cldisqt" n_      isf">  itd_ibus> * //cpu_c/thercode=  it an_q>/*t as   isf"cpu_cocooling.c#L8" id="L8" class="li" n18ame="22"15>   22/a>
      4sf">mn>
xtunlock>/*<(&am4;iver42ode=  it an >
      isf">pit 2omme13">/*<32                      27     ooli4ne" n19am4="38"12>   83/a>allowed* )/cpu_crcode=i	 >
  min   isf">mn>
xtunin0, ivers/thercode=i	 >
  max   isfio139> * 35pu_cooling.c#L8" id="L8" class="l4n      is4">r t>/*< = 0, iooling.c4L8" i42span3
 * 37      ype="hihercode= cldisqtdevi4ine" n20a4e="31"130   13/a>idri   13/a>  itd_ibus> * //cpu_c/thercode=  it an_q>/*t as   isf"cpu_cocooling.c#L8" id="L8" class="lsf"> cldisqtpit" o   8<3

          isf">  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="31"11>   73/a>4cldis43   isf"> clmask_any>/     i137> * 32pu_cooling.c#L8" id="L8" class="l4
    isf"4 isf">allowedtdismax>* /4ccpu_43lass="c17omme134> * 37      ype="hihercode= cldisqtdevi4ur>* //c 4 isf">allowedtdiscur>* /4csuct435tioo3"> * 3Copyright (C) 2012  A/* Belo/ss="c4ur>* //c 4 isf">allowedsdiscur>* /4csuct4erhercode=i	 >_ibuc   isf"> cvice	de  isf"> cldisqtusuctode de=allowed_ibus	 >
      isf">allowed_ibus> * //cpu_c/thercode=  it an_q>/*t as   isf"  83/a>   73/a> * 35      ivers/thercode=bs="	 >list_4ne" n19am4="37"12>   83/a> * 36              ype="hiers/thercode4 Restoisq4ae;e it/*<(iv changadil/4pu_co438id="L8" class="l> liptdimaxpu_c8" class="line" n18ame="31"17>   23/a>notify_devic4es_b;43L8" class="line" n14ame="21"170   12 23/a>   13/a>unstributess="line"de=allowed_ibus	 >
      , iverooling.c#L8" id="L8" class="line" n10ame="31"140   13/a> * 292     ivers/thercode=bs="	 >	lock4Res_  fu 4 isf">notify_devicRes_  4usuct44crs/thercode=CPUFREQ >
      isf">pitne" n14ame="21"170   1282/a> * 31      ivers/thercode=bs="	 >list_4line" n104me="32"14>   23/a> * 37      ype="hihercode= cldisqtdevi4n19am20am4="33"14>   33/a>  it an_ cldisqtlock> * )//cpu_cooling.c#L8" id="L8" class="line" n10ame="31"11>   73/a>
 /thercode= cldisqte it unstribute n2ame="L34"12>/thercode= cldisqte it unstribute cldisqt cldisqtlock> * ist   isf">  it an_ cldisqtlock> * ist an_q>/*t as   isf"cpu_cocooling.c#L8" id="L8" class="e137> * 32pu_cooling.c#L8" id="L8" class="l40r>* //c 4e	registest" o.  /the;a 4creat44ode=i	 >
  kz_ibuc   isf"> cisleaselid" n2ame="L34"12>43leaselid"de=allowed_ibus	 >
      isf">allid" n2ame="L34"12>isf">allid"* istpass="line" n10amsf">allowed_ibus> * //cpu_c/thercode=  it an_q>/*t as   isf"id>   73/a> * cldi4/*t assqt4 > *  c it as wibueu e i4y>/*<44 cldisqmax   isf"> liptdimaxpu_c8" class="line" n18ame="31"17>   23/a>disqtldestrol )//cpu_cooling.c#L8" id="L8" class="line" n10ame="31"11>   73/a>
      isf"> cldisq
   4  i_d44<@ r ers/thercode= clid	 >
 kthe n17ame="35"17> kthe  cldisqt cldisqtlock> * ist   isf">  it an_ cldisqtlock> * is"16>   73/a> * cldi4k	 >
    4 isf"> clmask> *  *ivers4therc4de=mas134> * 37      ype="hihercode= cldisqtdevi4nne" n20a4e="31"150   13/a> * ist L8" clasunstribute n2ame="L34"12>   83/a>   73/a> * cldi4q
      i4device	 >
      isf"> cl4isq
 4    i_


fooute > Tclaoriginal LXR software by1 cla> 73/a>http://source32LXR clasunit" n19amt andexperiss="al an cor17by1> 73/a>mailto:lxe@ ux.notusxe@ ux.no n19.
subfooute > sxe. ux.no kindly hobutd7by1> 73/a>http://www.redpill- pro.notuRedpill L pro AS n19amprovid="Lof L ux2> ult~~~~ 3opera/or1s sere its sin th1995.