init.qcom.post_boot.sh 213 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518
  1. #! /vendor/bin/sh
  2. # Copyright (c) 2012-2013, 2016-2018, The Linux Foundation. All rights reserved.
  3. #
  4. # Redistribution and use in source and binary forms, with or without
  5. # modification, are permitted provided that the following conditions are met:
  6. # * Redistributions of source code must retain the above copyright
  7. # notice, this list of conditions and the following disclaimer.
  8. # * Redistributions in binary form must reproduce the above copyright
  9. # notice, this list of conditions and the following disclaimer in the
  10. # documentation and/or other materials provided with the distribution.
  11. # * Neither the name of The Linux Foundation nor
  12. # the names of its contributors may be used to endorse or promote
  13. # products derived from this software without specific prior written
  14. # permission.
  15. #
  16. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  17. # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  18. # IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  19. # NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  20. # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  21. # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  22. # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
  23. # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  24. # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  25. # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  26. # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27. #
  28. function 8953_sched_dcvs_eas()
  29. {
  30. #governor settings
  31. echo 1 > /sys/devices/system/cpu/cpu0/online
  32. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  33. echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/rate_limit_us
  34. #set the hispeed_freq
  35. echo 1401600 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_freq
  36. #default value for hispeed_load is 90, for 8953 and sdm450 it should be 85
  37. echo 85 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_load
  38. }
  39. function 8917_sched_dcvs_eas()
  40. {
  41. #governor settings
  42. echo 1 > /sys/devices/system/cpu/cpu0/online
  43. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  44. echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/rate_limit_us
  45. #set the hispeed_freq
  46. echo 1094400 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_freq
  47. #default value for hispeed_load is 90, for 8917 it should be 85
  48. echo 85 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_load
  49. }
  50. function 8937_sched_dcvs_eas()
  51. {
  52. # enable governor for perf cluster
  53. echo 1 > /sys/devices/system/cpu/cpu0/online
  54. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  55. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
  56. #set the hispeed_freq
  57. echo 1094400 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  58. #default value for hispeed_load is 90, for 8937 it should be 85
  59. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
  60. ## enable governor for power cluster
  61. echo 1 > /sys/devices/system/cpu/cpu4/online
  62. echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  63. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rate_limit_us
  64. #set the hispeed_freq
  65. echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
  66. #default value for hispeed_load is 90, for 8937 it should be 85
  67. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
  68. }
  69. function 8953_sched_dcvs_hmp()
  70. {
  71. #scheduler settings
  72. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  73. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  74. #task packing settings
  75. echo 0 > /sys/devices/system/cpu/cpu0/sched_static_cpu_pwr_cost
  76. echo 0 > /sys/devices/system/cpu/cpu1/sched_static_cpu_pwr_cost
  77. echo 0 > /sys/devices/system/cpu/cpu2/sched_static_cpu_pwr_cost
  78. echo 0 > /sys/devices/system/cpu/cpu3/sched_static_cpu_pwr_cost
  79. echo 0 > /sys/devices/system/cpu/cpu4/sched_static_cpu_pwr_cost
  80. echo 0 > /sys/devices/system/cpu/cpu5/sched_static_cpu_pwr_cost
  81. echo 0 > /sys/devices/system/cpu/cpu6/sched_static_cpu_pwr_cost
  82. echo 0 > /sys/devices/system/cpu/cpu7/sched_static_cpu_pwr_cost
  83. # spill load is set to 100% by default in the kernel
  84. echo 3 > /proc/sys/kernel/sched_spill_nr_run
  85. # Apply inter-cluster load balancer restrictions
  86. echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill
  87. # set sync wakee policy tunable
  88. echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker
  89. #governor settings
  90. echo 1 > /sys/devices/system/cpu/cpu0/online
  91. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  92. echo "19000 1401600:39000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  93. echo 85 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  94. echo 20000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
  95. echo 1401600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  96. echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
  97. echo "85 1401600:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  98. echo 39000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  99. echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  100. echo 19 > /proc/sys/kernel/sched_upmigrate_min_nice
  101. # Enable sched guided freq control
  102. echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_sched_load
  103. echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_migration_notif
  104. echo 200000 > /proc/sys/kernel/sched_freq_inc_notify
  105. echo 200000 > /proc/sys/kernel/sched_freq_dec_notify
  106. }
  107. function 8917_sched_dcvs_hmp()
  108. {
  109. # HMP scheduler settings
  110. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  111. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  112. echo 1 > /proc/sys/kernel/sched_restrict_tasks_spread
  113. # HMP Task packing settings
  114. echo 20 > /proc/sys/kernel/sched_small_task
  115. echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
  116. echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
  117. echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
  118. echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
  119. echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
  120. echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
  121. echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
  122. echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
  123. echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
  124. echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
  125. echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
  126. echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
  127. echo 1 > /sys/devices/system/cpu/cpu0/online
  128. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  129. echo "19000 1094400:39000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  130. echo 85 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  131. echo 20000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
  132. echo 1094400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  133. echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
  134. echo "1 960000:85 1094400:90" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  135. echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  136. echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  137. # Enable sched guided freq control
  138. echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_sched_load
  139. echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_migration_notif
  140. echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
  141. echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
  142. }
  143. function 8937_sched_dcvs_hmp()
  144. {
  145. # HMP scheduler settings
  146. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  147. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  148. # HMP Task packing settings
  149. echo 20 > /proc/sys/kernel/sched_small_task
  150. echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
  151. echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
  152. echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
  153. echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
  154. echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load
  155. echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load
  156. echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load
  157. echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load
  158. echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
  159. echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
  160. echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
  161. echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
  162. echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run
  163. echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run
  164. echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run
  165. echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run
  166. echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
  167. echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
  168. echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
  169. echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
  170. echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle
  171. echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle
  172. echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle
  173. echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle
  174. # enable governor for perf cluster
  175. echo 1 > /sys/devices/system/cpu/cpu0/online
  176. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  177. echo "19000 1094400:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  178. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  179. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  180. echo 1094400 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  181. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  182. echo "1 960000:85 1094400:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  183. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  184. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor
  185. # enable governor for power cluster
  186. echo 1 > /sys/devices/system/cpu/cpu4/online
  187. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  188. echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  189. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  190. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  191. echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  192. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  193. echo "1 768000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  194. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  195. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
  196. # Enable sched guided freq control
  197. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  198. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  199. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  200. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  201. echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
  202. echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
  203. }
  204. target=`getprop ro.board.platform`
  205. function configure_zram_parameters() {
  206. MemTotalStr=`cat /proc/meminfo | grep MemTotal`
  207. MemTotal=${MemTotalStr:16:8}
  208. low_ram=`getprop ro.config.low_ram`
  209. # Zram disk - 75% for Go devices.
  210. # For 512MB Go device, size = 384MB, set same for Non-Go.
  211. # For 1GB Go device, size = 768MB, set same for Non-Go.
  212. # For >=2GB Non-Go device, size = 1GB
  213. # And enable lz4 zram compression for Go targets.
  214. if [ "$low_ram" == "true" ]; then
  215. echo lz4 > /sys/block/zram0/comp_algorithm
  216. fi
  217. if [ -f /sys/block/zram0/disksize ]; then
  218. echo 1 > /sys/block/zram0/use_dedup
  219. if [ $MemTotal -le 524288 ]; then
  220. echo 402653184 > /sys/block/zram0/disksize
  221. elif [ $MemTotal -le 1048576 ]; then
  222. echo 805306368 > /sys/block/zram0/disksize
  223. else
  224. # Set Zram disk size=1GB for >=2GB Non-Go targets.
  225. echo 1073741824 > /sys/block/zram0/disksize
  226. fi
  227. mkswap /dev/block/zram0
  228. swapon /dev/block/zram0 -p 32758
  229. fi
  230. }
  231. function configure_read_ahead_kb_values() {
  232. MemTotalStr=`cat /proc/meminfo | grep MemTotal`
  233. MemTotal=${MemTotalStr:16:8}
  234. # Set 128 for <= 3GB &
  235. # set 512 for >= 4GB targets.
  236. if [ $MemTotal -le 3145728 ]; then
  237. echo 128 > /sys/block/mmcblk0/bdi/read_ahead_kb
  238. echo 128 > /sys/block/mmcblk0/queue/read_ahead_kb
  239. echo 128 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb
  240. echo 128 > /sys/block/mmcblk0rpmb/queue/read_ahead_kb
  241. echo 128 > /sys/block/dm-0/queue/read_ahead_kb
  242. echo 128 > /sys/block/dm-1/queue/read_ahead_kb
  243. echo 128 > /sys/block/dm-2/queue/read_ahead_kb
  244. else
  245. echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb
  246. echo 512 > /sys/block/mmcblk0/queue/read_ahead_kb
  247. echo 512 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb
  248. echo 512 > /sys/block/mmcblk0rpmb/queue/read_ahead_kb
  249. echo 512 > /sys/block/dm-0/queue/read_ahead_kb
  250. echo 512 > /sys/block/dm-1/queue/read_ahead_kb
  251. echo 512 > /sys/block/dm-2/queue/read_ahead_kb
  252. fi
  253. }
  254. function disable_core_ctl() {
  255. if [ -f /sys/devices/system/cpu/cpu0/core_ctl/enable ]; then
  256. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
  257. else
  258. echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/disable
  259. fi
  260. }
  261. function enable_swap() {
  262. MemTotalStr=`cat /proc/meminfo | grep MemTotal`
  263. MemTotal=${MemTotalStr:16:8}
  264. SWAP_ENABLE_THRESHOLD=1048576
  265. swap_enable=`getprop ro.vendor.qti.config.swap`
  266. # Enable swap initially only for 1 GB targets
  267. if [ "$MemTotal" -le "$SWAP_ENABLE_THRESHOLD" ] && [ "$swap_enable" == "true" ]; then
  268. # Static swiftness
  269. echo 1 > /proc/sys/vm/swap_ratio_enable
  270. echo 70 > /proc/sys/vm/swap_ratio
  271. # Swap disk - 200MB size
  272. if [ ! -f /data/vendor/swap/swapfile ]; then
  273. dd if=/dev/zero of=/data/vendor/swap/swapfile bs=1m count=200
  274. fi
  275. mkswap /data/vendor/swap/swapfile
  276. swapon /data/vendor/swap/swapfile -p 32758
  277. fi
  278. }
  279. function configure_memory_parameters() {
  280. # Set Memory parameters.
  281. #
  282. # Set per_process_reclaim tuning parameters
  283. # All targets will use vmpressure range 50-70,
  284. # All targets will use 512 pages swap size.
  285. #
  286. # Set Low memory killer minfree parameters
  287. # 32 bit Non-Go, all memory configurations will use 15K series
  288. # 32 bit Go, all memory configurations will use uLMK + Memcg
  289. # 64 bit will use Google default LMK series.
  290. #
  291. # Set ALMK parameters (usually above the highest minfree values)
  292. # vmpressure_file_min threshold is always set slightly higher
  293. # than LMK minfree's last bin value for all targets. It is calculated as
  294. # vmpressure_file_min = (last bin - second last bin ) + last bin
  295. #
  296. # Set allocstall_threshold to 0 for all targets.
  297. #
  298. ProductName=`getprop ro.product.name`
  299. low_ram=`getprop ro.config.low_ram`
  300. if [ "$ProductName" == "msmnile" ]; then
  301. # Enable ZRAM
  302. configure_zram_parameters
  303. configure_read_ahead_kb_values
  304. echo 0 > /proc/sys/vm/page-cluster
  305. echo 100 > /proc/sys/vm/swappiness
  306. else
  307. arch_type=`uname -m`
  308. MemTotalStr=`cat /proc/meminfo | grep MemTotal`
  309. MemTotal=${MemTotalStr:16:8}
  310. # Set parameters for 32-bit Go targets.
  311. if [ $MemTotal -le 1048576 ] && [ "$low_ram" == "true" ]; then
  312. # Disable KLMK, ALMK, PPR & Core Control for Go devices
  313. echo 0 > /sys/module/lowmemorykiller/parameters/enable_lmk
  314. echo 0 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk
  315. echo 0 > /sys/module/process_reclaim/parameters/enable_process_reclaim
  316. disable_core_ctl
  317. # Enable oom_reaper for Go devices
  318. if [ -f /proc/sys/vm/reap_mem_on_sigkill ]; then
  319. echo 1 > /proc/sys/vm/reap_mem_on_sigkill
  320. fi
  321. else
  322. # Read adj series and set adj threshold for PPR and ALMK.
  323. # This is required since adj values change from framework to framework.
  324. adj_series=`cat /sys/module/lowmemorykiller/parameters/adj`
  325. adj_1="${adj_series#*,}"
  326. set_almk_ppr_adj="${adj_1%%,*}"
  327. # PPR and ALMK should not act on HOME adj and below.
  328. # Normalized ADJ for HOME is 6. Hence multiply by 6
  329. # ADJ score represented as INT in LMK params, actual score can be in decimal
  330. # Hence add 6 considering a worst case of 0.9 conversion to INT (0.9*6).
  331. # For uLMK + Memcg, this will be set as 6 since adj is zero.
  332. set_almk_ppr_adj=$(((set_almk_ppr_adj * 6) + 6))
  333. echo $set_almk_ppr_adj > /sys/module/lowmemorykiller/parameters/adj_max_shift
  334. # Calculate vmpressure_file_min as below & set for 64 bit:
  335. # vmpressure_file_min = last_lmk_bin + (last_lmk_bin - last_but_one_lmk_bin)
  336. if [ "$arch_type" == "aarch64" ]; then
  337. minfree_series=`cat /sys/module/lowmemorykiller/parameters/minfree`
  338. minfree_1="${minfree_series#*,}" ; rem_minfree_1="${minfree_1%%,*}"
  339. minfree_2="${minfree_1#*,}" ; rem_minfree_2="${minfree_2%%,*}"
  340. minfree_3="${minfree_2#*,}" ; rem_minfree_3="${minfree_3%%,*}"
  341. minfree_4="${minfree_3#*,}" ; rem_minfree_4="${minfree_4%%,*}"
  342. minfree_5="${minfree_4#*,}"
  343. vmpres_file_min=$((minfree_5 + (minfree_5 - rem_minfree_4)))
  344. echo $vmpres_file_min > /sys/module/lowmemorykiller/parameters/vmpressure_file_min
  345. else
  346. # Set LMK series, vmpressure_file_min for 32 bit non-go targets.
  347. # Disable Core Control, enable KLMK for non-go 8909.
  348. if [ "$ProductName" == "msm8909" ]; then
  349. disable_core_ctl
  350. echo 1 > /sys/module/lowmemorykiller/parameters/enable_lmk
  351. fi
  352. echo "15360,19200,23040,26880,34415,43737" > /sys/module/lowmemorykiller/parameters/minfree
  353. echo 53059 > /sys/module/lowmemorykiller/parameters/vmpressure_file_min
  354. fi
  355. # Enable adaptive LMK for all targets &
  356. # use Google default LMK series for all 64-bit targets >=2GB.
  357. echo 1 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk
  358. # Enable oom_reaper
  359. if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then
  360. echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper
  361. fi
  362. # Set PPR parameters
  363. if [ -f /sys/devices/soc0/soc_id ]; then
  364. soc_id=`cat /sys/devices/soc0/soc_id`
  365. else
  366. soc_id=`cat /sys/devices/system/soc/soc0/id`
  367. fi
  368. case "$soc_id" in
  369. # Do not set PPR parameters for premium targets
  370. # sdm845 - 321, 341
  371. # msm8998 - 292, 319
  372. # msm8996 - 246, 291, 305, 312
  373. "321" | "341" | "292" | "319" | "246" | "291" | "305" | "312")
  374. ;;
  375. *)
  376. #Set PPR parameters for all other targets.
  377. echo $set_almk_ppr_adj > /sys/module/process_reclaim/parameters/min_score_adj
  378. echo 1 > /sys/module/process_reclaim/parameters/enable_process_reclaim
  379. echo 50 > /sys/module/process_reclaim/parameters/pressure_min
  380. echo 70 > /sys/module/process_reclaim/parameters/pressure_max
  381. echo 30 > /sys/module/process_reclaim/parameters/swap_opt_eff
  382. echo 512 > /sys/module/process_reclaim/parameters/per_swap_size
  383. ;;
  384. esac
  385. fi
  386. # Set allocstall_threshold to 0 for all targets.
  387. # Set swappiness to 100 for all targets
  388. echo 0 > /sys/module/vmpressure/parameters/allocstall_threshold
  389. echo 100 > /proc/sys/vm/swappiness
  390. configure_zram_parameters
  391. configure_read_ahead_kb_values
  392. enable_swap
  393. fi
  394. }
  395. function enable_memory_features()
  396. {
  397. MemTotalStr=`cat /proc/meminfo | grep MemTotal`
  398. MemTotal=${MemTotalStr:16:8}
  399. if [ $MemTotal -le 2097152 ]; then
  400. #Enable B service adj transition for 2GB or less memory
  401. setprop ro.vendor.qti.sys.fw.bservice_enable true
  402. setprop ro.vendor.qti.sys.fw.bservice_limit 5
  403. setprop ro.vendor.qti.sys.fw.bservice_age 5000
  404. #Enable Delay Service Restart
  405. setprop ro.vendor.qti.am.reschedule_service true
  406. fi
  407. }
  408. function start_hbtp()
  409. {
  410. # Start the Host based Touch processing but not in the power off mode.
  411. # bug 409794 close hbtp
  412. # bootmode=`getprop ro.bootmode`
  413. # if [ "charger" != $bootmode ]; then
  414. # start vendor.hbtp
  415. # fi
  416. }
  417. case "$target" in
  418. "msm7201a_ffa" | "msm7201a_surf" | "msm7627_ffa" | "msm7627_6x" | "msm7627a" | "msm7627_surf" | \
  419. "qsd8250_surf" | "qsd8250_ffa" | "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "qsd8650a_st1x")
  420. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  421. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  422. ;;
  423. esac
  424. case "$target" in
  425. "msm7201a_ffa" | "msm7201a_surf")
  426. echo 500000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  427. ;;
  428. esac
  429. case "$target" in
  430. "msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
  431. echo 75000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  432. echo 1 > /sys/module/pm2/parameters/idle_sleep_mode
  433. ;;
  434. esac
  435. case "$target" in
  436. "msm7201a_ffa" | "msm7201a_surf" | "msm7627_ffa" | "msm7627_6x" | "msm7627_surf" | "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "msm7627a" )
  437. echo 245760 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  438. ;;
  439. esac
  440. case "$target" in
  441. "msm8660")
  442. echo 1 > /sys/module/rpm_resources/enable_low_power/L2_cache
  443. echo 1 > /sys/module/rpm_resources/enable_low_power/pxo
  444. echo 2 > /sys/module/rpm_resources/enable_low_power/vdd_dig
  445. echo 2 > /sys/module/rpm_resources/enable_low_power/vdd_mem
  446. echo 1 > /sys/module/rpm_resources/enable_low_power/rpm_cpu
  447. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  448. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  449. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  450. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  451. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  452. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
  453. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  454. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  455. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  456. echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
  457. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  458. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  459. echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  460. echo 4 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  461. echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  462. echo 384000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  463. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  464. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  465. chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
  466. chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  467. chown -h root.system /sys/devices/system/cpu/mfreq
  468. chmod -h 220 /sys/devices/system/cpu/mfreq
  469. chown -h root.system /sys/devices/system/cpu/cpu1/online
  470. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  471. ;;
  472. esac
  473. case "$target" in
  474. "msm8960")
  475. echo 1 > /sys/module/rpm_resources/enable_low_power/L2_cache
  476. echo 1 > /sys/module/rpm_resources/enable_low_power/pxo
  477. echo 1 > /sys/module/rpm_resources/enable_low_power/vdd_dig
  478. echo 1 > /sys/module/rpm_resources/enable_low_power/vdd_mem
  479. echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled
  480. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  481. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  482. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
  483. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
  484. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  485. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  486. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
  487. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
  488. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  489. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  490. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
  491. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
  492. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  493. echo 0 > /sys/module/msm_thermal/core_control/enabled
  494. echo 1 > /sys/devices/system/cpu/cpu1/online
  495. echo 1 > /sys/devices/system/cpu/cpu2/online
  496. echo 1 > /sys/devices/system/cpu/cpu3/online
  497. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  498. echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
  499. echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
  500. echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
  501. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  502. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  503. echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  504. echo 4 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  505. echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
  506. echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
  507. echo 3 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
  508. echo 918000 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
  509. echo 1026000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
  510. echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
  511. chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  512. chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  513. chown -h system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  514. echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  515. echo 384000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  516. echo 384000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  517. echo 384000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  518. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  519. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  520. chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
  521. chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  522. chown -h system /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
  523. chown -h system /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  524. chown -h system /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
  525. chown -h system /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  526. echo 1 > /sys/module/msm_thermal/core_control/enabled
  527. chown -h root.system /sys/devices/system/cpu/mfreq
  528. chmod -h 220 /sys/devices/system/cpu/mfreq
  529. chown -h root.system /sys/devices/system/cpu/cpu1/online
  530. chown -h root.system /sys/devices/system/cpu/cpu2/online
  531. chown -h root.system /sys/devices/system/cpu/cpu3/online
  532. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  533. chmod -h 664 /sys/devices/system/cpu/cpu2/online
  534. chmod -h 664 /sys/devices/system/cpu/cpu3/online
  535. # set DCVS parameters for CPU
  536. echo 40000 > /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us
  537. echo 40000 > /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us
  538. echo 100000 > /sys/module/msm_dcvs/cores/cpu0/em_win_size_min_us
  539. echo 500000 > /sys/module/msm_dcvs/cores/cpu0/em_win_size_max_us
  540. echo 0 > /sys/module/msm_dcvs/cores/cpu0/slack_mode_dynamic
  541. echo 1000000 > /sys/module/msm_dcvs/cores/cpu0/disable_pc_threshold
  542. echo 25000 > /sys/module/msm_dcvs/cores/cpu1/slack_time_max_us
  543. echo 25000 > /sys/module/msm_dcvs/cores/cpu1/slack_time_min_us
  544. echo 100000 > /sys/module/msm_dcvs/cores/cpu1/em_win_size_min_us
  545. echo 500000 > /sys/module/msm_dcvs/cores/cpu1/em_win_size_max_us
  546. echo 0 > /sys/module/msm_dcvs/cores/cpu1/slack_mode_dynamic
  547. echo 1000000 > /sys/module/msm_dcvs/cores/cpu1/disable_pc_threshold
  548. echo 25000 > /sys/module/msm_dcvs/cores/cpu2/slack_time_max_us
  549. echo 25000 > /sys/module/msm_dcvs/cores/cpu2/slack_time_min_us
  550. echo 100000 > /sys/module/msm_dcvs/cores/cpu2/em_win_size_min_us
  551. echo 500000 > /sys/module/msm_dcvs/cores/cpu2/em_win_size_max_us
  552. echo 0 > /sys/module/msm_dcvs/cores/cpu2/slack_mode_dynamic
  553. echo 1000000 > /sys/module/msm_dcvs/cores/cpu2/disable_pc_threshold
  554. echo 25000 > /sys/module/msm_dcvs/cores/cpu3/slack_time_max_us
  555. echo 25000 > /sys/module/msm_dcvs/cores/cpu3/slack_time_min_us
  556. echo 100000 > /sys/module/msm_dcvs/cores/cpu3/em_win_size_min_us
  557. echo 500000 > /sys/module/msm_dcvs/cores/cpu3/em_win_size_max_us
  558. echo 0 > /sys/module/msm_dcvs/cores/cpu3/slack_mode_dynamic
  559. echo 1000000 > /sys/module/msm_dcvs/cores/cpu3/disable_pc_threshold
  560. # set DCVS parameters for GPU
  561. echo 20000 > /sys/module/msm_dcvs/cores/gpu0/slack_time_max_us
  562. echo 20000 > /sys/module/msm_dcvs/cores/gpu0/slack_time_min_us
  563. echo 0 > /sys/module/msm_dcvs/cores/gpu0/slack_mode_dynamic
  564. # set msm_mpdecision parameters
  565. echo 45000 > /sys/module/msm_mpdecision/slack_time_max_us
  566. echo 15000 > /sys/module/msm_mpdecision/slack_time_min_us
  567. echo 100000 > /sys/module/msm_mpdecision/em_win_size_min_us
  568. echo 1000000 > /sys/module/msm_mpdecision/em_win_size_max_us
  569. echo 3 > /sys/module/msm_mpdecision/online_util_pct_min
  570. echo 25 > /sys/module/msm_mpdecision/online_util_pct_max
  571. echo 97 > /sys/module/msm_mpdecision/em_max_util_pct
  572. echo 2 > /sys/module/msm_mpdecision/rq_avg_poll_ms
  573. echo 10 > /sys/module/msm_mpdecision/mp_em_rounding_point_min
  574. echo 85 > /sys/module/msm_mpdecision/mp_em_rounding_point_max
  575. echo 50 > /sys/module/msm_mpdecision/iowait_threshold_pct
  576. #set permissions for the nodes needed by display on/off hook
  577. chown -h system /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us
  578. chown -h system /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us
  579. chown -h system /sys/module/msm_mpdecision/slack_time_max_us
  580. chown -h system /sys/module/msm_mpdecision/slack_time_min_us
  581. chmod -h 664 /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us
  582. chmod -h 664 /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us
  583. chmod -h 664 /sys/module/msm_mpdecision/slack_time_max_us
  584. chmod -h 664 /sys/module/msm_mpdecision/slack_time_min_us
  585. if [ -f /sys/devices/soc0/soc_id ]; then
  586. soc_id=`cat /sys/devices/soc0/soc_id`
  587. else
  588. soc_id=`cat /sys/devices/system/soc/soc0/id`
  589. fi
  590. case "$soc_id" in
  591. "130")
  592. echo 230 > /sys/class/gpio/export
  593. echo 228 > /sys/class/gpio/export
  594. echo 229 > /sys/class/gpio/export
  595. echo "in" > /sys/class/gpio/gpio230/direction
  596. echo "rising" > /sys/class/gpio/gpio230/edge
  597. echo "in" > /sys/class/gpio/gpio228/direction
  598. echo "rising" > /sys/class/gpio/gpio228/edge
  599. echo "in" > /sys/class/gpio/gpio229/direction
  600. echo "rising" > /sys/class/gpio/gpio229/edge
  601. echo 253 > /sys/class/gpio/export
  602. echo 254 > /sys/class/gpio/export
  603. echo 257 > /sys/class/gpio/export
  604. echo 258 > /sys/class/gpio/export
  605. echo 259 > /sys/class/gpio/export
  606. echo "out" > /sys/class/gpio/gpio253/direction
  607. echo "out" > /sys/class/gpio/gpio254/direction
  608. echo "out" > /sys/class/gpio/gpio257/direction
  609. echo "out" > /sys/class/gpio/gpio258/direction
  610. echo "out" > /sys/class/gpio/gpio259/direction
  611. chown -h media /sys/class/gpio/gpio253/value
  612. chown -h media /sys/class/gpio/gpio254/value
  613. chown -h media /sys/class/gpio/gpio257/value
  614. chown -h media /sys/class/gpio/gpio258/value
  615. chown -h media /sys/class/gpio/gpio259/value
  616. chown -h media /sys/class/gpio/gpio253/direction
  617. chown -h media /sys/class/gpio/gpio254/direction
  618. chown -h media /sys/class/gpio/gpio257/direction
  619. chown -h media /sys/class/gpio/gpio258/direction
  620. chown -h media /sys/class/gpio/gpio259/direction
  621. echo 0 > /sys/module/rpm_resources/enable_low_power/vdd_dig
  622. echo 0 > /sys/module/rpm_resources/enable_low_power/vdd_mem
  623. ;;
  624. esac
  625. ;;
  626. esac
  627. case "$target" in
  628. "msm8974")
  629. echo 4 > /sys/module/lpm_levels/enable_low_power/l2
  630. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  631. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  632. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
  633. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
  634. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  635. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
  636. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
  637. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
  638. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  639. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  640. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
  641. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
  642. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  643. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  644. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
  645. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
  646. echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled
  647. echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled
  648. echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled
  649. echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled
  650. echo 0 > /sys/module/msm_thermal/core_control/enabled
  651. echo 1 > /sys/devices/system/cpu/cpu1/online
  652. echo 1 > /sys/devices/system/cpu/cpu2/online
  653. echo 1 > /sys/devices/system/cpu/cpu3/online
  654. if [ -f /sys/devices/soc0/soc_id ]; then
  655. soc_id=`cat /sys/devices/soc0/soc_id`
  656. else
  657. soc_id=`cat /sys/devices/system/soc/soc0/id`
  658. fi
  659. case "$soc_id" in
  660. "208" | "211" | "214" | "217" | "209" | "212" | "215" | "218" | "194" | "210" | "213" | "216")
  661. for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor
  662. do
  663. echo "cpubw_hwmon" > $devfreq_gov
  664. done
  665. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  666. echo "interactive" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
  667. echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
  668. echo "interactive" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
  669. echo "20000 1400000:40000 1700000:20000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  670. echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  671. echo 1190400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  672. echo 1 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
  673. echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  674. echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  675. echo 20 > /sys/module/cpu_boost/parameters/boost_ms
  676. echo 1728000 > /sys/module/cpu_boost/parameters/sync_threshold
  677. echo 100000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  678. echo 1497600 > /sys/module/cpu_boost/parameters/input_boost_freq
  679. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  680. setprop ro.vendor.perf.cores_online 2
  681. ;;
  682. *)
  683. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  684. echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
  685. echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
  686. echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
  687. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  688. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  689. echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  690. echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  691. echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
  692. echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
  693. echo 3 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
  694. echo 960000 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
  695. echo 960000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
  696. echo 1190400 > /sys/devices/system/cpu/cpufreq/ondemand/input_boost
  697. echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
  698. ;;
  699. esac
  700. echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  701. echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  702. echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  703. echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  704. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  705. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  706. echo 1 > /sys/module/msm_thermal/core_control/enabled
  707. chown -h root.system /sys/devices/system/cpu/mfreq
  708. chmod -h 220 /sys/devices/system/cpu/mfreq
  709. chown -h root.system /sys/devices/system/cpu/cpu1/online
  710. chown -h root.system /sys/devices/system/cpu/cpu2/online
  711. chown -h root.system /sys/devices/system/cpu/cpu3/online
  712. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  713. chmod -h 664 /sys/devices/system/cpu/cpu2/online
  714. chmod -h 664 /sys/devices/system/cpu/cpu3/online
  715. echo 1 > /dev/cpuctl/apps/cpu.notify_on_migrate
  716. ;;
  717. esac
  718. case "$target" in
  719. "msm8916")
  720. if [ -f /sys/devices/soc0/soc_id ]; then
  721. soc_id=`cat /sys/devices/soc0/soc_id`
  722. else
  723. soc_id=`cat /sys/devices/system/soc/soc0/id`
  724. fi
  725. case "$soc_id" in
  726. "206")
  727. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  728. echo 1 > /sys/devices/system/cpu/cpu1/online
  729. echo 1 > /sys/devices/system/cpu/cpu2/online
  730. echo 1 > /sys/devices/system/cpu/cpu3/online
  731. echo 2 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus
  732. ;;
  733. "247" | "248" | "249" | "250")
  734. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  735. echo 1 > /sys/devices/system/cpu/cpu1/online
  736. echo 1 > /sys/devices/system/cpu/cpu2/online
  737. echo 1 > /sys/devices/system/cpu/cpu3/online
  738. ;;
  739. "239" | "241" | "263")
  740. if [ -f /sys/devices/soc0/revision ]; then
  741. revision=`cat /sys/devices/soc0/revision`
  742. else
  743. revision=`cat /sys/devices/system/soc/soc0/revision`
  744. fi
  745. echo 10 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus
  746. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  747. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  748. fi
  749. if [ -f /sys/devices/soc0/hw_platform ]; then
  750. hw_platform=`cat /sys/devices/soc0/hw_platform`
  751. fi
  752. case "$soc_id" in
  753. "239")
  754. case "$hw_platform" in
  755. "Surf")
  756. ;;
  757. "MTP")
  758. case "$platform_subtype_id" in
  759. "3")
  760. start_hbtp
  761. ;;
  762. esac
  763. ;;
  764. esac
  765. ;;
  766. esac
  767. ;;
  768. "268" | "269" | "270" | "271")
  769. echo 10 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus
  770. ;;
  771. "233" | "240" | "242")
  772. echo 1 > /sys/devices/system/cpu/cpu1/online
  773. echo 1 > /sys/devices/system/cpu/cpu2/online
  774. echo 1 > /sys/devices/system/cpu/cpu3/online
  775. ;;
  776. esac
  777. ;;
  778. esac
  779. case "$target" in
  780. "msm8226")
  781. echo 4 > /sys/module/lpm_levels/enable_low_power/l2
  782. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  783. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  784. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
  785. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
  786. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  787. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  788. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
  789. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
  790. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  791. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  792. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
  793. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
  794. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  795. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
  796. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
  797. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
  798. echo 1 > /sys/devices/system/cpu/cpu1/online
  799. echo 1 > /sys/devices/system/cpu/cpu2/online
  800. echo 1 > /sys/devices/system/cpu/cpu3/online
  801. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  802. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  803. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  804. echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  805. echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  806. echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
  807. echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
  808. echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
  809. echo 787200 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
  810. echo 300000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
  811. echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
  812. echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  813. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  814. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  815. chown -h root.system /sys/devices/system/cpu/cpu1/online
  816. chown -h root.system /sys/devices/system/cpu/cpu2/online
  817. chown -h root.system /sys/devices/system/cpu/cpu3/online
  818. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  819. chmod -h 664 /sys/devices/system/cpu/cpu2/online
  820. chmod -h 664 /sys/devices/system/cpu/cpu3/online
  821. ;;
  822. esac
  823. case "$target" in
  824. "msm8610")
  825. echo 4 > /sys/module/lpm_levels/enable_low_power/l2
  826. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  827. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  828. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
  829. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
  830. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  831. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  832. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
  833. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
  834. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  835. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  836. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
  837. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
  838. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  839. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
  840. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
  841. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
  842. echo 1 > /sys/devices/system/cpu/cpu1/online
  843. echo 1 > /sys/devices/system/cpu/cpu2/online
  844. echo 1 > /sys/devices/system/cpu/cpu3/online
  845. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  846. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  847. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  848. echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  849. echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  850. echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
  851. echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
  852. echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
  853. echo 787200 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
  854. echo 300000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
  855. echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
  856. echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  857. setprop ro.qualcomm.perf.min_freq 7
  858. echo 1 > /sys/kernel/mm/ksm/deferred_timer
  859. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  860. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  861. chown -h root.system /sys/devices/system/cpu/cpu1/online
  862. chown -h root.system /sys/devices/system/cpu/cpu2/online
  863. chown -h root.system /sys/devices/system/cpu/cpu3/online
  864. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  865. chmod -h 664 /sys/devices/system/cpu/cpu2/online
  866. chmod -h 664 /sys/devices/system/cpu/cpu3/online
  867. ;;
  868. esac
  869. case "$target" in
  870. "msm8916")
  871. if [ -f /sys/devices/soc0/soc_id ]; then
  872. soc_id=`cat /sys/devices/soc0/soc_id`
  873. else
  874. soc_id=`cat /sys/devices/system/soc/soc0/id`
  875. fi
  876. # HMP scheduler settings for 8916, 8936, 8939, 8929
  877. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  878. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  879. # Apply governor settings for 8916
  880. case "$soc_id" in
  881. "206" | "247" | "248" | "249" | "250")
  882. # HMP scheduler load tracking settings
  883. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  884. # HMP Task packing settings for 8916
  885. echo 20 > /proc/sys/kernel/sched_small_task
  886. echo 30 > /proc/sys/kernel/sched_mostly_idle_load
  887. echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run
  888. # disable thermal core_control to update scaling_min_freq
  889. echo 0 > /sys/module/msm_thermal/core_control/enabled
  890. echo 1 > /sys/devices/system/cpu/cpu0/online
  891. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  892. echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  893. # enable thermal core_control now
  894. echo 1 > /sys/module/msm_thermal/core_control/enabled
  895. echo "25000 1094400:50000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  896. echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  897. echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
  898. echo 998400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  899. echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
  900. echo "1 800000:85 998400:90 1094400:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  901. echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  902. echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  903. # Bring up all cores online
  904. echo 1 > /sys/devices/system/cpu/cpu1/online
  905. echo 1 > /sys/devices/system/cpu/cpu2/online
  906. echo 1 > /sys/devices/system/cpu/cpu3/online
  907. echo 1 > /sys/devices/system/cpu/cpu4/online
  908. ;;
  909. esac
  910. # Apply governor settings for 8936
  911. case "$soc_id" in
  912. "233" | "240" | "242")
  913. # HMP scheduler load tracking settings
  914. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  915. # HMP Task packing settings for 8936
  916. echo 50 > /proc/sys/kernel/sched_small_task
  917. echo 50 > /proc/sys/kernel/sched_mostly_idle_load
  918. echo 10 > /proc/sys/kernel/sched_mostly_idle_nr_run
  919. # disable thermal core_control to update scaling_min_freq, interactive gov
  920. echo 0 > /sys/module/msm_thermal/core_control/enabled
  921. echo 1 > /sys/devices/system/cpu/cpu0/online
  922. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  923. echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  924. # enable thermal core_control now
  925. echo 1 > /sys/module/msm_thermal/core_control/enabled
  926. echo "25000 1113600:50000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  927. echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  928. echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
  929. echo 960000 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  930. echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
  931. echo "1 800000:85 1113600:90 1267200:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  932. echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  933. echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  934. # Bring up all cores online
  935. echo 1 > /sys/devices/system/cpu/cpu1/online
  936. echo 1 > /sys/devices/system/cpu/cpu2/online
  937. echo 1 > /sys/devices/system/cpu/cpu3/online
  938. echo 1 > /sys/devices/system/cpu/cpu4/online
  939. # Enable low power modes
  940. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  941. for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent
  942. do
  943. echo 40 > $gpu_bimc_io_percent
  944. done
  945. ;;
  946. esac
  947. # Apply governor settings for 8939
  948. case "$soc_id" in
  949. "239" | "241" | "263" | "268" | "269" | "270" | "271")
  950. if [ `cat /sys/devices/soc0/revision` != "3.0" ]; then
  951. # Apply 1.0 and 2.0 specific Sched & Governor settings
  952. # HMP scheduler load tracking settings
  953. echo 5 > /proc/sys/kernel/sched_ravg_hist_size
  954. # HMP Task packing settings for 8939, 8929
  955. echo 20 > /proc/sys/kernel/sched_small_task
  956. for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor
  957. do
  958. echo "cpufreq" > $devfreq_gov
  959. done
  960. for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
  961. do
  962. echo "bw_hwmon" > $devfreq_gov
  963. for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent
  964. do
  965. echo 20 > $cpu_io_percent
  966. done
  967. done
  968. for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent
  969. do
  970. echo 40 > $gpu_bimc_io_percent
  971. done
  972. # disable thermal core_control to update interactive gov settings
  973. echo 0 > /sys/module/msm_thermal/core_control/enabled
  974. # enable governor for perf cluster
  975. echo 1 > /sys/devices/system/cpu/cpu0/online
  976. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  977. echo "20000 1113600:50000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  978. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  979. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  980. echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  981. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  982. echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  983. echo 50000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  984. echo 50000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor
  985. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  986. # enable governor for power cluster
  987. echo 1 > /sys/devices/system/cpu/cpu4/online
  988. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  989. echo "25000 800000:50000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  990. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  991. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  992. echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  993. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  994. echo "1 800000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  995. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  996. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
  997. echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  998. # enable thermal core_control now
  999. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1000. # Bring up all cores online
  1001. echo 1 > /sys/devices/system/cpu/cpu1/online
  1002. echo 1 > /sys/devices/system/cpu/cpu2/online
  1003. echo 1 > /sys/devices/system/cpu/cpu3/online
  1004. echo 1 > /sys/devices/system/cpu/cpu4/online
  1005. echo 1 > /sys/devices/system/cpu/cpu5/online
  1006. echo 1 > /sys/devices/system/cpu/cpu6/online
  1007. echo 1 > /sys/devices/system/cpu/cpu7/online
  1008. # Enable low power modes
  1009. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1010. # HMP scheduler (big.Little cluster related) settings
  1011. echo 75 > /proc/sys/kernel/sched_upmigrate
  1012. echo 60 > /proc/sys/kernel/sched_downmigrate
  1013. # cpu idle load threshold
  1014. echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
  1015. echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
  1016. echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
  1017. echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
  1018. echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load
  1019. echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load
  1020. echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load
  1021. echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load
  1022. # cpu idle nr run threshold
  1023. echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
  1024. echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
  1025. echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
  1026. echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
  1027. echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run
  1028. echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run
  1029. echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run
  1030. echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run
  1031. else
  1032. # Apply 3.0 specific Sched & Governor settings
  1033. # HMP scheduler settings for 8939 V3.0
  1034. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  1035. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  1036. echo 20000000 > /proc/sys/kernel/sched_ravg_window
  1037. # HMP Task packing settings for 8939 V3.0
  1038. echo 20 > /proc/sys/kernel/sched_small_task
  1039. echo 30 > /proc/sys/kernel/sched_mostly_idle_load
  1040. echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run
  1041. echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
  1042. echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
  1043. echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
  1044. echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
  1045. echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle
  1046. echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle
  1047. echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle
  1048. echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle
  1049. for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor
  1050. do
  1051. echo "cpufreq" > $devfreq_gov
  1052. done
  1053. for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
  1054. do
  1055. echo "bw_hwmon" > $devfreq_gov
  1056. for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent
  1057. do
  1058. echo 20 > $cpu_io_percent
  1059. done
  1060. done
  1061. for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent
  1062. do
  1063. echo 40 > $gpu_bimc_io_percent
  1064. done
  1065. # disable thermal core_control to update interactive gov settings
  1066. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1067. # enable governor for perf cluster
  1068. echo 1 > /sys/devices/system/cpu/cpu0/online
  1069. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1070. echo "19000 1113600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  1071. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  1072. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  1073. echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  1074. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  1075. echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  1076. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  1077. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor
  1078. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1079. # enable governor for power cluster
  1080. echo 1 > /sys/devices/system/cpu/cpu4/online
  1081. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  1082. echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  1083. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  1084. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  1085. echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  1086. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  1087. echo "1 800000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  1088. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  1089. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
  1090. echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  1091. # enable thermal core_control now
  1092. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1093. # Bring up all cores online
  1094. echo 1 > /sys/devices/system/cpu/cpu1/online
  1095. echo 1 > /sys/devices/system/cpu/cpu2/online
  1096. echo 1 > /sys/devices/system/cpu/cpu3/online
  1097. echo 1 > /sys/devices/system/cpu/cpu5/online
  1098. echo 1 > /sys/devices/system/cpu/cpu6/online
  1099. echo 1 > /sys/devices/system/cpu/cpu7/online
  1100. # Enable low power modes
  1101. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1102. # HMP scheduler (big.Little cluster related) settings
  1103. echo 93 > /proc/sys/kernel/sched_upmigrate
  1104. echo 83 > /proc/sys/kernel/sched_downmigrate
  1105. # Enable sched guided freq control
  1106. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  1107. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  1108. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  1109. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  1110. echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
  1111. echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
  1112. # Enable core control
  1113. # insmod /system/lib/modules/core_ctl.ko
  1114. echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  1115. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
  1116. echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  1117. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  1118. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  1119. case "$revision" in
  1120. "3.0")
  1121. # Enable dynamic clock gatin
  1122. echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating
  1123. ;;
  1124. esac
  1125. fi
  1126. ;;
  1127. esac
  1128. # Set Memory parameters
  1129. configure_memory_parameters
  1130. ;;
  1131. esac
  1132. case "$target" in
  1133. "msm8952")
  1134. if [ -f /sys/devices/soc0/soc_id ]; then
  1135. soc_id=`cat /sys/devices/soc0/soc_id`
  1136. else
  1137. soc_id=`cat /sys/devices/system/soc/soc0/id`
  1138. fi
  1139. case "$soc_id" in
  1140. "264" | "289")
  1141. # Apply Scheduler and Governor settings for 8952
  1142. # HMP scheduler settings
  1143. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  1144. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  1145. echo 20000000 > /proc/sys/kernel/sched_ravg_window
  1146. # HMP Task packing settings
  1147. echo 20 > /proc/sys/kernel/sched_small_task
  1148. echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
  1149. echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
  1150. echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
  1151. echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
  1152. echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load
  1153. echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load
  1154. echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load
  1155. echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load
  1156. echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
  1157. echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
  1158. echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
  1159. echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
  1160. echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run
  1161. echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run
  1162. echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run
  1163. echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run
  1164. echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
  1165. echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
  1166. echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
  1167. echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
  1168. echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle
  1169. echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle
  1170. echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle
  1171. echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle
  1172. echo 0 > /proc/sys/kernel/sched_boost
  1173. for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor
  1174. do
  1175. echo "cpufreq" > $devfreq_gov
  1176. done
  1177. for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
  1178. do
  1179. echo "bw_hwmon" > $devfreq_gov
  1180. for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent
  1181. do
  1182. echo 20 > $cpu_io_percent
  1183. done
  1184. for cpu_guard_band in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps
  1185. do
  1186. echo 30 > $cpu_guard_band
  1187. done
  1188. done
  1189. for gpu_bimc_io_percent in /sys/class/devfreq/qcom,gpubw*/bw_hwmon/io_percent
  1190. do
  1191. echo 40 > $gpu_bimc_io_percent
  1192. done
  1193. # disable thermal & BCL core_control to update interactive gov settings
  1194. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1195. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1196. do
  1197. echo -n disable > $mode
  1198. done
  1199. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1200. do
  1201. bcl_hotplug_mask=`cat $hotplug_mask`
  1202. echo 0 > $hotplug_mask
  1203. done
  1204. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  1205. do
  1206. bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
  1207. echo 0 > $hotplug_soc_mask
  1208. done
  1209. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1210. do
  1211. echo -n enable > $mode
  1212. done
  1213. # enable governor for perf cluster
  1214. echo 1 > /sys/devices/system/cpu/cpu0/online
  1215. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1216. echo "19000 1113600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  1217. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  1218. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  1219. echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  1220. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  1221. echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  1222. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  1223. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor
  1224. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1225. # enable governor for power cluster
  1226. echo 1 > /sys/devices/system/cpu/cpu4/online
  1227. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  1228. echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  1229. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  1230. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  1231. echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  1232. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  1233. echo "1 806400:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  1234. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  1235. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
  1236. echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  1237. # Bring up all cores online
  1238. echo 1 > /sys/devices/system/cpu/cpu1/online
  1239. echo 1 > /sys/devices/system/cpu/cpu2/online
  1240. echo 1 > /sys/devices/system/cpu/cpu3/online
  1241. echo 1 > /sys/devices/system/cpu/cpu4/online
  1242. echo 1 > /sys/devices/system/cpu/cpu5/online
  1243. echo 1 > /sys/devices/system/cpu/cpu6/online
  1244. echo 1 > /sys/devices/system/cpu/cpu7/online
  1245. # Enable Low power modes
  1246. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1247. # HMP scheduler (big.Little cluster related) settings
  1248. echo 93 > /proc/sys/kernel/sched_upmigrate
  1249. echo 83 > /proc/sys/kernel/sched_downmigrate
  1250. # Enable sched guided freq control
  1251. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  1252. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  1253. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  1254. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  1255. echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
  1256. echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
  1257. # Enable core control
  1258. echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  1259. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
  1260. echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  1261. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  1262. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  1263. echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  1264. # re-enable thermal & BCL core_control now
  1265. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1266. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1267. do
  1268. echo -n disable > $mode
  1269. done
  1270. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1271. do
  1272. echo $bcl_hotplug_mask > $hotplug_mask
  1273. done
  1274. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  1275. do
  1276. echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
  1277. done
  1278. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1279. do
  1280. echo -n enable > $mode
  1281. done
  1282. # Enable dynamic clock gating
  1283. echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating
  1284. # Enable timer migration to little cluster
  1285. echo 1 > /proc/sys/kernel/power_aware_timer_migration
  1286. # Set Memory parameters
  1287. configure_memory_parameters
  1288. ;;
  1289. *)
  1290. panel=`cat /sys/class/graphics/fb0/modes`
  1291. if [ "${panel:5:1}" == "x" ]; then
  1292. panel=${panel:2:3}
  1293. else
  1294. panel=${panel:2:4}
  1295. fi
  1296. # Apply Scheduler and Governor settings for 8976
  1297. # SoC IDs are 266, 274, 277, 278
  1298. # HMP scheduler (big.Little cluster related) settings
  1299. echo 95 > /proc/sys/kernel/sched_upmigrate
  1300. echo 85 > /proc/sys/kernel/sched_downmigrate
  1301. echo 2 > /proc/sys/kernel/sched_window_stats_policy
  1302. echo 5 > /proc/sys/kernel/sched_ravg_hist_size
  1303. echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
  1304. echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
  1305. echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
  1306. echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
  1307. echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run
  1308. echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run
  1309. echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run
  1310. echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run
  1311. for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor
  1312. do
  1313. echo "cpufreq" > $devfreq_gov
  1314. done
  1315. for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
  1316. do
  1317. echo "bw_hwmon" > $devfreq_gov
  1318. for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent
  1319. do
  1320. echo 20 > $cpu_io_percent
  1321. done
  1322. for cpu_guard_band in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps
  1323. do
  1324. echo 30 > $cpu_guard_band
  1325. done
  1326. done
  1327. for gpu_bimc_io_percent in /sys/class/devfreq/qcom,gpubw*/bw_hwmon/io_percent
  1328. do
  1329. echo 40 > $gpu_bimc_io_percent
  1330. done
  1331. # disable thermal & BCL core_control to update interactive gov settings
  1332. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1333. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1334. do
  1335. echo -n disable > $mode
  1336. done
  1337. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1338. do
  1339. bcl_hotplug_mask=`cat $hotplug_mask`
  1340. echo 0 > $hotplug_mask
  1341. done
  1342. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  1343. do
  1344. bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
  1345. echo 0 > $hotplug_soc_mask
  1346. done
  1347. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1348. do
  1349. echo -n enable > $mode
  1350. done
  1351. # enable governor for power cluster
  1352. echo 1 > /sys/devices/system/cpu/cpu0/online
  1353. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1354. echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  1355. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  1356. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  1357. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  1358. echo 691200 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1359. # enable governor for perf cluster
  1360. echo 1 > /sys/devices/system/cpu/cpu4/online
  1361. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  1362. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  1363. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  1364. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  1365. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  1366. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
  1367. echo 883200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  1368. echo 60000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
  1369. if [ $panel -gt 1080 ]; then
  1370. #set texture cache size for resolution greater than 1080p
  1371. setprop ro.hwui.texture_cache_size 72
  1372. fi
  1373. echo 59000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  1374. echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  1375. echo "1 691200:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  1376. echo 1382400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  1377. echo "19000 1382400:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  1378. echo "85 1382400:90 1747200:80" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  1379. # HMP Task packing settings for 8976
  1380. echo 30 > /proc/sys/kernel/sched_small_task
  1381. echo 20 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
  1382. echo 20 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
  1383. echo 20 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
  1384. echo 20 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
  1385. echo 20 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load
  1386. echo 20 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load
  1387. echo 20 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load
  1388. echo 20 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load
  1389. echo 0 > /proc/sys/kernel/sched_boost
  1390. # Bring up all cores online
  1391. echo 1 > /sys/devices/system/cpu/cpu1/online
  1392. echo 1 > /sys/devices/system/cpu/cpu2/online
  1393. echo 1 > /sys/devices/system/cpu/cpu3/online
  1394. echo 1 > /sys/devices/system/cpu/cpu4/online
  1395. echo 1 > /sys/devices/system/cpu/cpu5/online
  1396. echo 1 > /sys/devices/system/cpu/cpu6/online
  1397. echo 1 > /sys/devices/system/cpu/cpu7/online
  1398. #Disable CPU retention modes for 32bit builds
  1399. ProductName=`getprop ro.product.name`
  1400. if [ "$ProductName" == "msm8952_32" ] || [ "$ProductName" == "msm8952_32_LMT" ]; then
  1401. echo N > /sys/module/lpm_levels/system/a72/cpu4/retention/idle_enabled
  1402. echo N > /sys/module/lpm_levels/system/a72/cpu5/retention/idle_enabled
  1403. echo N > /sys/module/lpm_levels/system/a72/cpu6/retention/idle_enabled
  1404. echo N > /sys/module/lpm_levels/system/a72/cpu7/retention/idle_enabled
  1405. fi
  1406. if [ `cat /sys/devices/soc0/revision` == "1.0" ]; then
  1407. # Disable l2-pc and l2-gdhs low power modes
  1408. echo N > /sys/module/lpm_levels/system/a53/a53-l2-gdhs/idle_enabled
  1409. echo N > /sys/module/lpm_levels/system/a72/a72-l2-gdhs/idle_enabled
  1410. echo N > /sys/module/lpm_levels/system/a53/a53-l2-pc/idle_enabled
  1411. echo N > /sys/module/lpm_levels/system/a72/a72-l2-pc/idle_enabled
  1412. fi
  1413. # Enable LPM Prediction
  1414. echo 1 > /sys/module/lpm_levels/parameters/lpm_prediction
  1415. # Enable Low power modes
  1416. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1417. # Disable L2 GDHS on 8976
  1418. echo N > /sys/module/lpm_levels/system/a53/a53-l2-gdhs/idle_enabled
  1419. echo N > /sys/module/lpm_levels/system/a72/a72-l2-gdhs/idle_enabled
  1420. # Enable sched guided freq control
  1421. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  1422. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  1423. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  1424. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  1425. echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
  1426. echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
  1427. # Enable core control
  1428. #for 8976
  1429. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  1430. echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/max_cpus
  1431. echo 68 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  1432. echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  1433. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  1434. echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster
  1435. # re-enable thermal & BCL core_control now
  1436. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1437. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1438. do
  1439. echo -n disable > $mode
  1440. done
  1441. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1442. do
  1443. echo $bcl_hotplug_mask > $hotplug_mask
  1444. done
  1445. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  1446. do
  1447. echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
  1448. done
  1449. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1450. do
  1451. echo -n enable > $mode
  1452. done
  1453. # Enable timer migration to little cluster
  1454. echo 1 > /proc/sys/kernel/power_aware_timer_migration
  1455. case "$soc_id" in
  1456. "277" | "278")
  1457. # Start energy-awareness for 8976
  1458. start energy-awareness
  1459. ;;
  1460. esac
  1461. #enable sched colocation and colocation inheritance
  1462. echo 130 > /proc/sys/kernel/sched_grp_upmigrate
  1463. echo 110 > /proc/sys/kernel/sched_grp_downmigrate
  1464. echo 1 > /proc/sys/kernel/sched_enable_thread_grouping
  1465. # Set Memory parameters
  1466. configure_memory_parameters
  1467. ;;
  1468. esac
  1469. #Enable Memory Features
  1470. enable_memory_features
  1471. restorecon -R /sys/devices/system/cpu
  1472. ;;
  1473. esac
  1474. case "$target" in
  1475. "msm8953")
  1476. if [ -f /sys/devices/soc0/soc_id ]; then
  1477. soc_id=`cat /sys/devices/soc0/soc_id`
  1478. else
  1479. soc_id=`cat /sys/devices/system/soc/soc0/id`
  1480. fi
  1481. if [ -f /sys/devices/soc0/hw_platform ]; then
  1482. hw_platform=`cat /sys/devices/soc0/hw_platform`
  1483. else
  1484. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  1485. fi
  1486. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  1487. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  1488. fi
  1489. echo 0 > /proc/sys/kernel/sched_boost
  1490. case "$soc_id" in
  1491. "293" | "304" | "338" | "351")
  1492. # # Start Host based Touch processing
  1493. # case "$hw_platform" in
  1494. # "MTP" | "Surf" | "RCM" )
  1495. # #if this directory is present, it means that a
  1496. # #1200p panel is connected to the device.
  1497. # dir="/sys/bus/i2c/devices/3-0038"
  1498. # if [ ! -d "$dir" ]; then
  1499. # start_hbtp
  1500. # fi
  1501. # ;;
  1502. # esac
  1503. if [ $soc_id -eq "338" ]; then
  1504. case "$hw_platform" in
  1505. "QRD" )
  1506. if [ $platform_subtype_id -eq "1" ]; then
  1507. start_hbtp
  1508. fi
  1509. ;;
  1510. esac
  1511. fi
  1512. #init task load, restrict wakeups to preferred cluster
  1513. echo 15 > /proc/sys/kernel/sched_init_task_load
  1514. for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor
  1515. do
  1516. echo "cpufreq" > $devfreq_gov
  1517. done
  1518. for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor
  1519. do
  1520. echo "bw_hwmon" > $devfreq_gov
  1521. for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent
  1522. do
  1523. echo 34 > $cpu_io_percent
  1524. done
  1525. for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps
  1526. do
  1527. echo 0 > $cpu_guard_band
  1528. done
  1529. for cpu_hist_memory in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hist_memory
  1530. do
  1531. echo 20 > $cpu_hist_memory
  1532. done
  1533. for cpu_hyst_length in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_length
  1534. do
  1535. echo 10 > $cpu_hyst_length
  1536. done
  1537. for cpu_idle_mbps in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/idle_mbps
  1538. do
  1539. echo 1600 > $cpu_idle_mbps
  1540. done
  1541. for cpu_low_power_delay in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_delay
  1542. do
  1543. echo 20 > $cpu_low_power_delay
  1544. done
  1545. for cpu_low_power_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_io_percent
  1546. do
  1547. echo 34 > $cpu_low_power_io_percent
  1548. done
  1549. for cpu_mbps_zones in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/mbps_zones
  1550. do
  1551. echo "1611 3221 5859 6445 7104" > $cpu_mbps_zones
  1552. done
  1553. for cpu_sample_ms in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/sample_ms
  1554. do
  1555. echo 4 > $cpu_sample_ms
  1556. done
  1557. for cpu_up_scale in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/up_scale
  1558. do
  1559. echo 250 > $cpu_up_scale
  1560. done
  1561. for cpu_min_freq in /sys/class/devfreq/soc:qcom,cpubw/min_freq
  1562. do
  1563. echo 1611 > $cpu_min_freq
  1564. done
  1565. done
  1566. for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent
  1567. do
  1568. echo 40 > $gpu_bimc_io_percent
  1569. done
  1570. # disable thermal & BCL core_control to update interactive gov settings
  1571. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1572. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1573. do
  1574. echo -n disable > $mode
  1575. done
  1576. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1577. do
  1578. bcl_hotplug_mask=`cat $hotplug_mask`
  1579. echo 0 > $hotplug_mask
  1580. done
  1581. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  1582. do
  1583. bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
  1584. echo 0 > $hotplug_soc_mask
  1585. done
  1586. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1587. do
  1588. echo -n enable > $mode
  1589. done
  1590. #if the kernel version >=4.9,use the schedutil governor
  1591. KernelVersionStr=`cat /proc/sys/kernel/osrelease`
  1592. KernelVersionS=${KernelVersionStr:2:2}
  1593. KernelVersionA=${KernelVersionStr:0:1}
  1594. KernelVersionB=${KernelVersionS%.*}
  1595. if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then
  1596. 8953_sched_dcvs_eas
  1597. else
  1598. 8953_sched_dcvs_hmp
  1599. fi
  1600. echo 652800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1601. # Bring up all cores online
  1602. echo 1 > /sys/devices/system/cpu/cpu1/online
  1603. echo 1 > /sys/devices/system/cpu/cpu2/online
  1604. echo 1 > /sys/devices/system/cpu/cpu3/online
  1605. echo 1 > /sys/devices/system/cpu/cpu4/online
  1606. echo 1 > /sys/devices/system/cpu/cpu5/online
  1607. echo 1 > /sys/devices/system/cpu/cpu6/online
  1608. echo 1 > /sys/devices/system/cpu/cpu7/online
  1609. # Enable low power modes
  1610. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1611. # re-enable thermal & BCL core_control now
  1612. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1613. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1614. do
  1615. echo -n disable > $mode
  1616. done
  1617. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1618. do
  1619. echo $bcl_hotplug_mask > $hotplug_mask
  1620. done
  1621. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  1622. do
  1623. echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
  1624. done
  1625. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1626. do
  1627. echo -n enable > $mode
  1628. done
  1629. # SMP scheduler
  1630. echo 85 > /proc/sys/kernel/sched_upmigrate
  1631. echo 85 > /proc/sys/kernel/sched_downmigrate
  1632. # Set Memory parameters
  1633. configure_memory_parameters
  1634. ;;
  1635. esac
  1636. case "$soc_id" in
  1637. "349" | "350")
  1638. # Start Host based Touch processing
  1639. case "$hw_platform" in
  1640. "MTP" | "Surf" | "RCM" | "QRD" )
  1641. start_hbtp
  1642. ;;
  1643. esac
  1644. for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor
  1645. do
  1646. echo "cpufreq" > $devfreq_gov
  1647. done
  1648. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  1649. do
  1650. echo "bw_hwmon" > $cpubw/governor
  1651. echo 50 > $cpubw/polling_interval
  1652. echo "1611 3221 5859 6445 7104" > $cpubw/bw_hwmon/mbps_zones
  1653. echo 4 > $cpubw/bw_hwmon/sample_ms
  1654. echo 34 > $cpubw/bw_hwmon/io_percent
  1655. echo 20 > $cpubw/bw_hwmon/hist_memory
  1656. echo 80 > $cpubw/bw_hwmon/down_thres
  1657. echo 0 > $cpubw/bw_hwmon/hyst_length
  1658. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  1659. echo 250 > $cpubw/bw_hwmon/up_scale
  1660. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  1661. done
  1662. # Configure DCC module to capture critical register contents when device crashes
  1663. for DCC_PATH in /sys/bus/platform/devices/*.dcc*
  1664. do
  1665. echo 0 > $DCC_PATH/enable
  1666. echo cap > $DCC_PATH/func_type
  1667. echo sram > $DCC_PATH/data_sink
  1668. echo 1 > $DCC_PATH/config_reset
  1669. # Register specifies APC CPR closed-loop settled voltage for current voltage corner
  1670. echo 0xb1d2c18 1 > $DCC_PATH/config
  1671. # Register specifies SW programmed open-loop voltage for current voltage corner
  1672. echo 0xb1d2900 1 > $DCC_PATH/config
  1673. # Register specifies APM switch settings and APM FSM state
  1674. echo 0xb1112b0 1 > $DCC_PATH/config
  1675. # Register specifies CPR mode change state and also #online cores input to CPR HW
  1676. echo 0xb018798 1 > $DCC_PATH/config
  1677. echo 1 > $DCC_PATH/enable
  1678. done
  1679. # disable thermal & BCL core_control to update interactive gov settings
  1680. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1681. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1682. do
  1683. echo -n disable > $mode
  1684. done
  1685. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1686. do
  1687. bcl_hotplug_mask=`cat $hotplug_mask`
  1688. echo 0 > $hotplug_mask
  1689. done
  1690. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  1691. do
  1692. bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
  1693. echo 0 > $hotplug_soc_mask
  1694. done
  1695. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1696. do
  1697. echo -n enable > $mode
  1698. done
  1699. # configure governor settings for little cluster
  1700. echo 1 > /sys/devices/system/cpu/cpu0/online
  1701. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1702. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
  1703. echo 1363200 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  1704. #default value for hispeed_load is 90, for sdm632 it should be 85
  1705. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
  1706. # sched_load_boost as -6 is equivalent to target load as 85.
  1707. echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
  1708. echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
  1709. echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
  1710. echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
  1711. # configure governor settings for big cluster
  1712. echo 1 > /sys/devices/system/cpu/cpu4/online
  1713. echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  1714. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rate_limit_us
  1715. echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
  1716. #default value for hispeed_load is 90, for sdm632 it should be 85
  1717. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
  1718. # sched_load_boost as -6 is equivalent to target load as 85.
  1719. echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost
  1720. echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost
  1721. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  1722. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  1723. echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1724. echo 633600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  1725. # cpuset settings
  1726. echo 0-3 > /dev/cpuset/background/cpus
  1727. echo 0-3 > /dev/cpuset/system-background/cpus
  1728. # choose idle CPU for top app tasks
  1729. echo 1 > /dev/stune/top-app/schedtune.prefer_idle
  1730. # re-enable thermal & BCL core_control now
  1731. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1732. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1733. do
  1734. echo -n disable > $mode
  1735. done
  1736. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1737. do
  1738. echo $bcl_hotplug_mask > $hotplug_mask
  1739. done
  1740. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  1741. do
  1742. echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
  1743. done
  1744. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1745. do
  1746. echo -n enable > $mode
  1747. done
  1748. # Disable Core control
  1749. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
  1750. echo 0 > /sys/devices/system/cpu/cpu4/core_ctl/enable
  1751. # Bring up all cores online
  1752. echo 1 > /sys/devices/system/cpu/cpu1/online
  1753. echo 1 > /sys/devices/system/cpu/cpu2/online
  1754. echo 1 > /sys/devices/system/cpu/cpu3/online
  1755. echo 1 > /sys/devices/system/cpu/cpu4/online
  1756. echo 1 > /sys/devices/system/cpu/cpu5/online
  1757. echo 1 > /sys/devices/system/cpu/cpu6/online
  1758. echo 1 > /sys/devices/system/cpu/cpu7/online
  1759. # Enable low power modes
  1760. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1761. # Set Memory parameters
  1762. configure_memory_parameters
  1763. # Setting b.L scheduler parameters
  1764. echo 76 > /proc/sys/kernel/sched_downmigrate
  1765. echo 86 > /proc/sys/kernel/sched_upmigrate
  1766. echo 80 > /proc/sys/kernel/sched_group_downmigrate
  1767. echo 90 > /proc/sys/kernel/sched_group_upmigrate
  1768. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  1769. # Enable min frequency adjustment for big cluster
  1770. if [ -f /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster ]; then
  1771. echo "4-7" > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster
  1772. fi
  1773. echo 1 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_adjust
  1774. ;;
  1775. esac
  1776. ;;
  1777. esac
  1778. case "$target" in
  1779. "msm8937")
  1780. if [ -f /sys/devices/soc0/soc_id ]; then
  1781. soc_id=`cat /sys/devices/soc0/soc_id`
  1782. else
  1783. soc_id=`cat /sys/devices/system/soc/soc0/id`
  1784. fi
  1785. if [ -f /sys/devices/soc0/hw_platform ]; then
  1786. hw_platform=`cat /sys/devices/soc0/hw_platform`
  1787. else
  1788. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  1789. fi
  1790. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  1791. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  1792. fi
  1793. # Socid 386 = Pukeena
  1794. case "$soc_id" in
  1795. "303" | "307" | "308" | "309" | "320" | "386" )
  1796. # Start Host based Touch processing
  1797. case "$hw_platform" in
  1798. "MTP" )
  1799. start_hbtp
  1800. ;;
  1801. esac
  1802. case "$hw_platform" in
  1803. "Surf" | "RCM" )
  1804. if [ $platform_subtype_id -ne "4" ]; then
  1805. start_hbtp
  1806. fi
  1807. ;;
  1808. esac
  1809. # Apply Scheduler and Governor settings for 8917 / 8920
  1810. echo 20000000 > /proc/sys/kernel/sched_ravg_window
  1811. #disable sched_boost in 8917
  1812. echo 0 > /proc/sys/kernel/sched_boost
  1813. # core_ctl is not needed for 8917. Disable it.
  1814. disable_core_ctl
  1815. for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor
  1816. do
  1817. echo "cpufreq" > $devfreq_gov
  1818. done
  1819. for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor
  1820. do
  1821. echo "bw_hwmon" > $devfreq_gov
  1822. for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent
  1823. do
  1824. echo 20 > $cpu_io_percent
  1825. done
  1826. for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps
  1827. do
  1828. echo 30 > $cpu_guard_band
  1829. done
  1830. done
  1831. for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent
  1832. do
  1833. echo 40 > $gpu_bimc_io_percent
  1834. done
  1835. # disable thermal core_control to update interactive gov settings
  1836. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1837. KernelVersionStr=`cat /proc/sys/kernel/osrelease`
  1838. KernelVersionS=${KernelVersionStr:2:2}
  1839. KernelVersionA=${KernelVersionStr:0:1}
  1840. KernelVersionB=${KernelVersionS%.*}
  1841. if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then
  1842. 8917_sched_dcvs_eas
  1843. else
  1844. 8917_sched_dcvs_hmp
  1845. fi
  1846. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1847. # re-enable thermal core_control now
  1848. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1849. # Disable L2-GDHS low power modes
  1850. echo N > /sys/module/lpm_levels/perf/perf-l2-gdhs/idle_enabled
  1851. echo N > /sys/module/lpm_levels/perf/perf-l2-gdhs/suspend_enabled
  1852. # Bring up all cores online
  1853. echo 1 > /sys/devices/system/cpu/cpu1/online
  1854. echo 1 > /sys/devices/system/cpu/cpu2/online
  1855. echo 1 > /sys/devices/system/cpu/cpu3/online
  1856. # Enable low power modes
  1857. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1858. # Set rps mask
  1859. echo 2 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus
  1860. # Enable dynamic clock gating
  1861. echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating
  1862. # Enable timer migration to little cluster
  1863. echo 1 > /proc/sys/kernel/power_aware_timer_migration
  1864. # Set Memory parameters
  1865. configure_memory_parameters
  1866. ;;
  1867. *)
  1868. ;;
  1869. esac
  1870. case "$soc_id" in
  1871. "294" | "295" | "313" )
  1872. # Start Host based Touch processing
  1873. case "$hw_platform" in
  1874. "MTP" | "Surf" | "RCM" )
  1875. start_hbtp
  1876. ;;
  1877. esac
  1878. # Apply Scheduler and Governor settings for 8937/8940
  1879. # HMP scheduler settings
  1880. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  1881. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  1882. echo 20000000 > /proc/sys/kernel/sched_ravg_window
  1883. #disable sched_boost in 8937
  1884. echo 0 > /proc/sys/kernel/sched_boost
  1885. for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor
  1886. do
  1887. echo "cpufreq" > $devfreq_gov
  1888. done
  1889. for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor
  1890. do
  1891. echo "bw_hwmon" > $devfreq_gov
  1892. for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent
  1893. do
  1894. echo 20 > $cpu_io_percent
  1895. done
  1896. for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps
  1897. do
  1898. echo 30 > $cpu_guard_band
  1899. done
  1900. done
  1901. for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent
  1902. do
  1903. echo 40 > $gpu_bimc_io_percent
  1904. done
  1905. # disable thermal core_control to update interactive gov and core_ctl settings
  1906. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1907. KernelVersionStr=`cat /proc/sys/kernel/osrelease`
  1908. KernelVersionS=${KernelVersionStr:2:2}
  1909. KernelVersionA=${KernelVersionStr:0:1}
  1910. KernelVersionB=${KernelVersionS%.*}
  1911. if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then
  1912. 8937_sched_dcvs_eas
  1913. else
  1914. 8937_sched_dcvs_hmp
  1915. fi
  1916. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1917. echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  1918. # Disable L2-GDHS low power modes
  1919. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled
  1920. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/suspend_enabled
  1921. echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled
  1922. echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/suspend_enabled
  1923. # Bring up all cores online
  1924. echo 1 > /sys/devices/system/cpu/cpu1/online
  1925. echo 1 > /sys/devices/system/cpu/cpu2/online
  1926. echo 1 > /sys/devices/system/cpu/cpu3/online
  1927. echo 1 > /sys/devices/system/cpu/cpu4/online
  1928. echo 1 > /sys/devices/system/cpu/cpu5/online
  1929. echo 1 > /sys/devices/system/cpu/cpu6/online
  1930. echo 1 > /sys/devices/system/cpu/cpu7/online
  1931. # Enable low power modes
  1932. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1933. # HMP scheduler (big.Little cluster related) settings
  1934. echo 93 > /proc/sys/kernel/sched_upmigrate
  1935. echo 83 > /proc/sys/kernel/sched_downmigrate
  1936. # Enable core control
  1937. echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  1938. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
  1939. echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  1940. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  1941. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  1942. echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  1943. # re-enable thermal core_control
  1944. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1945. # Enable dynamic clock gating
  1946. echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating
  1947. # Enable timer migration to little cluster
  1948. echo 1 > /proc/sys/kernel/power_aware_timer_migration
  1949. # Set Memory parameters
  1950. configure_memory_parameters
  1951. ;;
  1952. *)
  1953. ;;
  1954. esac
  1955. case "$soc_id" in
  1956. "354" | "364" | "353" | "363" )
  1957. # Start Host based Touch processing
  1958. case "$hw_platform" in
  1959. "MTP" | "Surf" | "RCM" | "QRD" )
  1960. start_hbtp
  1961. ;;
  1962. esac
  1963. # Apply settings for sdm429/sda429/sdm439/sda439
  1964. for cpubw in /sys/class/devfreq/*qcom,mincpubw*
  1965. do
  1966. echo "cpufreq" > $cpubw/governor
  1967. done
  1968. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  1969. do
  1970. echo "bw_hwmon" > $cpubw/governor
  1971. echo 20 > $cpubw/bw_hwmon/io_percent
  1972. echo 30 > $cpubw/bw_hwmon/guard_band_mbps
  1973. done
  1974. for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent
  1975. do
  1976. echo 40 > $gpu_bimc_io_percent
  1977. done
  1978. case "$soc_id" in
  1979. "353" | "363" )
  1980. # Apply settings for sdm439/sda439
  1981. # configure schedutil governor settings
  1982. # enable governor for perf cluster
  1983. echo 1 > /sys/devices/system/cpu/cpu0/online
  1984. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1985. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
  1986. #set the hispeed_freq
  1987. echo 1497600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  1988. echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
  1989. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1990. # sched_load_boost as -6 is equivalent to target load as 85.
  1991. echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
  1992. echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
  1993. echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
  1994. echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
  1995. ## enable governor for power cluster
  1996. echo 1 > /sys/devices/system/cpu/cpu4/online
  1997. echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  1998. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rate_limit_us
  1999. #set the hispeed_freq
  2000. echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
  2001. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
  2002. echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  2003. # sched_load_boost as -6 is equivalent to target load as 85.
  2004. echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost
  2005. echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost
  2006. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  2007. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  2008. # EAS scheduler (big.Little cluster related) settings
  2009. echo 93 > /proc/sys/kernel/sched_upmigrate
  2010. echo 83 > /proc/sys/kernel/sched_downmigrate
  2011. echo 140 > /proc/sys/kernel/sched_group_upmigrate
  2012. echo 120 > /proc/sys/kernel/sched_group_downmigrate
  2013. # cpuset settings
  2014. #echo 0-3 > /dev/cpuset/background/cpus
  2015. #echo 0-3 > /dev/cpuset/system-background/cpus
  2016. # Bring up all cores online
  2017. echo 1 > /sys/devices/system/cpu/cpu1/online
  2018. echo 1 > /sys/devices/system/cpu/cpu2/online
  2019. echo 1 > /sys/devices/system/cpu/cpu3/online
  2020. echo 1 > /sys/devices/system/cpu/cpu4/online
  2021. echo 1 > /sys/devices/system/cpu/cpu5/online
  2022. echo 1 > /sys/devices/system/cpu/cpu6/online
  2023. echo 1 > /sys/devices/system/cpu/cpu7/online
  2024. # Enable core control
  2025. echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  2026. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
  2027. echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  2028. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  2029. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  2030. echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  2031. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
  2032. # Big cluster min frequency adjust settings
  2033. if [ -f /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster ]; then
  2034. echo "0-3" > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster
  2035. fi
  2036. echo 1305600 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_floor
  2037. ;;
  2038. *)
  2039. # Apply settings for sdm429/sda429
  2040. # configure schedutil governor settings
  2041. echo 1 > /sys/devices/system/cpu/cpu0/online
  2042. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2043. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
  2044. #set the hispeed_freq
  2045. echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  2046. echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
  2047. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2048. # sched_load_boost as -6 is equivalent to target load as 85.
  2049. echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
  2050. echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
  2051. echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
  2052. echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
  2053. # Bring up all cores online
  2054. echo 1 > /sys/devices/system/cpu/cpu1/online
  2055. echo 1 > /sys/devices/system/cpu/cpu2/online
  2056. echo 1 > /sys/devices/system/cpu/cpu3/online
  2057. ;;
  2058. esac
  2059. # Set Memory parameters
  2060. configure_memory_parameters
  2061. #disable sched_boost
  2062. echo 0 > /proc/sys/kernel/sched_boost
  2063. # Disable L2-GDHS low power modes
  2064. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled
  2065. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/suspend_enabled
  2066. echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled
  2067. echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/suspend_enabled
  2068. # Enable low power modes
  2069. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2070. case "$soc_id" in
  2071. "353" | "363" )
  2072. echo 1 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_adjust
  2073. ;;
  2074. esac
  2075. ;;
  2076. esac
  2077. case "$soc_id" in
  2078. "386" )
  2079. # Start Host based Touch processing
  2080. case "$hw_platform" in
  2081. "QRD" )
  2082. start_hbtp
  2083. ;;
  2084. esac
  2085. ;;
  2086. esac
  2087. ;;
  2088. esac
  2089. case "$target" in
  2090. "sdm660")
  2091. # Set the default IRQ affinity to the primary cluster. When a
  2092. # CPU is isolated/hotplugged, the IRQ affinity is adjusted
  2093. # to one of the CPU from the default IRQ affinity mask.
  2094. echo f > /proc/irq/default_smp_affinity
  2095. if [ -f /sys/devices/soc0/soc_id ]; then
  2096. soc_id=`cat /sys/devices/soc0/soc_id`
  2097. else
  2098. soc_id=`cat /sys/devices/system/soc/soc0/id`
  2099. fi
  2100. if [ -f /sys/devices/soc0/hw_platform ]; then
  2101. hw_platform=`cat /sys/devices/soc0/hw_platform`
  2102. else
  2103. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  2104. fi
  2105. panel=`cat /sys/class/graphics/fb0/modes`
  2106. if [ "${panel:5:1}" == "x" ]; then
  2107. panel=${panel:2:3}
  2108. else
  2109. panel=${panel:2:4}
  2110. fi
  2111. if [ $panel -gt 1080 ]; then
  2112. echo 2 > /proc/sys/kernel/sched_window_stats_policy
  2113. echo 5 > /proc/sys/kernel/sched_ravg_hist_size
  2114. else
  2115. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  2116. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  2117. fi
  2118. #Apply settings for sdm660, sdm636,sda636
  2119. case "$soc_id" in
  2120. "317" | "324" | "325" | "326" | "345" | "346" )
  2121. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  2122. echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  2123. echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  2124. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  2125. echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster
  2126. echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
  2127. # Setting b.L scheduler parameters
  2128. echo 96 > /proc/sys/kernel/sched_upmigrate
  2129. echo 90 > /proc/sys/kernel/sched_downmigrate
  2130. echo 140 > /proc/sys/kernel/sched_group_upmigrate
  2131. echo 120 > /proc/sys/kernel/sched_group_downmigrate
  2132. echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us
  2133. echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
  2134. echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
  2135. echo 5 > /proc/sys/kernel/sched_spill_nr_run
  2136. echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill
  2137. echo 100000 > /proc/sys/kernel/sched_short_burst_ns
  2138. echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker
  2139. echo 20 > /proc/sys/kernel/sched_small_wakee_task_load
  2140. # cpuset settings
  2141. echo 0-3 > /dev/cpuset/background/cpus
  2142. echo 0-3 > /dev/cpuset/system-background/cpus
  2143. # disable thermal bcl hotplug to switch governor
  2144. echo 0 > /sys/module/msm_thermal/core_control/enabled
  2145. # online CPU0
  2146. echo 1 > /sys/devices/system/cpu/cpu0/online
  2147. # configure governor settings for little cluster
  2148. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2149. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  2150. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  2151. echo "19000 1401600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  2152. echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  2153. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  2154. echo 1401600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  2155. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  2156. echo "85 1747200:95" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  2157. echo 39000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  2158. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
  2159. echo 633600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2160. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif
  2161. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/fast_ramp_down
  2162. # online CPU4
  2163. echo 1 > /sys/devices/system/cpu/cpu4/online
  2164. # configure governor settings for big cluster
  2165. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  2166. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  2167. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  2168. echo "19000 1401600:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  2169. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  2170. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  2171. echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  2172. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  2173. echo "85 1401600:90 2150400:95" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  2174. echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  2175. echo 59000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
  2176. echo 1113600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  2177. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif
  2178. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/fast_ramp_down
  2179. # bring all cores online
  2180. echo 1 > /sys/devices/system/cpu/cpu0/online
  2181. echo 1 > /sys/devices/system/cpu/cpu1/online
  2182. echo 1 > /sys/devices/system/cpu/cpu2/online
  2183. echo 1 > /sys/devices/system/cpu/cpu3/online
  2184. echo 1 > /sys/devices/system/cpu/cpu4/online
  2185. echo 1 > /sys/devices/system/cpu/cpu5/online
  2186. echo 1 > /sys/devices/system/cpu/cpu6/online
  2187. echo 1 > /sys/devices/system/cpu/cpu7/online
  2188. # configure LPM
  2189. echo N > /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled
  2190. echo N > /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled
  2191. echo N > /sys/module/lpm_levels/system/pwr/cpu2/ret/idle_enabled
  2192. echo N > /sys/module/lpm_levels/system/pwr/cpu3/ret/idle_enabled
  2193. echo N > /sys/module/lpm_levels/system/perf/cpu4/ret/idle_enabled
  2194. echo N > /sys/module/lpm_levels/system/perf/cpu5/ret/idle_enabled
  2195. echo N > /sys/module/lpm_levels/system/perf/cpu6/ret/idle_enabled
  2196. echo N > /sys/module/lpm_levels/system/perf/cpu7/ret/idle_enabled
  2197. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled
  2198. echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled
  2199. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-ret/idle_enabled
  2200. echo N > /sys/module/lpm_levels/system/perf/perf-l2-ret/idle_enabled
  2201. # enable LPM
  2202. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2203. # re-enable thermal and BCL hotplug
  2204. echo 1 > /sys/module/msm_thermal/core_control/enabled
  2205. # Set Memory parameters
  2206. configure_memory_parameters
  2207. # Enable bus-dcvs
  2208. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  2209. do
  2210. echo "bw_hwmon" > $cpubw/governor
  2211. echo 50 > $cpubw/polling_interval
  2212. echo 762 > $cpubw/min_freq
  2213. echo "1525 3143 5859 7759 9887 10327 11863 13763" > $cpubw/bw_hwmon/mbps_zones
  2214. echo 4 > $cpubw/bw_hwmon/sample_ms
  2215. echo 85 > $cpubw/bw_hwmon/io_percent
  2216. echo 100 > $cpubw/bw_hwmon/decay_rate
  2217. echo 50 > $cpubw/bw_hwmon/bw_step
  2218. echo 20 > $cpubw/bw_hwmon/hist_memory
  2219. echo 0 > $cpubw/bw_hwmon/hyst_length
  2220. echo 80 > $cpubw/bw_hwmon/down_thres
  2221. echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps
  2222. echo 34 > $cpubw/bw_hwmon/low_power_io_percent
  2223. echo 20 > $cpubw/bw_hwmon/low_power_delay
  2224. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  2225. echo 250 > $cpubw/bw_hwmon/up_scale
  2226. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  2227. done
  2228. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  2229. do
  2230. echo "mem_latency" > $memlat/governor
  2231. echo 10 > $memlat/polling_interval
  2232. echo 400 > $memlat/mem_latency/ratio_ceil
  2233. done
  2234. echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  2235. # Start cdsprpcd only for sdm660 and disable for sdm630
  2236. if [ "$soc_id" -eq "317" ]; then
  2237. start vendor.cdsprpcd
  2238. fi
  2239. # Start Host based Touch processing
  2240. case "$hw_platform" in
  2241. "MTP" | "Surf" | "RCM" | "QRD" )
  2242. start_hbtp
  2243. ;;
  2244. esac
  2245. ;;
  2246. esac
  2247. #Apply settings for sdm630 and Tahaa
  2248. case "$soc_id" in
  2249. "318" | "327" | "385" )
  2250. # Start Host based Touch processing
  2251. case "$hw_platform" in
  2252. "MTP" | "Surf" | "RCM" | "QRD" )
  2253. start_hbtp
  2254. ;;
  2255. esac
  2256. # Setting b.L scheduler parameters
  2257. echo 85 > /proc/sys/kernel/sched_upmigrate
  2258. echo 85 > /proc/sys/kernel/sched_downmigrate
  2259. echo 900 > /proc/sys/kernel/sched_group_upmigrate
  2260. echo 900 > /proc/sys/kernel/sched_group_downmigrate
  2261. echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us
  2262. echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
  2263. echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
  2264. echo 3 > /proc/sys/kernel/sched_spill_nr_run
  2265. #init task load, restrict wakeups to preferred cluster
  2266. echo 15 > /proc/sys/kernel/sched_init_task_load
  2267. echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill
  2268. echo 50000 > /proc/sys/kernel/sched_short_burst_ns
  2269. # cpuset settings
  2270. echo 0-3 > /dev/cpuset/background/cpus
  2271. echo 0-3 > /dev/cpuset/system-background/cpus
  2272. # disable thermal bcl hotplug to switch governor
  2273. echo 0 > /sys/module/msm_thermal/core_control/enabled
  2274. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  2275. do
  2276. echo -n disable > $mode
  2277. done
  2278. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  2279. do
  2280. bcl_hotplug_mask=`cat $hotplug_mask`
  2281. echo 0 > $hotplug_mask
  2282. done
  2283. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  2284. do
  2285. bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
  2286. echo 0 > $hotplug_soc_mask
  2287. done
  2288. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  2289. do
  2290. echo -n enable > $mode
  2291. done
  2292. # online CPU0
  2293. echo 1 > /sys/devices/system/cpu/cpu0/online
  2294. # configure governor settings for Big cluster(CPU0 to CPU3)
  2295. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2296. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  2297. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  2298. echo "19000 1344000:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  2299. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  2300. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  2301. echo 1344000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  2302. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  2303. echo "85 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  2304. echo 39000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  2305. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
  2306. echo 787200 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2307. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif
  2308. # online CPU4
  2309. echo 1 > /sys/devices/system/cpu/cpu4/online
  2310. # configure governor settings for Little cluster(CPU4 to CPU7)
  2311. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  2312. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  2313. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  2314. echo "19000 1094400:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  2315. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  2316. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  2317. echo 1094400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  2318. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  2319. echo "85 1094400:80" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  2320. echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  2321. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
  2322. echo 614400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  2323. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif
  2324. # bring all cores online
  2325. echo 1 > /sys/devices/system/cpu/cpu0/online
  2326. echo 1 > /sys/devices/system/cpu/cpu1/online
  2327. echo 1 > /sys/devices/system/cpu/cpu2/online
  2328. echo 1 > /sys/devices/system/cpu/cpu3/online
  2329. echo 1 > /sys/devices/system/cpu/cpu4/online
  2330. echo 1 > /sys/devices/system/cpu/cpu5/online
  2331. echo 1 > /sys/devices/system/cpu/cpu6/online
  2332. echo 1 > /sys/devices/system/cpu/cpu7/online
  2333. # configure LPM
  2334. echo N > /sys/module/lpm_levels/system/perf/cpu0/ret/idle_enabled
  2335. echo N > /sys/module/lpm_levels/system/perf/cpu1/ret/idle_enabled
  2336. echo N > /sys/module/lpm_levels/system/perf/cpu2/ret/idle_enabled
  2337. echo N > /sys/module/lpm_levels/system/perf/cpu3/ret/idle_enabled
  2338. echo N > /sys/module/lpm_levels/system/pwr/cpu4/ret/idle_enabled
  2339. echo N > /sys/module/lpm_levels/system/pwr/cpu5/ret/idle_enabled
  2340. echo N > /sys/module/lpm_levels/system/pwr/cpu6/ret/idle_enabled
  2341. echo N > /sys/module/lpm_levels/system/pwr/cpu7/ret/idle_enabled
  2342. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled
  2343. echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled
  2344. # enable LPM
  2345. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2346. # re-enable thermal and BCL hotplug
  2347. echo 1 > /sys/module/msm_thermal/core_control/enabled
  2348. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  2349. do
  2350. echo -n disable > $mode
  2351. done
  2352. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  2353. do
  2354. echo $bcl_hotplug_mask > $hotplug_mask
  2355. done
  2356. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  2357. do
  2358. echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
  2359. done
  2360. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  2361. do
  2362. echo -n enable > $mode
  2363. done
  2364. # Set Memory parameters
  2365. configure_memory_parameters
  2366. # Enable bus-dcvs
  2367. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  2368. do
  2369. echo "bw_hwmon" > $cpubw/governor
  2370. echo 50 > $cpubw/polling_interval
  2371. echo 762 > $cpubw/min_freq
  2372. echo "1525 3143 4173 5195 5859 7759 9887 10327" > $cpubw/bw_hwmon/mbps_zones
  2373. echo 4 > $cpubw/bw_hwmon/sample_ms
  2374. echo 85 > $cpubw/bw_hwmon/io_percent
  2375. echo 20 > $cpubw/bw_hwmon/hist_memory
  2376. echo 0 > $cpubw/bw_hwmon/hyst_length
  2377. echo 100 > $cpubw/bw_hwmon/decay_rate
  2378. echo 50 > $cpubw/bw_hwmon/bw_step
  2379. echo 80 > $cpubw/bw_hwmon/down_thres
  2380. echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps
  2381. echo 50 > $cpubw/bw_hwmon/low_power_io_percent
  2382. echo 20 > $cpubw/bw_hwmon/low_power_delay
  2383. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  2384. echo 250 > $cpubw/bw_hwmon/up_scale
  2385. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  2386. done
  2387. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  2388. do
  2389. echo "mem_latency" > $memlat/governor
  2390. echo 10 > $memlat/polling_interval
  2391. echo 400 > $memlat/mem_latency/ratio_ceil
  2392. done
  2393. echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  2394. ;;
  2395. esac
  2396. ;;
  2397. esac
  2398. case "$target" in
  2399. "trinket")
  2400. if [ -f /sys/devices/soc0/soc_id ]; then
  2401. soc_id=`cat /sys/devices/soc0/soc_id`
  2402. else
  2403. soc_id=`cat /sys/devices/system/soc/soc0/id`
  2404. fi
  2405. case "$soc_id" in
  2406. "394" )
  2407. # Core control parameters on big
  2408. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  2409. echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  2410. echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  2411. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  2412. echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster
  2413. echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
  2414. # Setting b.L scheduler parameters
  2415. echo 67 > /proc/sys/kernel/sched_downmigrate
  2416. echo 77 > /proc/sys/kernel/sched_upmigrate
  2417. echo 85 > /proc/sys/kernel/sched_group_downmigrate
  2418. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  2419. # cpuset settings
  2420. echo 0-3 > /dev/cpuset/background/cpus
  2421. echo 0-3 > /dev/cpuset/system-background/cpus
  2422. # configure governor settings for little cluster
  2423. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2424. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  2425. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  2426. echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  2427. echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2428. # configure governor settings for big cluster
  2429. echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  2430. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  2431. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  2432. echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
  2433. echo 652800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  2434. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  2435. # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
  2436. echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
  2437. echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
  2438. echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
  2439. echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
  2440. echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost
  2441. echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost
  2442. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  2443. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  2444. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
  2445. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
  2446. # Set Memory parameters
  2447. configure_memory_parameters
  2448. # Enable bus-dcvs
  2449. for device in /sys/devices/platform/soc
  2450. do
  2451. for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw
  2452. do
  2453. echo "bw_hwmon" > $cpubw/governor
  2454. echo 50 > $cpubw/polling_interval
  2455. echo 762 > $cpubw/min_freq
  2456. echo "2288 3440 4173 5195 5859 7759 10322 11863 13763" > $cpubw/bw_hwmon/mbps_zones
  2457. echo 4 > $cpubw/bw_hwmon/sample_ms
  2458. echo 85 > $cpubw/bw_hwmon/io_percent
  2459. echo 90 > $cpubw/bw_hwmon/decay_rate
  2460. echo 190 > $cpubw/bw_hwmon/bw_step
  2461. echo 20 > $cpubw/bw_hwmon/hist_memory
  2462. echo 0 > $cpubw/bw_hwmon/hyst_length
  2463. echo 80 > $cpubw/bw_hwmon/down_thres
  2464. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  2465. echo 250 > $cpubw/bw_hwmon/up_scale
  2466. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  2467. done
  2468. for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
  2469. do
  2470. echo "mem_latency" > $memlat/governor
  2471. echo 10 > $memlat/polling_interval
  2472. echo 400 > $memlat/mem_latency/ratio_ceil
  2473. done
  2474. for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
  2475. do
  2476. echo "compute" > $latfloor/governor
  2477. echo 10 > $latfloor/polling_interval
  2478. done
  2479. done
  2480. # colcoation v3 disabled
  2481. echo 0 > /proc/sys/kernel/sched_min_task_util_for_boost
  2482. echo 0 > /proc/sys/kernel/sched_min_task_util_for_colocation
  2483. echo 0 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz
  2484. # Turn off scheduler boost at the end
  2485. echo 0 > /proc/sys/kernel/sched_boost
  2486. # Turn on sleep modes.
  2487. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled
  2488. echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled
  2489. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/suspend_enabled
  2490. echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/suspend_enabled
  2491. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2492. ;;
  2493. esac
  2494. ;;
  2495. esac
  2496. case "$target" in
  2497. "sdm710")
  2498. #Apply settings for sdm710
  2499. # Set the default IRQ affinity to the silver cluster. When a
  2500. # CPU is isolated/hotplugged, the IRQ affinity is adjusted
  2501. # to one of the CPU from the default IRQ affinity mask.
  2502. echo 3f > /proc/irq/default_smp_affinity
  2503. if [ -f /sys/devices/soc0/soc_id ]; then
  2504. soc_id=`cat /sys/devices/soc0/soc_id`
  2505. else
  2506. soc_id=`cat /sys/devices/system/soc/soc0/id`
  2507. fi
  2508. if [ -f /sys/devices/soc0/hw_platform ]; then
  2509. hw_platform=`cat /sys/devices/soc0/hw_platform`
  2510. else
  2511. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  2512. fi
  2513. case "$soc_id" in
  2514. "336" | "337" | "347" | "360" | "393" )
  2515. # Start Host based Touch processing
  2516. case "$hw_platform" in
  2517. "MTP" | "Surf" | "RCM" | "QRD" | "HDK" )
  2518. start_hbtp
  2519. ;;
  2520. esac
  2521. # Core control parameters on silver
  2522. echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred
  2523. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  2524. echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  2525. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  2526. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  2527. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  2528. echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
  2529. # Setting b.L scheduler parameters
  2530. echo 96 > /proc/sys/kernel/sched_upmigrate
  2531. echo 90 > /proc/sys/kernel/sched_downmigrate
  2532. echo 140 > /proc/sys/kernel/sched_group_upmigrate
  2533. echo 120 > /proc/sys/kernel/sched_group_downmigrate
  2534. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  2535. # configure governor settings for little cluster
  2536. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2537. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
  2538. echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  2539. echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2540. # configure governor settings for big cluster
  2541. echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
  2542. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/rate_limit_us
  2543. echo 1344000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq
  2544. echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  2545. # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
  2546. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  2547. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  2548. echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load
  2549. echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq
  2550. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  2551. # Set Memory parameters
  2552. configure_memory_parameters
  2553. # Enable bus-dcvs
  2554. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  2555. do
  2556. echo "bw_hwmon" > $cpubw/governor
  2557. echo 50 > $cpubw/polling_interval
  2558. echo "1144 1720 2086 2929 3879 5931 6881" > $cpubw/bw_hwmon/mbps_zones
  2559. echo 4 > $cpubw/bw_hwmon/sample_ms
  2560. echo 68 > $cpubw/bw_hwmon/io_percent
  2561. echo 20 > $cpubw/bw_hwmon/hist_memory
  2562. echo 0 > $cpubw/bw_hwmon/hyst_length
  2563. echo 80 > $cpubw/bw_hwmon/down_thres
  2564. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  2565. echo 250 > $cpubw/bw_hwmon/up_scale
  2566. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  2567. done
  2568. #Enable mem_latency governor for DDR scaling
  2569. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  2570. do
  2571. echo "mem_latency" > $memlat/governor
  2572. echo 10 > $memlat/polling_interval
  2573. echo 400 > $memlat/mem_latency/ratio_ceil
  2574. done
  2575. #Enable mem_latency governor for L3 scaling
  2576. for memlat in /sys/class/devfreq/*qcom,l3-cpu*
  2577. do
  2578. echo "mem_latency" > $memlat/governor
  2579. echo 10 > $memlat/polling_interval
  2580. echo 400 > $memlat/mem_latency/ratio_ceil
  2581. done
  2582. #Enable userspace governor for L3 cdsp nodes
  2583. for l3cdsp in /sys/class/devfreq/*qcom,l3-cdsp*
  2584. do
  2585. echo "userspace" > $l3cdsp/governor
  2586. chown -h system $l3cdsp/userspace/set_freq
  2587. done
  2588. echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  2589. # Disable CPU Retention
  2590. echo N > /sys/module/lpm_levels/L3/cpu0/ret/idle_enabled
  2591. echo N > /sys/module/lpm_levels/L3/cpu1/ret/idle_enabled
  2592. echo N > /sys/module/lpm_levels/L3/cpu2/ret/idle_enabled
  2593. echo N > /sys/module/lpm_levels/L3/cpu3/ret/idle_enabled
  2594. echo N > /sys/module/lpm_levels/L3/cpu4/ret/idle_enabled
  2595. echo N > /sys/module/lpm_levels/L3/cpu5/ret/idle_enabled
  2596. echo N > /sys/module/lpm_levels/L3/cpu6/ret/idle_enabled
  2597. echo N > /sys/module/lpm_levels/L3/cpu7/ret/idle_enabled
  2598. # cpuset parameters
  2599. echo 0-5 > /dev/cpuset/background/cpus
  2600. echo 0-5 > /dev/cpuset/system-background/cpus
  2601. # Turn off scheduler boost at the end
  2602. echo 0 > /proc/sys/kernel/sched_boost
  2603. # Turn on sleep modes.
  2604. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2605. ;;
  2606. esac
  2607. ;;
  2608. esac
  2609. case "$target" in
  2610. "sm6150")
  2611. #Apply settings for sm6150
  2612. # Set the default IRQ affinity to the silver cluster. When a
  2613. # CPU is isolated/hotplugged, the IRQ affinity is adjusted
  2614. # to one of the CPU from the default IRQ affinity mask.
  2615. echo 3f > /proc/irq/default_smp_affinity
  2616. if [ -f /sys/devices/soc0/soc_id ]; then
  2617. soc_id=`cat /sys/devices/soc0/soc_id`
  2618. else
  2619. soc_id=`cat /sys/devices/system/soc/soc0/id`
  2620. fi
  2621. case "$soc_id" in
  2622. "355" | "369" | "377" | "380" | "384" )
  2623. # Core control parameters on silver
  2624. echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred
  2625. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  2626. echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  2627. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  2628. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  2629. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  2630. echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
  2631. echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable
  2632. # Setting b.L scheduler parameters
  2633. # default sched up and down migrate values are 90 and 85
  2634. echo 65 > /proc/sys/kernel/sched_downmigrate
  2635. echo 71 > /proc/sys/kernel/sched_upmigrate
  2636. # default sched up and down migrate values are 100 and 95
  2637. echo 85 > /proc/sys/kernel/sched_group_downmigrate
  2638. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  2639. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  2640. # colocation v3 settings
  2641. echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz
  2642. # configure governor settings for little cluster
  2643. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2644. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  2645. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  2646. echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  2647. echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2648. # configure governor settings for big cluster
  2649. echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
  2650. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us
  2651. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us
  2652. echo 1209600 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq
  2653. echo 768000 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  2654. # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
  2655. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  2656. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  2657. echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load
  2658. echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq
  2659. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  2660. # Set Memory parameters
  2661. configure_memory_parameters
  2662. # Enable bus-dcvs
  2663. for device in /sys/devices/platform/soc
  2664. do
  2665. for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
  2666. do
  2667. echo "bw_hwmon" > $cpubw/governor
  2668. echo 50 > $cpubw/polling_interval
  2669. echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones
  2670. echo 4 > $cpubw/bw_hwmon/sample_ms
  2671. echo 68 > $cpubw/bw_hwmon/io_percent
  2672. echo 20 > $cpubw/bw_hwmon/hist_memory
  2673. echo 0 > $cpubw/bw_hwmon/hyst_length
  2674. echo 80 > $cpubw/bw_hwmon/down_thres
  2675. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  2676. echo 250 > $cpubw/bw_hwmon/up_scale
  2677. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  2678. done
  2679. for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
  2680. do
  2681. echo "bw_hwmon" > $llccbw/governor
  2682. echo 40 > $llccbw/polling_interval
  2683. echo "1144 1720 2086 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones
  2684. echo 4 > $llccbw/bw_hwmon/sample_ms
  2685. echo 68 > $llccbw/bw_hwmon/io_percent
  2686. echo 20 > $llccbw/bw_hwmon/hist_memory
  2687. echo 0 > $llccbw/bw_hwmon/hyst_length
  2688. echo 80 > $llccbw/bw_hwmon/down_thres
  2689. echo 0 > $llccbw/bw_hwmon/guard_band_mbps
  2690. echo 250 > $llccbw/bw_hwmon/up_scale
  2691. echo 1600 > $llccbw/bw_hwmon/idle_mbps
  2692. done
  2693. #Enable mem_latency governor for L3, LLCC, and DDR scaling
  2694. for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
  2695. do
  2696. echo "mem_latency" > $memlat/governor
  2697. echo 10 > $memlat/polling_interval
  2698. echo 400 > $memlat/mem_latency/ratio_ceil
  2699. done
  2700. #Gold L3 ratio ceil
  2701. echo 4000 > /sys/class/devfreq/soc:qcom,cpu6-cpu-l3-lat/mem_latency/ratio_ceil
  2702. #Enable cdspl3 governor for L3 cdsp nodes
  2703. for l3cdsp in $device/*cdsp-cdsp-l3-lat/devfreq/*cdsp-cdsp-l3-lat
  2704. do
  2705. echo "cdspl3" > $l3cdsp/governor
  2706. done
  2707. #Enable compute governor for gold latfloor
  2708. for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
  2709. do
  2710. echo "compute" > $latfloor/governor
  2711. echo 10 > $latfloor/polling_interval
  2712. done
  2713. done
  2714. # cpuset parameters
  2715. echo 0-5 > /dev/cpuset/background/cpus
  2716. echo 0-5 > /dev/cpuset/system-background/cpus
  2717. # Turn off scheduler boost at the end
  2718. echo 0 > /proc/sys/kernel/sched_boost
  2719. # Turn on sleep modes.
  2720. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2721. ;;
  2722. esac
  2723. #Apply settings for moorea
  2724. case "$soc_id" in
  2725. "365" | "366" )
  2726. # Core control parameters on silver
  2727. echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred
  2728. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  2729. echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  2730. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  2731. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  2732. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  2733. echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
  2734. echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable
  2735. # Setting b.L scheduler parameters
  2736. # default sched up and down migrate values are 71 and 65
  2737. echo 65 > /proc/sys/kernel/sched_downmigrate
  2738. echo 71 > /proc/sys/kernel/sched_upmigrate
  2739. # default sched up and down migrate values are 100 and 95
  2740. echo 85 > /proc/sys/kernel/sched_group_downmigrate
  2741. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  2742. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  2743. #colocation v3 settings
  2744. echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz
  2745. # configure governor settings for little cluster
  2746. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2747. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  2748. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  2749. echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  2750. echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2751. # configure governor settings for big cluster
  2752. echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
  2753. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us
  2754. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us
  2755. echo 1324600 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq
  2756. echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  2757. # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
  2758. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  2759. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  2760. echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load
  2761. echo "0:1248000" > /sys/module/cpu_boost/parameters/input_boost_freq
  2762. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  2763. # Set Memory parameters
  2764. configure_memory_parameters
  2765. # Enable bus-dcvs
  2766. for device in /sys/devices/platform/soc
  2767. do
  2768. for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
  2769. do
  2770. echo "bw_hwmon" > $cpubw/governor
  2771. echo 50 > $cpubw/polling_interval
  2772. echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones
  2773. echo 4 > $cpubw/bw_hwmon/sample_ms
  2774. echo 68 > $cpubw/bw_hwmon/io_percent
  2775. echo 20 > $cpubw/bw_hwmon/hist_memory
  2776. echo 0 > $cpubw/bw_hwmon/hyst_length
  2777. echo 80 > $cpubw/bw_hwmon/down_thres
  2778. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  2779. echo 250 > $cpubw/bw_hwmon/up_scale
  2780. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  2781. done
  2782. for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
  2783. do
  2784. echo "bw_hwmon" > $llccbw/governor
  2785. echo 40 > $llccbw/polling_interval
  2786. echo "1144 1720 2086 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones
  2787. echo 4 > $llccbw/bw_hwmon/sample_ms
  2788. echo 68 > $llccbw/bw_hwmon/io_percent
  2789. echo 20 > $llccbw/bw_hwmon/hist_memory
  2790. echo 0 > $llccbw/bw_hwmon/hyst_length
  2791. echo 80 > $llccbw/bw_hwmon/down_thres
  2792. echo 0 > $llccbw/bw_hwmon/guard_band_mbps
  2793. echo 250 > $llccbw/bw_hwmon/up_scale
  2794. echo 1600 > $llccbw/bw_hwmon/idle_mbps
  2795. done
  2796. for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw
  2797. do
  2798. echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
  2799. echo "bw_hwmon" > $npubw/governor
  2800. echo 40 > $npubw/polling_interval
  2801. echo "1144 1720 2086 2929 3879 5931 6881" > $npubw/bw_hwmon/mbps_zones
  2802. echo 4 > $npubw/bw_hwmon/sample_ms
  2803. echo 80 > $npubw/bw_hwmon/io_percent
  2804. echo 20 > $npubw/bw_hwmon/hist_memory
  2805. echo 10 > $npubw/bw_hwmon/hyst_length
  2806. echo 30 > $npubw/bw_hwmon/down_thres
  2807. echo 0 > $npubw/bw_hwmon/guard_band_mbps
  2808. echo 250 > $npubw/bw_hwmon/up_scale
  2809. echo 0 > $npubw/bw_hwmon/idle_mbps
  2810. echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
  2811. done
  2812. #Enable mem_latency governor for L3, LLCC, and DDR scaling
  2813. for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
  2814. do
  2815. echo "mem_latency" > $memlat/governor
  2816. echo 10 > $memlat/polling_interval
  2817. echo 400 > $memlat/mem_latency/ratio_ceil
  2818. done
  2819. #Gold L3 ratio ceil
  2820. echo 4000 > /sys/class/devfreq/soc:qcom,cpu6-cpu-l3-lat/mem_latency/ratio_ceil
  2821. #Enable cdspl3 governor for L3 cdsp nodes
  2822. for l3cdsp in $device/*cdsp-cdsp-l3-lat/devfreq/*cdsp-cdsp-l3-lat
  2823. do
  2824. echo "cdspl3" > $l3cdsp/governor
  2825. done
  2826. #Enable compute governor for gold latfloor
  2827. for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
  2828. do
  2829. echo "compute" > $latfloor/governor
  2830. echo 10 > $latfloor/polling_interval
  2831. done
  2832. done
  2833. # cpuset parameters
  2834. echo 0-5 > /dev/cpuset/background/cpus
  2835. echo 0-5 > /dev/cpuset/system-background/cpus
  2836. # Turn off scheduler boost at the end
  2837. echo 0 > /proc/sys/kernel/sched_boost
  2838. # Turn on sleep modes.
  2839. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2840. ;;
  2841. esac
  2842. ;;
  2843. esac
  2844. case "$target" in
  2845. "qcs605")
  2846. #Apply settings for qcs605
  2847. # Set the default IRQ affinity to the silver cluster. When a
  2848. # CPU is isolated/hotplugged, the IRQ affinity is adjusted
  2849. # to one of the CPU from the default IRQ affinity mask.
  2850. echo 3f > /proc/irq/default_smp_affinity
  2851. if [ -f /sys/devices/soc0/soc_id ]; then
  2852. soc_id=`cat /sys/devices/soc0/soc_id`
  2853. else
  2854. soc_id=`cat /sys/devices/system/soc/soc0/id`
  2855. fi
  2856. if [ -f /sys/devices/soc0/hw_platform ]; then
  2857. hw_platform=`cat /sys/devices/soc0/hw_platform`
  2858. else
  2859. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  2860. fi
  2861. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  2862. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  2863. fi
  2864. case "$soc_id" in
  2865. "347" )
  2866. # Start Host based Touch processing
  2867. case "$hw_platform" in
  2868. "Surf" | "RCM" | "QRD" )
  2869. start_hbtp
  2870. ;;
  2871. "MTP" )
  2872. if [ $platform_subtype_id != 5 ]; then
  2873. start_hbtp
  2874. fi
  2875. ;;
  2876. esac
  2877. # Core control parameters on silver
  2878. echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred
  2879. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  2880. echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  2881. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  2882. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  2883. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  2884. echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
  2885. # Setting b.L scheduler parameters
  2886. echo 96 > /proc/sys/kernel/sched_upmigrate
  2887. echo 90 > /proc/sys/kernel/sched_downmigrate
  2888. echo 140 > /proc/sys/kernel/sched_group_upmigrate
  2889. echo 120 > /proc/sys/kernel/sched_group_downmigrate
  2890. # configure governor settings for little cluster
  2891. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2892. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
  2893. echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  2894. echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2895. # configure governor settings for big cluster
  2896. echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
  2897. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/rate_limit_us
  2898. echo 1344000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq
  2899. echo 825600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  2900. echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq
  2901. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  2902. # Enable bus-dcvs
  2903. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  2904. do
  2905. echo "bw_hwmon" > $cpubw/governor
  2906. echo 50 > $cpubw/polling_interval
  2907. echo "1144 1720 2086 2929 3879 5931 6881" > $cpubw/bw_hwmon/mbps_zones
  2908. echo 4 > $cpubw/bw_hwmon/sample_ms
  2909. echo 68 > $cpubw/bw_hwmon/io_percent
  2910. echo 20 > $cpubw/bw_hwmon/hist_memory
  2911. echo 0 > $cpubw/bw_hwmon/hyst_length
  2912. echo 80 > $cpubw/bw_hwmon/down_thres
  2913. echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps
  2914. echo 68 > $cpubw/bw_hwmon/low_power_io_percent
  2915. echo 20 > $cpubw/bw_hwmon/low_power_delay
  2916. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  2917. echo 250 > $cpubw/bw_hwmon/up_scale
  2918. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  2919. done
  2920. #Enable mem_latency governor for DDR scaling
  2921. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  2922. do
  2923. echo "mem_latency" > $memlat/governor
  2924. echo 10 > $memlat/polling_interval
  2925. echo 400 > $memlat/mem_latency/ratio_ceil
  2926. done
  2927. #Enable mem_latency governor for L3 scaling
  2928. for memlat in /sys/class/devfreq/*qcom,l3-cpu*
  2929. do
  2930. echo "mem_latency" > $memlat/governor
  2931. echo 10 > $memlat/polling_interval
  2932. echo 400 > $memlat/mem_latency/ratio_ceil
  2933. done
  2934. echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  2935. # cpuset parameters
  2936. echo 0-5 > /dev/cpuset/background/cpus
  2937. echo 0-5 > /dev/cpuset/system-background/cpus
  2938. # Turn off scheduler boost at the end
  2939. echo 0 > /proc/sys/kernel/sched_boost
  2940. # Turn on sleep modes.
  2941. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2942. # Set Memory parameters
  2943. configure_memory_parameters
  2944. ;;
  2945. esac
  2946. ;;
  2947. esac
  2948. case "$target" in
  2949. "apq8084")
  2950. echo 4 > /sys/module/lpm_levels/enable_low_power/l2
  2951. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  2952. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  2953. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
  2954. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
  2955. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  2956. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
  2957. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
  2958. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
  2959. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  2960. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  2961. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
  2962. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
  2963. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  2964. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  2965. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
  2966. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
  2967. echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled
  2968. echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled
  2969. echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled
  2970. echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled
  2971. echo 0 > /sys/module/msm_thermal/core_control/enabled
  2972. echo 1 > /sys/devices/system/cpu/cpu1/online
  2973. echo 1 > /sys/devices/system/cpu/cpu2/online
  2974. echo 1 > /sys/devices/system/cpu/cpu3/online
  2975. for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor
  2976. do
  2977. echo "cpubw_hwmon" > $devfreq_gov
  2978. done
  2979. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2980. echo "interactive" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
  2981. echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
  2982. echo "interactive" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
  2983. echo "20000 1400000:40000 1700000:20000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  2984. echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  2985. echo 1497600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  2986. echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  2987. echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  2988. echo 20 > /sys/module/cpu_boost/parameters/boost_ms
  2989. echo 1728000 > /sys/module/cpu_boost/parameters/sync_threshold
  2990. echo 100000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  2991. echo 1497600 > /sys/module/cpu_boost/parameters/input_boost_freq
  2992. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  2993. echo 1 > /dev/cpuctl/apps/cpu.notify_on_migrate
  2994. echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2995. echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  2996. echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  2997. echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  2998. echo 1 > /sys/module/msm_thermal/core_control/enabled
  2999. setprop ro.vendor.perf.cores_online 2
  3000. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  3001. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3002. chown -h root.system /sys/devices/system/cpu/mfreq
  3003. chmod -h 220 /sys/devices/system/cpu/mfreq
  3004. chown -h root.system /sys/devices/system/cpu/cpu1/online
  3005. chown -h root.system /sys/devices/system/cpu/cpu2/online
  3006. chown -h root.system /sys/devices/system/cpu/cpu3/online
  3007. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  3008. chmod -h 664 /sys/devices/system/cpu/cpu2/online
  3009. chmod -h 664 /sys/devices/system/cpu/cpu3/online
  3010. ;;
  3011. esac
  3012. case "$target" in
  3013. "mpq8092")
  3014. echo 4 > /sys/module/lpm_levels/enable_low_power/l2
  3015. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  3016. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  3017. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
  3018. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
  3019. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  3020. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
  3021. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
  3022. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
  3023. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  3024. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  3025. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
  3026. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
  3027. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  3028. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  3029. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
  3030. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
  3031. echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled
  3032. echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled
  3033. echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled
  3034. echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled
  3035. echo 0 > /sys/module/msm_thermal/core_control/enabled
  3036. echo 1 > /sys/devices/system/cpu/cpu1/online
  3037. echo 1 > /sys/devices/system/cpu/cpu2/online
  3038. echo 1 > /sys/devices/system/cpu/cpu3/online
  3039. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3040. echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
  3041. echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
  3042. echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
  3043. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  3044. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  3045. echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  3046. echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3047. echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  3048. echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  3049. echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  3050. echo 1 > /sys/module/msm_thermal/core_control/enabled
  3051. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  3052. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3053. chown -h root.system /sys/devices/system/cpu/mfreq
  3054. chmod -h 220 /sys/devices/system/cpu/mfreq
  3055. chown -h root.system /sys/devices/system/cpu/cpu1/online
  3056. chown -h root.system /sys/devices/system/cpu/cpu2/online
  3057. chown -h root.system /sys/devices/system/cpu/cpu3/online
  3058. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  3059. chmod -h 664 /sys/devices/system/cpu/cpu2/online
  3060. chmod -h 664 /sys/devices/system/cpu/cpu3/online
  3061. ;;
  3062. esac
  3063. case "$target" in
  3064. "msm8992")
  3065. # disable thermal bcl hotplug to switch governor
  3066. echo 0 > /sys/module/msm_thermal/core_control/enabled
  3067. echo -n disable > /sys/devices/soc.*/qcom,bcl.*/mode
  3068. bcl_hotplug_mask=`cat /sys/devices/soc.*/qcom,bcl.*/hotplug_mask`
  3069. echo 0 > /sys/devices/soc.*/qcom,bcl.*/hotplug_mask
  3070. echo -n enable > /sys/devices/soc.*/qcom,bcl.*/mode
  3071. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3072. # configure governor settings for little cluster
  3073. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3074. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  3075. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  3076. echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  3077. echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  3078. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  3079. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  3080. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  3081. echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  3082. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  3083. echo 80000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
  3084. echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3085. # online CPU4
  3086. echo 1 > /sys/devices/system/cpu/cpu4/online
  3087. # configure governor settings for big cluster
  3088. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  3089. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  3090. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  3091. echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  3092. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  3093. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  3094. echo 1536000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  3095. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  3096. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  3097. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  3098. echo 80000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
  3099. echo 384000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  3100. # re-enable thermal and BCL hotplug
  3101. echo 1 > /sys/module/msm_thermal/core_control/enabled
  3102. echo -n disable > /sys/devices/soc.*/qcom,bcl.*/mode
  3103. echo $bcl_hotplug_mask > /sys/devices/soc.*/qcom,bcl.*/hotplug_mask
  3104. echo $bcl_soc_hotplug_mask > /sys/devices/soc.*/qcom,bcl.*/hotplug_soc_mask
  3105. echo -n enable > /sys/devices/soc.*/qcom,bcl.*/mode
  3106. # plugin remaining A57s
  3107. echo 1 > /sys/devices/system/cpu/cpu5/online
  3108. # input boost configuration
  3109. echo 0:1248000 > /sys/module/cpu_boost/parameters/input_boost_freq
  3110. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  3111. # Enable task migration fixups in the scheduler
  3112. echo 1 > /proc/sys/kernel/sched_migration_fixup
  3113. for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor
  3114. do
  3115. echo "bw_hwmon" > $devfreq_gov
  3116. done
  3117. #enable rps static configuration
  3118. echo 8 > /sys/class/net/rmnet_ipa0/queues/rx-0/rps_cpus
  3119. echo 30 > /proc/sys/kernel/sched_small_task
  3120. ;;
  3121. esac
  3122. case "$target" in
  3123. "msm8994")
  3124. # ensure at most one A57 is online when thermal hotplug is disabled
  3125. echo 0 > /sys/devices/system/cpu/cpu5/online
  3126. echo 0 > /sys/devices/system/cpu/cpu6/online
  3127. echo 0 > /sys/devices/system/cpu/cpu7/online
  3128. # in case CPU4 is online, limit its frequency
  3129. echo 960000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  3130. # Limit A57 max freq from msm_perf module in case CPU 4 is offline
  3131. echo "4:960000 5:960000 6:960000 7:960000" > /sys/module/msm_performance/parameters/cpu_max_freq
  3132. # disable thermal bcl hotplug to switch governor
  3133. echo 0 > /sys/module/msm_thermal/core_control/enabled
  3134. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  3135. do
  3136. echo -n disable > $mode
  3137. done
  3138. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  3139. do
  3140. bcl_hotplug_mask=`cat $hotplug_mask`
  3141. echo 0 > $hotplug_mask
  3142. done
  3143. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  3144. do
  3145. bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
  3146. echo 0 > $hotplug_soc_mask
  3147. done
  3148. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  3149. do
  3150. echo -n enable > $mode
  3151. done
  3152. # configure governor settings for little cluster
  3153. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3154. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  3155. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  3156. echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  3157. echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  3158. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  3159. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  3160. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  3161. echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  3162. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  3163. echo 80000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
  3164. echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3165. # online CPU4
  3166. echo 1 > /sys/devices/system/cpu/cpu4/online
  3167. # Best effort limiting for first time boot if msm_performance module is absent
  3168. echo 960000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  3169. # configure governor settings for big cluster
  3170. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  3171. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  3172. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  3173. echo "19000 1400000:39000 1700000:19000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  3174. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  3175. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  3176. echo 1248000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  3177. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  3178. echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  3179. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  3180. echo 80000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
  3181. echo 384000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  3182. # restore A57's max
  3183. cat /sys/devices/system/cpu/cpu4/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  3184. # re-enable thermal and BCL hotplug
  3185. echo 1 > /sys/module/msm_thermal/core_control/enabled
  3186. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  3187. do
  3188. echo -n disable > $mode
  3189. done
  3190. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  3191. do
  3192. echo $bcl_hotplug_mask > $hotplug_mask
  3193. done
  3194. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  3195. do
  3196. echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
  3197. done
  3198. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  3199. do
  3200. echo -n enable > $mode
  3201. done
  3202. # plugin remaining A57s
  3203. echo 1 > /sys/devices/system/cpu/cpu5/online
  3204. echo 1 > /sys/devices/system/cpu/cpu6/online
  3205. echo 1 > /sys/devices/system/cpu/cpu7/online
  3206. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3207. # Restore CPU 4 max freq from msm_performance
  3208. echo "4:4294967295 5:4294967295 6:4294967295 7:4294967295" > /sys/module/msm_performance/parameters/cpu_max_freq
  3209. # input boost configuration
  3210. echo 0:1344000 > /sys/module/cpu_boost/parameters/input_boost_freq
  3211. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  3212. # Setting b.L scheduler parameters
  3213. echo 1 > /proc/sys/kernel/sched_migration_fixup
  3214. echo 30 > /proc/sys/kernel/sched_small_task
  3215. echo 20 > /proc/sys/kernel/sched_mostly_idle_load
  3216. echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run
  3217. echo 99 > /proc/sys/kernel/sched_upmigrate
  3218. echo 85 > /proc/sys/kernel/sched_downmigrate
  3219. echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
  3220. echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
  3221. #enable rps static configuration
  3222. echo 8 > /sys/class/net/rmnet_ipa0/queues/rx-0/rps_cpus
  3223. for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor
  3224. do
  3225. echo "bw_hwmon" > $devfreq_gov
  3226. done
  3227. ;;
  3228. esac
  3229. case "$target" in
  3230. "msm8996")
  3231. # disable thermal bcl hotplug to switch governor
  3232. echo 0 > /sys/module/msm_thermal/core_control/enabled
  3233. echo -n disable > /sys/devices/soc/soc:qcom,bcl/mode
  3234. bcl_hotplug_mask=`cat /sys/devices/soc/soc:qcom,bcl/hotplug_mask`
  3235. echo 0 > /sys/devices/soc/soc:qcom,bcl/hotplug_mask
  3236. bcl_soc_hotplug_mask=`cat /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask`
  3237. echo 0 > /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask
  3238. echo -n enable > /sys/devices/soc/soc:qcom,bcl/mode
  3239. # set sync wakee policy tunable
  3240. echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker
  3241. # configure governor settings for little cluster
  3242. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3243. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  3244. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  3245. echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  3246. echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  3247. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  3248. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  3249. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  3250. echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  3251. echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  3252. echo 79000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
  3253. echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3254. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif
  3255. # online CPU2
  3256. echo 1 > /sys/devices/system/cpu/cpu2/online
  3257. # configure governor settings for big cluster
  3258. echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
  3259. echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_sched_load
  3260. echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_migration_notif
  3261. echo "19000 1400000:39000 1700000:19000 2100000:79000" > /sys/devices/system/cpu/cpu2/cpufreq/interactive/above_hispeed_delay
  3262. echo 90 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/go_hispeed_load
  3263. echo 20000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/timer_rate
  3264. echo 1248000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/hispeed_freq
  3265. echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/io_is_busy
  3266. echo "85 1500000:90 1800000:70 2100000:95" > /sys/devices/system/cpu/cpu2/cpufreq/interactive/target_loads
  3267. echo 19000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/min_sample_time
  3268. echo 79000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/max_freq_hysteresis
  3269. echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  3270. echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/ignore_hispeed_on_notif
  3271. # re-enable thermal and BCL hotplug
  3272. echo 1 > /sys/module/msm_thermal/core_control/enabled
  3273. echo -n disable > /sys/devices/soc/soc:qcom,bcl/mode
  3274. echo $bcl_hotplug_mask > /sys/devices/soc/soc:qcom,bcl/hotplug_mask
  3275. echo $bcl_soc_hotplug_mask > /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask
  3276. echo -n enable > /sys/devices/soc/soc:qcom,bcl/mode
  3277. # input boost configuration
  3278. echo "0:1324800 2:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
  3279. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  3280. # Setting b.L scheduler parameters
  3281. echo 0 > /proc/sys/kernel/sched_boost
  3282. echo 1 > /proc/sys/kernel/sched_migration_fixup
  3283. echo 45 > /proc/sys/kernel/sched_downmigrate
  3284. echo 45 > /proc/sys/kernel/sched_upmigrate
  3285. echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
  3286. echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
  3287. echo 3 > /proc/sys/kernel/sched_spill_nr_run
  3288. echo 100 > /proc/sys/kernel/sched_init_task_load
  3289. # Enable bus-dcvs
  3290. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  3291. do
  3292. echo "bw_hwmon" > $cpubw/governor
  3293. echo 50 > $cpubw/polling_interval
  3294. echo 1525 > $cpubw/min_freq
  3295. echo "1525 5195 11863 13763" > $cpubw/bw_hwmon/mbps_zones
  3296. echo 4 > $cpubw/bw_hwmon/sample_ms
  3297. echo 34 > $cpubw/bw_hwmon/io_percent
  3298. echo 20 > $cpubw/bw_hwmon/hist_memory
  3299. echo 10 > $cpubw/bw_hwmon/hyst_length
  3300. echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps
  3301. echo 34 > $cpubw/bw_hwmon/low_power_io_percent
  3302. echo 20 > $cpubw/bw_hwmon/low_power_delay
  3303. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  3304. echo 250 > $cpubw/bw_hwmon/up_scale
  3305. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  3306. done
  3307. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  3308. do
  3309. echo "mem_latency" > $memlat/governor
  3310. echo 10 > $memlat/polling_interval
  3311. done
  3312. echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  3313. soc_revision=`cat /sys/devices/soc0/revision`
  3314. if [ "$soc_revision" == "2.0" ]; then
  3315. #Disable suspend for v2.0
  3316. echo pwr_dbg > /sys/power/wake_lock
  3317. elif [ "$soc_revision" == "2.1" ]; then
  3318. # Enable C4.D4.E4.M3 LPM modes
  3319. # Disable D3 state
  3320. echo 0 > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled
  3321. echo 0 > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled
  3322. # Disable DEF-FPC mode
  3323. echo N > /sys/module/lpm_levels/system/pwr/cpu0/fpc-def/idle_enabled
  3324. echo N > /sys/module/lpm_levels/system/pwr/cpu1/fpc-def/idle_enabled
  3325. echo N > /sys/module/lpm_levels/system/perf/cpu2/fpc-def/idle_enabled
  3326. echo N > /sys/module/lpm_levels/system/perf/cpu3/fpc-def/idle_enabled
  3327. else
  3328. # Enable all LPMs by default
  3329. # This will enable C4, D4, D3, E4 and M3 LPMs
  3330. echo N > /sys/module/lpm_levels/parameters/sleep_disabled
  3331. fi
  3332. echo N > /sys/module/lpm_levels/parameters/sleep_disabled
  3333. # Starting io prefetcher service
  3334. start iop
  3335. # Set Memory parameters
  3336. configure_memory_parameters
  3337. ;;
  3338. esac
  3339. case "$target" in
  3340. "sdm845")
  3341. # Set the default IRQ affinity to the silver cluster. When a
  3342. # CPU is isolated/hotplugged, the IRQ affinity is adjusted
  3343. # to one of the CPU from the default IRQ affinity mask.
  3344. echo f > /proc/irq/default_smp_affinity
  3345. if [ -f /sys/devices/soc0/soc_id ]; then
  3346. soc_id=`cat /sys/devices/soc0/soc_id`
  3347. else
  3348. soc_id=`cat /sys/devices/system/soc/soc0/id`
  3349. fi
  3350. if [ -f /sys/devices/soc0/hw_platform ]; then
  3351. hw_platform=`cat /sys/devices/soc0/hw_platform`
  3352. fi
  3353. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  3354. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  3355. fi
  3356. case "$soc_id" in
  3357. "321" | "341")
  3358. # Start Host based Touch processing
  3359. case "$hw_platform" in
  3360. "QRD" )
  3361. case "$platform_subtype_id" in
  3362. "32") #QVR845 do nothing
  3363. ;;
  3364. *)
  3365. start_hbtp
  3366. ;;
  3367. esac
  3368. ;;
  3369. *)
  3370. start_hbtp
  3371. ;;
  3372. esac
  3373. ;;
  3374. esac
  3375. # Core control parameters
  3376. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  3377. echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  3378. echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  3379. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  3380. echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster
  3381. echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
  3382. # Setting b.L scheduler parameters
  3383. echo 95 > /proc/sys/kernel/sched_upmigrate
  3384. echo 85 > /proc/sys/kernel/sched_downmigrate
  3385. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  3386. echo 95 > /proc/sys/kernel/sched_group_downmigrate
  3387. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  3388. # configure governor settings for little cluster
  3389. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3390. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
  3391. echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  3392. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/pl
  3393. echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3394. # configure governor settings for big cluster
  3395. echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  3396. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rate_limit_us
  3397. echo 1574400 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
  3398. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/pl
  3399. echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
  3400. echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms
  3401. # Limit the min frequency to 825MHz
  3402. echo 825000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  3403. # Enable oom_reaper
  3404. echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper
  3405. # Enable bus-dcvs
  3406. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  3407. do
  3408. echo "bw_hwmon" > $cpubw/governor
  3409. echo 50 > $cpubw/polling_interval
  3410. echo "2288 4577 6500 8132 9155 10681" > $cpubw/bw_hwmon/mbps_zones
  3411. echo 4 > $cpubw/bw_hwmon/sample_ms
  3412. echo 50 > $cpubw/bw_hwmon/io_percent
  3413. echo 20 > $cpubw/bw_hwmon/hist_memory
  3414. echo 10 > $cpubw/bw_hwmon/hyst_length
  3415. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  3416. echo 250 > $cpubw/bw_hwmon/up_scale
  3417. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  3418. done
  3419. for llccbw in /sys/class/devfreq/*qcom,llccbw*
  3420. do
  3421. echo "bw_hwmon" > $llccbw/governor
  3422. echo 50 > $llccbw/polling_interval
  3423. echo "1720 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones
  3424. echo 4 > $llccbw/bw_hwmon/sample_ms
  3425. echo 80 > $llccbw/bw_hwmon/io_percent
  3426. echo 20 > $llccbw/bw_hwmon/hist_memory
  3427. echo 10 > $llccbw/bw_hwmon/hyst_length
  3428. echo 0 > $llccbw/bw_hwmon/guard_band_mbps
  3429. echo 250 > $llccbw/bw_hwmon/up_scale
  3430. echo 1600 > $llccbw/bw_hwmon/idle_mbps
  3431. done
  3432. #Enable mem_latency governor for DDR scaling
  3433. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  3434. do
  3435. echo "mem_latency" > $memlat/governor
  3436. echo 10 > $memlat/polling_interval
  3437. echo 400 > $memlat/mem_latency/ratio_ceil
  3438. done
  3439. #Enable mem_latency governor for L3 scaling
  3440. for memlat in /sys/class/devfreq/*qcom,l3-cpu*
  3441. do
  3442. echo "mem_latency" > $memlat/governor
  3443. echo 10 > $memlat/polling_interval
  3444. echo 400 > $memlat/mem_latency/ratio_ceil
  3445. done
  3446. #Enable userspace governor for L3 cdsp nodes
  3447. for l3cdsp in /sys/class/devfreq/*qcom,l3-cdsp*
  3448. do
  3449. echo "userspace" > $l3cdsp/governor
  3450. chown -h system $l3cdsp/userspace/set_freq
  3451. done
  3452. #Gold L3 ratio ceil
  3453. echo 4000 > /sys/class/devfreq/soc:qcom,l3-cpu4/mem_latency/ratio_ceil
  3454. echo "compute" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  3455. echo 10 > /sys/class/devfreq/soc:qcom,mincpubw/polling_interval
  3456. # cpuset parameters
  3457. echo 0-3 > /dev/cpuset/background/cpus
  3458. echo 0-3 > /dev/cpuset/system-background/cpus
  3459. # Turn off scheduler boost at the end
  3460. echo 0 > /proc/sys/kernel/sched_boost
  3461. # Disable CPU Retention
  3462. echo N > /sys/module/lpm_levels/L3/cpu0/ret/idle_enabled
  3463. echo N > /sys/module/lpm_levels/L3/cpu1/ret/idle_enabled
  3464. echo N > /sys/module/lpm_levels/L3/cpu2/ret/idle_enabled
  3465. echo N > /sys/module/lpm_levels/L3/cpu3/ret/idle_enabled
  3466. echo N > /sys/module/lpm_levels/L3/cpu4/ret/idle_enabled
  3467. echo N > /sys/module/lpm_levels/L3/cpu5/ret/idle_enabled
  3468. echo N > /sys/module/lpm_levels/L3/cpu6/ret/idle_enabled
  3469. echo N > /sys/module/lpm_levels/L3/cpu7/ret/idle_enabled
  3470. echo N > /sys/module/lpm_levels/L3/l3-dyn-ret/idle_enabled
  3471. # Turn on sleep modes.
  3472. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3473. echo 100 > /proc/sys/vm/swappiness
  3474. echo 120 > /proc/sys/vm/watermark_scale_factor
  3475. ;;
  3476. esac
  3477. case "$target" in
  3478. "msmnile")
  3479. # Core control parameters for gold
  3480. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  3481. echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  3482. echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  3483. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  3484. echo 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
  3485. # Core control parameters for gold+
  3486. echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus
  3487. echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres
  3488. echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres
  3489. echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms
  3490. echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres
  3491. # Controls how many more tasks should be eligible to run on gold CPUs
  3492. # w.r.t number of gold CPUs available to trigger assist (max number of
  3493. # tasks eligible to run on previous cluster minus number of CPUs in
  3494. # the previous cluster).
  3495. #
  3496. # Setting to 1 by default which means there should be at least
  3497. # 4 tasks eligible to run on gold cluster (tasks running on gold cores
  3498. # plus misfit tasks on silver cores) to trigger assitance from gold+.
  3499. echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh
  3500. # Disable Core control on silver
  3501. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
  3502. # Setting b.L scheduler parameters
  3503. echo 95 95 > /proc/sys/kernel/sched_upmigrate
  3504. echo 85 85 > /proc/sys/kernel/sched_downmigrate
  3505. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  3506. echo 95 > /proc/sys/kernel/sched_group_downmigrate
  3507. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  3508. # cpuset parameters
  3509. echo 0-3 > /dev/cpuset/background/cpus
  3510. echo 0-3 > /dev/cpuset/system-background/cpus
  3511. # Turn off scheduler boost at the end
  3512. echo 0 > /proc/sys/kernel/sched_boost
  3513. # configure governor settings for silver cluster
  3514. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
  3515. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us
  3516. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us
  3517. echo 1209600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
  3518. echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
  3519. echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
  3520. # configure governor settings for gold cluster
  3521. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
  3522. echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us
  3523. echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us
  3524. echo 1612800 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq
  3525. echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl
  3526. # configure governor settings for gold+ cluster
  3527. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor
  3528. echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us
  3529. echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/down_rate_limit_us
  3530. echo 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
  3531. echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl
  3532. # configure input boost settings
  3533. echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
  3534. echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms
  3535. echo 120 > /proc/sys/vm/watermark_scale_factor
  3536. echo 0-3 > /dev/cpuset/background/cpus
  3537. echo 0-3 > /dev/cpuset/system-background/cpus
  3538. # Enable oom_reaper
  3539. if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then
  3540. echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper
  3541. else
  3542. echo 1 > /proc/sys/vm/reap_mem_on_sigkill
  3543. fi
  3544. # Enable bus-dcvs
  3545. for device in /sys/devices/platform/soc
  3546. do
  3547. for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
  3548. do
  3549. echo "bw_hwmon" > $cpubw/governor
  3550. echo 40 > $cpubw/polling_interval
  3551. echo "2288 4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones
  3552. echo 4 > $cpubw/bw_hwmon/sample_ms
  3553. echo 50 > $cpubw/bw_hwmon/io_percent
  3554. echo 20 > $cpubw/bw_hwmon/hist_memory
  3555. echo 10 > $cpubw/bw_hwmon/hyst_length
  3556. echo 30 > $cpubw/bw_hwmon/down_thres
  3557. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  3558. echo 250 > $cpubw/bw_hwmon/up_scale
  3559. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  3560. echo 14236 > $cpubw/max_freq
  3561. done
  3562. for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
  3563. do
  3564. echo "bw_hwmon" > $llccbw/governor
  3565. echo 40 > $llccbw/polling_interval
  3566. echo "1720 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones
  3567. echo 4 > $llccbw/bw_hwmon/sample_ms
  3568. echo 80 > $llccbw/bw_hwmon/io_percent
  3569. echo 20 > $llccbw/bw_hwmon/hist_memory
  3570. echo 10 > $llccbw/bw_hwmon/hyst_length
  3571. echo 30 > $llccbw/bw_hwmon/down_thres
  3572. echo 0 > $llccbw/bw_hwmon/guard_band_mbps
  3573. echo 250 > $llccbw/bw_hwmon/up_scale
  3574. echo 1600 > $llccbw/bw_hwmon/idle_mbps
  3575. echo 6881 > $llccbw/max_freq
  3576. done
  3577. for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw
  3578. do
  3579. echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
  3580. echo "bw_hwmon" > $npubw/governor
  3581. echo 40 > $npubw/polling_interval
  3582. echo "1720 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones
  3583. echo 4 > $npubw/bw_hwmon/sample_ms
  3584. echo 80 > $npubw/bw_hwmon/io_percent
  3585. echo 20 > $npubw/bw_hwmon/hist_memory
  3586. echo 6 > $npubw/bw_hwmon/hyst_length
  3587. echo 30 > $npubw/bw_hwmon/down_thres
  3588. echo 0 > $npubw/bw_hwmon/guard_band_mbps
  3589. echo 250 > $npubw/bw_hwmon/up_scale
  3590. echo 0 > $npubw/bw_hwmon/idle_mbps
  3591. echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
  3592. done
  3593. #Enable mem_latency governor for L3, LLCC, and DDR scaling
  3594. for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
  3595. do
  3596. echo "mem_latency" > $memlat/governor
  3597. echo 10 > $memlat/polling_interval
  3598. echo 400 > $memlat/mem_latency/ratio_ceil
  3599. done
  3600. #Enable userspace governor for L3 cdsp nodes
  3601. for l3cdsp in $device/*cdsp-cdsp-l3-lat/devfreq/*cdsp-cdsp-l3-lat
  3602. do
  3603. echo "cdspl3" > $l3cdsp/governor
  3604. done
  3605. #Enable compute governor for gold latfloor
  3606. for latfloor in $device/*cpu-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
  3607. do
  3608. echo "compute" > $latfloor/governor
  3609. echo 10 > $latfloor/polling_interval
  3610. done
  3611. #Gold L3 ratio ceil
  3612. for l3gold in $device/*cpu4-cpu-l3-lat/devfreq/*cpu4-cpu-l3-lat
  3613. do
  3614. echo 4000 > $l3gold/mem_latency/ratio_ceil
  3615. done
  3616. #Prime L3 ratio ceil
  3617. for l3prime in $device/*cpu7-cpu-l3-lat/devfreq/*cpu7-cpu-l3-lat
  3618. do
  3619. echo 20000 > $l3prime/mem_latency/ratio_ceil
  3620. done
  3621. done
  3622. if [ -f /sys/devices/soc0/hw_platform ]; then
  3623. hw_platform=`cat /sys/devices/soc0/hw_platform`
  3624. else
  3625. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  3626. fi
  3627. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  3628. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  3629. fi
  3630. case "$hw_platform" in
  3631. "MTP" | "Surf" | "RCM" )
  3632. # Start Host based Touch processing
  3633. case "$platform_subtype_id" in
  3634. "0" | "1")
  3635. start_hbtp
  3636. ;;
  3637. esac
  3638. ;;
  3639. "HDK" )
  3640. if [ -d /sys/kernel/hbtpsensor ] ; then
  3641. start_hbtp
  3642. fi
  3643. ;;
  3644. esac
  3645. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3646. configure_memory_parameters
  3647. ;;
  3648. esac
  3649. case "$target" in
  3650. "msm8998" | "apq8098_latv")
  3651. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  3652. echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  3653. echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  3654. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  3655. echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster
  3656. echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
  3657. # Setting b.L scheduler parameters
  3658. echo 1 > /proc/sys/kernel/sched_migration_fixup
  3659. echo 95 > /proc/sys/kernel/sched_upmigrate
  3660. echo 90 > /proc/sys/kernel/sched_downmigrate
  3661. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  3662. echo 95 > /proc/sys/kernel/sched_group_downmigrate
  3663. echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us
  3664. echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
  3665. echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
  3666. echo 5 > /proc/sys/kernel/sched_spill_nr_run
  3667. echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill
  3668. echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker
  3669. start iop
  3670. # disable thermal bcl hotplug to switch governor
  3671. echo 0 > /sys/module/msm_thermal/core_control/enabled
  3672. # online CPU0
  3673. echo 1 > /sys/devices/system/cpu/cpu0/online
  3674. # configure governor settings for little cluster
  3675. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3676. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  3677. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  3678. echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  3679. echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  3680. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  3681. echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  3682. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  3683. echo "83 1804800:95" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  3684. echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  3685. echo 79000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
  3686. echo 518400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3687. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif
  3688. # online CPU4
  3689. echo 1 > /sys/devices/system/cpu/cpu4/online
  3690. # configure governor settings for big cluster
  3691. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  3692. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  3693. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  3694. echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  3695. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  3696. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  3697. echo 1574400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  3698. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  3699. echo "83 1939200:90 2016000:95" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  3700. echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  3701. echo 79000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
  3702. echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  3703. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif
  3704. # re-enable thermal and BCL hotplug
  3705. echo 1 > /sys/module/msm_thermal/core_control/enabled
  3706. # Enable input boost configuration
  3707. echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
  3708. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  3709. # Enable bus-dcvs
  3710. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  3711. do
  3712. echo "bw_hwmon" > $cpubw/governor
  3713. echo 50 > $cpubw/polling_interval
  3714. echo 1525 > $cpubw/min_freq
  3715. echo "3143 5859 11863 13763" > $cpubw/bw_hwmon/mbps_zones
  3716. echo 4 > $cpubw/bw_hwmon/sample_ms
  3717. echo 34 > $cpubw/bw_hwmon/io_percent
  3718. echo 20 > $cpubw/bw_hwmon/hist_memory
  3719. echo 10 > $cpubw/bw_hwmon/hyst_length
  3720. echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps
  3721. echo 34 > $cpubw/bw_hwmon/low_power_io_percent
  3722. echo 20 > $cpubw/bw_hwmon/low_power_delay
  3723. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  3724. echo 250 > $cpubw/bw_hwmon/up_scale
  3725. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  3726. done
  3727. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  3728. do
  3729. echo "mem_latency" > $memlat/governor
  3730. echo 10 > $memlat/polling_interval
  3731. echo 400 > $memlat/mem_latency/ratio_ceil
  3732. done
  3733. echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  3734. if [ -f /sys/devices/soc0/soc_id ]; then
  3735. soc_id=`cat /sys/devices/soc0/soc_id`
  3736. else
  3737. soc_id=`cat /sys/devices/system/soc/soc0/id`
  3738. fi
  3739. if [ -f /sys/devices/soc0/hw_platform ]; then
  3740. hw_platform=`cat /sys/devices/soc0/hw_platform`
  3741. else
  3742. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  3743. fi
  3744. if [ -f /sys/devices/soc0/platform_version ]; then
  3745. platform_version=`cat /sys/devices/soc0/platform_version`
  3746. platform_major_version=$((10#${platform_version}>>16))
  3747. fi
  3748. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  3749. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  3750. fi
  3751. case "$soc_id" in
  3752. "292") #msm8998 apq8098_latv
  3753. # Start Host based Touch processing
  3754. case "$hw_platform" in
  3755. "QRD")
  3756. case "$platform_subtype_id" in
  3757. "0")
  3758. start_hbtp
  3759. ;;
  3760. "16")
  3761. if [ $platform_major_version -lt 6 ]; then
  3762. start_hbtp
  3763. fi
  3764. ;;
  3765. esac
  3766. ;;
  3767. esac
  3768. ;;
  3769. esac
  3770. echo N > /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled
  3771. echo N > /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled
  3772. echo N > /sys/module/lpm_levels/system/pwr/cpu2/ret/idle_enabled
  3773. echo N > /sys/module/lpm_levels/system/pwr/cpu3/ret/idle_enabled
  3774. echo N > /sys/module/lpm_levels/system/perf/cpu4/ret/idle_enabled
  3775. echo N > /sys/module/lpm_levels/system/perf/cpu5/ret/idle_enabled
  3776. echo N > /sys/module/lpm_levels/system/perf/cpu6/ret/idle_enabled
  3777. echo N > /sys/module/lpm_levels/system/perf/cpu7/ret/idle_enabled
  3778. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled
  3779. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-ret/idle_enabled
  3780. echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled
  3781. echo N > /sys/module/lpm_levels/system/perf/perf-l2-ret/idle_enabled
  3782. echo N > /sys/module/lpm_levels/parameters/sleep_disabled
  3783. echo 0-3 > /dev/cpuset/background/cpus
  3784. echo 0-3 > /dev/cpuset/system-background/cpus
  3785. echo 0 > /proc/sys/kernel/sched_boost
  3786. # Set Memory parameters
  3787. configure_memory_parameters
  3788. ;;
  3789. esac
  3790. case "$target" in
  3791. "msm8909")
  3792. if [ -f /sys/devices/soc0/soc_id ]; then
  3793. soc_id=`cat /sys/devices/soc0/soc_id`
  3794. else
  3795. soc_id=`cat /sys/devices/system/soc/soc0/id`
  3796. fi
  3797. # HMP scheduler settings for 8909 similiar to 8917
  3798. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  3799. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  3800. echo 1 > /proc/sys/kernel/sched_restrict_tasks_spread
  3801. echo 20 > /proc/sys/kernel/sched_small_task
  3802. echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
  3803. echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
  3804. echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
  3805. echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
  3806. echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
  3807. echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
  3808. echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
  3809. echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
  3810. echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
  3811. echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
  3812. echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
  3813. echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
  3814. # Apply governor settings for 8909
  3815. # disable thermal core_control to update scaling_min_freq
  3816. echo 0 > /sys/module/msm_thermal/core_control/enabled
  3817. echo 1 > /sys/devices/system/cpu/cpu0/online
  3818. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3819. echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3820. # enable thermal core_control now
  3821. echo 1 > /sys/module/msm_thermal/core_control/enabled
  3822. echo "29000 1094400:49000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  3823. echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  3824. echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
  3825. echo 998400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  3826. echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
  3827. echo "1 800000:85 998400:90 1094400:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  3828. echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  3829. echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  3830. # Bring up all cores online
  3831. echo 1 > /sys/devices/system/cpu/cpu1/online
  3832. echo 1 > /sys/devices/system/cpu/cpu2/online
  3833. echo 1 > /sys/devices/system/cpu/cpu3/online
  3834. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3835. for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
  3836. do
  3837. echo "bw_hwmon" > $devfreq_gov
  3838. for cpu_bimc_bw_step in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/bw_step
  3839. do
  3840. echo 60 > $cpu_bimc_bw_step
  3841. done
  3842. for cpu_guard_band_mbps in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps
  3843. do
  3844. echo 30 > $cpu_guard_band_mbps
  3845. done
  3846. done
  3847. for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent
  3848. do
  3849. echo 40 > $gpu_bimc_io_percent
  3850. done
  3851. for gpu_bimc_bw_step in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/bw_step
  3852. do
  3853. echo 60 > $gpu_bimc_bw_step
  3854. done
  3855. for gpu_bimc_guard_band_mbps in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/guard_band_mbps
  3856. do
  3857. echo 30 > $gpu_bimc_guard_band_mbps
  3858. done
  3859. # Set Memory parameters
  3860. configure_memory_parameters
  3861. restorecon -R /sys/devices/system/cpu
  3862. ;;
  3863. esac
  3864. case "$target" in
  3865. "msm7627_ffa" | "msm7627_surf" | "msm7627_6x")
  3866. echo 25000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  3867. ;;
  3868. esac
  3869. case "$target" in
  3870. "qsd8250_surf" | "qsd8250_ffa" | "qsd8650a_st1x")
  3871. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  3872. ;;
  3873. esac
  3874. case "$target" in
  3875. "qsd8650a_st1x")
  3876. mount -t debugfs none /sys/kernel/debug
  3877. ;;
  3878. esac
  3879. chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  3880. chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  3881. chown -h system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  3882. emmc_boot=`getprop vendor.boot.emmc`
  3883. case "$emmc_boot"
  3884. in "true")
  3885. chown -h system /sys/devices/platform/rs300000a7.65536/force_sync
  3886. chown -h system /sys/devices/platform/rs300000a7.65536/sync_sts
  3887. chown -h system /sys/devices/platform/rs300100a7.65536/force_sync
  3888. chown -h system /sys/devices/platform/rs300100a7.65536/sync_sts
  3889. ;;
  3890. esac
  3891. case "$target" in
  3892. "msm8960" | "msm8660" | "msm7630_surf")
  3893. echo 10 > /sys/devices/platform/msm_sdcc.3/idle_timeout
  3894. ;;
  3895. "msm7627a")
  3896. echo 10 > /sys/devices/platform/msm_sdcc.1/idle_timeout
  3897. ;;
  3898. esac
  3899. # Post-setup services
  3900. case "$target" in
  3901. "msm8660" | "msm8960" | "msm8226" | "msm8610" | "mpq8092" )
  3902. start mpdecision
  3903. ;;
  3904. "msm8916")
  3905. setprop vendor.post_boot.parsed 1
  3906. if [ -f /sys/devices/soc0/soc_id ]; then
  3907. soc_id=`cat /sys/devices/soc0/soc_id`
  3908. else
  3909. soc_id=`cat /sys/devices/system/soc/soc0/id`
  3910. fi
  3911. case $soc_id in
  3912. "239" | "241" | "263" | "268" | "269" | "270" | "271")
  3913. setprop vendor.min_freq_0 960000
  3914. setprop vendor.min_freq_4 800000
  3915. ;;
  3916. "206" | "247" | "248" | "249" | "250" | "233" | "240" | "242")
  3917. setprop vendor.min_freq_0 800000
  3918. ;;
  3919. esac
  3920. ;;
  3921. "msm8909")
  3922. setprop vendor.post_boot.parsed 1
  3923. ;;
  3924. "msm8952")
  3925. setprop vendor.post_boot.parsed 1
  3926. ;;
  3927. "msm8937" | "msm8953")
  3928. setprop vendor.post_boot.parsed 1
  3929. low_ram_enable=`getprop ro.config.low_ram`
  3930. if [ "$low_ram_enable" != "true" ]; then
  3931. start gamed
  3932. fi
  3933. ;;
  3934. "msm8974")
  3935. start mpdecision
  3936. echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb
  3937. ;;
  3938. "msm8994" | "msm8992" | "msm8996" | "msm8998" | "sdm660" | "apq8098_latv" | "sdm845" | "sdm710" | "msmnile" | "qcs605" | "sm6150" | "trinket")
  3939. setprop vendor.post_boot.parsed 1
  3940. ;;
  3941. "apq8084")
  3942. rm /data/system/perfd/default_values
  3943. start mpdecision
  3944. echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb
  3945. echo 512 > /sys/block/sda/bdi/read_ahead_kb
  3946. echo 512 > /sys/block/sdb/bdi/read_ahead_kb
  3947. echo 512 > /sys/block/sdc/bdi/read_ahead_kb
  3948. echo 512 > /sys/block/sdd/bdi/read_ahead_kb
  3949. echo 512 > /sys/block/sde/bdi/read_ahead_kb
  3950. echo 512 > /sys/block/sdf/bdi/read_ahead_kb
  3951. echo 512 > /sys/block/sdg/bdi/read_ahead_kb
  3952. echo 512 > /sys/block/sdh/bdi/read_ahead_kb
  3953. ;;
  3954. "msm7627a")
  3955. if [ -f /sys/devices/soc0/soc_id ]; then
  3956. soc_id=`cat /sys/devices/soc0/soc_id`
  3957. else
  3958. soc_id=`cat /sys/devices/system/soc/soc0/id`
  3959. fi
  3960. case "$soc_id" in
  3961. "127" | "128" | "129")
  3962. start mpdecision
  3963. ;;
  3964. esac
  3965. ;;
  3966. esac
  3967. # Enable Power modes and set the CPU Freq Sampling rates
  3968. case "$target" in
  3969. "msm7627a")
  3970. start qosmgrd
  3971. echo 1 > /sys/module/pm2/modes/cpu0/standalone_power_collapse/idle_enabled
  3972. echo 1 > /sys/module/pm2/modes/cpu1/standalone_power_collapse/idle_enabled
  3973. echo 1 > /sys/module/pm2/modes/cpu0/standalone_power_collapse/suspend_enabled
  3974. echo 1 > /sys/module/pm2/modes/cpu1/standalone_power_collapse/suspend_enabled
  3975. #SuspendPC:
  3976. echo 1 > /sys/module/pm2/modes/cpu0/power_collapse/suspend_enabled
  3977. #IdlePC:
  3978. echo 1 > /sys/module/pm2/modes/cpu0/power_collapse/idle_enabled
  3979. echo 25000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  3980. ;;
  3981. esac
  3982. # Change adj level and min_free_kbytes setting for lowmemory killer to kick in
  3983. case "$target" in
  3984. "msm7627a")
  3985. echo 0,1,2,4,9,12 > /sys/module/lowmemorykiller/parameters/adj
  3986. echo 5120 > /proc/sys/vm/min_free_kbytes
  3987. ;;
  3988. esac
  3989. # Install AdrenoTest.apk if not already installed
  3990. if [ -f /data/prebuilt/AdrenoTest.apk ]; then
  3991. if [ ! -d /data/data/com.qualcomm.adrenotest ]; then
  3992. pm install /data/prebuilt/AdrenoTest.apk
  3993. fi
  3994. fi
  3995. # Install SWE_Browser.apk if not already installed
  3996. if [ -f /data/prebuilt/SWE_AndroidBrowser.apk ]; then
  3997. if [ ! -d /data/data/com.android.swe.browser ]; then
  3998. pm install /data/prebuilt/SWE_AndroidBrowser.apk
  3999. fi
  4000. fi
  4001. # Change adj level and min_free_kbytes setting for lowmemory killer to kick in
  4002. case "$target" in
  4003. "msm8660")
  4004. start qosmgrd
  4005. echo 0,1,2,4,9,12 > /sys/module/lowmemorykiller/parameters/adj
  4006. echo 5120 > /proc/sys/vm/min_free_kbytes
  4007. ;;
  4008. esac
  4009. # Let kernel know our image version/variant/crm_version
  4010. if [ -f /sys/devices/soc0/select_image ]; then
  4011. image_version="10:"
  4012. image_version+=`getprop ro.build.id`
  4013. image_version+=":"
  4014. image_version+=`getprop ro.build.version.incremental`
  4015. image_variant=`getprop ro.product.name`
  4016. image_variant+="-"
  4017. image_variant+=`getprop ro.build.type`
  4018. oem_version=`getprop ro.build.version.codename`
  4019. echo 10 > /sys/devices/soc0/select_image
  4020. echo $image_version > /sys/devices/soc0/image_version
  4021. echo $image_variant > /sys/devices/soc0/image_variant
  4022. echo $oem_version > /sys/devices/soc0/image_crm_version
  4023. fi
  4024. # Parse misc partition path and set property
  4025. misc_link=$(ls -l /dev/block/bootdevice/by-name/misc)
  4026. real_path=${misc_link##*>}
  4027. setprop persist.vendor.mmi.misc_dev_path $real_path