init.qcom.post_boot.sh 272 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801
  1. #! /vendor/bin/sh
  2. # Copyright (c) 2012-2013, 2016-2021, 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/up_rate_limit_us
  34. echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/down_rate_limit_us
  35. #set the hispeed_freq
  36. echo 1401600 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_freq
  37. #default value for hispeed_load is 90, for 8953 and sdm450 it should be 85
  38. echo 85 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_load
  39. }
  40. function 8917_sched_dcvs_eas()
  41. {
  42. #governor settings
  43. echo 1 > /sys/devices/system/cpu/cpu0/online
  44. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  45. echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/up_rate_limit_us
  46. echo 0 > /sys/devices/system/cpu/cpufreq/schedutil/down_rate_limit_us
  47. #set the hispeed_freq
  48. echo 1094400 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_freq
  49. #default value for hispeed_load is 90, for 8917 it should be 85
  50. echo 85 > /sys/devices/system/cpu/cpufreq/schedutil/hispeed_load
  51. }
  52. function 8937_sched_dcvs_eas()
  53. {
  54. # enable governor for perf cluster
  55. echo 1 > /sys/devices/system/cpu/cpu0/online
  56. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  57. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  58. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  59. #set the hispeed_freq
  60. echo 1094400 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  61. #default value for hispeed_load is 90, for 8937 it should be 85
  62. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
  63. ## enable governor for power cluster
  64. echo 1 > /sys/devices/system/cpu/cpu4/online
  65. echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  66. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us
  67. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us
  68. #set the hispeed_freq
  69. echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
  70. #default value for hispeed_load is 90, for 8937 it should be 85
  71. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
  72. }
  73. function configure_automotive_sku_parameters() {
  74. echo 1036800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  75. echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  76. echo 1171200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq
  77. echo 1785600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  78. echo 902400000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq
  79. echo 902400000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/min_freq
  80. echo 902400000 > /sys/class/devfreq/soc\:qcom,cpu7-cpu-l3-lat/min_freq
  81. echo 1612800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq
  82. echo 1612800000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/max_freq
  83. echo 1612800000 > /sys/class/devfreq/soc\:qcom,cpu7-cpu-l3-lat/max_freq
  84. #read feature id from nvram
  85. reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4`
  86. feature_id=$(((reg_val >> 20) & 0xFF))
  87. log -t BOOT -p i "feature id '$feature_id'"
  88. if [ $feature_id == 0 ]; then
  89. echo " SKU Configured : SA8155P"
  90. echo 2131200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  91. echo 2419200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq
  92. echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
  93. elif [ $feature_id == 1 ]; then
  94. echo "SKU Configured : SA8150P"
  95. echo 1920000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  96. echo 2227200 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq
  97. echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
  98. else
  99. echo "unknown feature_id value" $feature_id
  100. fi
  101. }
  102. function configure_sku_parameters() {
  103. #read feature id from nvram
  104. reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4`
  105. feature_id=$(((reg_val >> 20) & 0xFF))
  106. log -t BOOT -p i "feature id '$feature_id'"
  107. if [ $feature_id == 6 ]; then
  108. echo " SKU Configured : SA6145"
  109. echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  110. echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  111. echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  112. echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  113. echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  114. echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq
  115. echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  116. echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq
  117. echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  118. echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
  119. echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
  120. echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
  121. echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  122. echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq
  123. echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq
  124. echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq
  125. echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq
  126. echo 1017600000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq
  127. echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq
  128. echo 1017600000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq
  129. echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
  130. setprop vendor.sku_identified 1
  131. setprop vendor.sku_name "SA6145"
  132. elif [ $feature_id == 5 ]; then
  133. echo "SKU Configured : SA6150"
  134. echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  135. echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  136. echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  137. echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  138. echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  139. echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq
  140. echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  141. echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq
  142. echo 998400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  143. echo 998400 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
  144. echo 998400 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
  145. echo 998400 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
  146. echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  147. echo 998400 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq
  148. echo 1708800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq
  149. echo 1708800 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq
  150. echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq
  151. echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq
  152. echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq
  153. echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq
  154. echo 2 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
  155. setprop vendor.sku_identified 1
  156. setprop vendor.sku_name "SA6150"
  157. elif [ $feature_id == 4 ] || [ $feature_id == 3 ]; then
  158. echo "SKU Configured : SA6155"
  159. echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  160. echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  161. echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  162. echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  163. echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  164. echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq
  165. echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  166. echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq
  167. echo 1593600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  168. echo 1593600 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
  169. echo 1593600 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
  170. echo 1593600 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
  171. echo 1593600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  172. echo 1593600 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq
  173. echo 1900800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq
  174. echo 1900800 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq
  175. echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq
  176. echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq
  177. echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq
  178. echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq
  179. echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
  180. setprop vendor.sku_identified 1
  181. setprop vendor.sku_name "SA6155"
  182. else
  183. echo "SKU Configured : SA6155"
  184. echo 748800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  185. echo 748800 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  186. echo 748800 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  187. echo 748800 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  188. echo 748800 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  189. echo 748800 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq
  190. echo 1017600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  191. echo 1017600 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq
  192. echo 1593600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  193. echo 1593600 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
  194. echo 1593600 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
  195. echo 1593600 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
  196. echo 1593600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  197. echo 1593600 > /sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq
  198. echo 1900800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq
  199. echo 1900800 > /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq
  200. echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq
  201. echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq
  202. echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/min_freq
  203. echo 1363200000 > /sys/class/devfreq/soc\:qcom,cpu6-cpu-l3-lat/max_freq
  204. echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
  205. setprop vendor.sku_identified 1
  206. setprop vendor.sku_name "SA6155"
  207. fi
  208. }
  209. function 8953_sched_dcvs_hmp()
  210. {
  211. #scheduler settings
  212. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  213. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  214. #task packing settings
  215. echo 0 > /sys/devices/system/cpu/cpu0/sched_static_cpu_pwr_cost
  216. echo 0 > /sys/devices/system/cpu/cpu1/sched_static_cpu_pwr_cost
  217. echo 0 > /sys/devices/system/cpu/cpu2/sched_static_cpu_pwr_cost
  218. echo 0 > /sys/devices/system/cpu/cpu3/sched_static_cpu_pwr_cost
  219. echo 0 > /sys/devices/system/cpu/cpu4/sched_static_cpu_pwr_cost
  220. echo 0 > /sys/devices/system/cpu/cpu5/sched_static_cpu_pwr_cost
  221. echo 0 > /sys/devices/system/cpu/cpu6/sched_static_cpu_pwr_cost
  222. echo 0 > /sys/devices/system/cpu/cpu7/sched_static_cpu_pwr_cost
  223. # spill load is set to 100% by default in the kernel
  224. echo 3 > /proc/sys/kernel/sched_spill_nr_run
  225. # Apply inter-cluster load balancer restrictions
  226. echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill
  227. # set sync wakee policy tunable
  228. echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker
  229. #governor settings
  230. echo 1 > /sys/devices/system/cpu/cpu0/online
  231. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  232. echo "19000 1401600:39000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  233. echo 85 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  234. echo 20000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
  235. echo 1401600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  236. echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
  237. echo "85 1401600:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  238. echo 39000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  239. echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  240. echo 19 > /proc/sys/kernel/sched_upmigrate_min_nice
  241. # Enable sched guided freq control
  242. echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_sched_load
  243. echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_migration_notif
  244. echo 200000 > /proc/sys/kernel/sched_freq_inc_notify
  245. echo 200000 > /proc/sys/kernel/sched_freq_dec_notify
  246. }
  247. function 8917_sched_dcvs_hmp()
  248. {
  249. # HMP scheduler settings
  250. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  251. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  252. echo 1 > /proc/sys/kernel/sched_restrict_tasks_spread
  253. # HMP Task packing settings
  254. echo 20 > /proc/sys/kernel/sched_small_task
  255. echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
  256. echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
  257. echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
  258. echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
  259. echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
  260. echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
  261. echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
  262. echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
  263. echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
  264. echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
  265. echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
  266. echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
  267. echo 1 > /sys/devices/system/cpu/cpu0/online
  268. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  269. echo "19000 1094400:39000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  270. echo 85 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  271. echo 20000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
  272. echo 1094400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  273. echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
  274. echo "1 960000:85 1094400:90" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  275. echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  276. echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  277. # Enable sched guided freq control
  278. echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_sched_load
  279. echo 1 > /sys/devices/system/cpu/cpufreq/interactive/use_migration_notif
  280. echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
  281. echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
  282. }
  283. function 8937_sched_dcvs_hmp()
  284. {
  285. # HMP scheduler settings
  286. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  287. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  288. # HMP Task packing settings
  289. echo 20 > /proc/sys/kernel/sched_small_task
  290. echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
  291. echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
  292. echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
  293. echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
  294. echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load
  295. echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load
  296. echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load
  297. echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load
  298. echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
  299. echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
  300. echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
  301. echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
  302. echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run
  303. echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run
  304. echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run
  305. echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run
  306. echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
  307. echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
  308. echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
  309. echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
  310. echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle
  311. echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle
  312. echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle
  313. echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle
  314. # enable governor for perf cluster
  315. echo 1 > /sys/devices/system/cpu/cpu0/online
  316. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  317. echo "19000 1094400:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  318. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  319. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  320. echo 1094400 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  321. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  322. echo "1 960000:85 1094400:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  323. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  324. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor
  325. # enable governor for power cluster
  326. echo 1 > /sys/devices/system/cpu/cpu4/online
  327. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  328. echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  329. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  330. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  331. echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  332. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  333. echo "1 768000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  334. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  335. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
  336. # Enable sched guided freq control
  337. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  338. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  339. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  340. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  341. echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
  342. echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
  343. }
  344. function sdm660_sched_interactive_dcvs() {
  345. echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us
  346. echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
  347. echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
  348. echo 5 > /proc/sys/kernel/sched_spill_nr_run
  349. echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill
  350. echo 100000 > /proc/sys/kernel/sched_short_burst_ns
  351. echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker
  352. echo 20 > /proc/sys/kernel/sched_small_wakee_task_load
  353. # disable thermal bcl hotplug to switch governor
  354. echo 0 > /sys/module/msm_thermal/core_control/enabled
  355. # online CPU0
  356. echo 1 > /sys/devices/system/cpu/cpu0/online
  357. # configure governor settings for little cluster
  358. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  359. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  360. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  361. echo "19000 1401600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  362. echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  363. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  364. echo 1401600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  365. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  366. echo "85 1747200:95" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  367. echo 39000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  368. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
  369. echo 633600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  370. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif
  371. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/fast_ramp_down
  372. # online CPU4
  373. echo 1 > /sys/devices/system/cpu/cpu4/online
  374. # configure governor settings for big cluster
  375. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  376. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  377. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  378. echo "19000 1401600:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  379. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  380. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  381. echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  382. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  383. echo "85 1401600:90 2150400:95" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  384. echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  385. echo 59000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
  386. echo 1113600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  387. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif
  388. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/fast_ramp_down
  389. # bring all cores online
  390. echo 1 > /sys/devices/system/cpu/cpu0/online
  391. echo 1 > /sys/devices/system/cpu/cpu1/online
  392. echo 1 > /sys/devices/system/cpu/cpu2/online
  393. echo 1 > /sys/devices/system/cpu/cpu3/online
  394. echo 1 > /sys/devices/system/cpu/cpu4/online
  395. echo 1 > /sys/devices/system/cpu/cpu5/online
  396. echo 1 > /sys/devices/system/cpu/cpu6/online
  397. echo 1 > /sys/devices/system/cpu/cpu7/online
  398. # configure LPM
  399. echo N > /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled
  400. echo N > /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled
  401. echo N > /sys/module/lpm_levels/system/pwr/cpu2/ret/idle_enabled
  402. echo N > /sys/module/lpm_levels/system/pwr/cpu3/ret/idle_enabled
  403. echo N > /sys/module/lpm_levels/system/perf/cpu4/ret/idle_enabled
  404. echo N > /sys/module/lpm_levels/system/perf/cpu5/ret/idle_enabled
  405. echo N > /sys/module/lpm_levels/system/perf/cpu6/ret/idle_enabled
  406. echo N > /sys/module/lpm_levels/system/perf/cpu7/ret/idle_enabled
  407. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled
  408. echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled
  409. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-ret/idle_enabled
  410. echo N > /sys/module/lpm_levels/system/perf/perf-l2-ret/idle_enabled
  411. # re-enable thermal and BCL hotplug
  412. echo 1 > /sys/module/msm_thermal/core_control/enabled
  413. # Enable bus-dcvs
  414. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  415. do
  416. echo "bw_hwmon" > $cpubw/governor
  417. echo 50 > $cpubw/polling_interval
  418. echo 762 > $cpubw/min_freq
  419. echo "1525 3143 5859 7759 9887 10327 11863 13763" > $cpubw/bw_hwmon/mbps_zones
  420. echo 4 > $cpubw/bw_hwmon/sample_ms
  421. echo 85 > $cpubw/bw_hwmon/io_percent
  422. echo 100 > $cpubw/bw_hwmon/decay_rate
  423. echo 50 > $cpubw/bw_hwmon/bw_step
  424. echo 20 > $cpubw/bw_hwmon/hist_memory
  425. echo 0 > $cpubw/bw_hwmon/hyst_length
  426. echo 80 > $cpubw/bw_hwmon/down_thres
  427. echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps
  428. echo 34 > $cpubw/bw_hwmon/low_power_io_percent
  429. echo 20 > $cpubw/bw_hwmon/low_power_delay
  430. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  431. echo 250 > $cpubw/bw_hwmon/up_scale
  432. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  433. done
  434. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  435. do
  436. echo "mem_latency" > $memlat/governor
  437. echo 10 > $memlat/polling_interval
  438. echo 400 > $memlat/mem_latency/ratio_ceil
  439. done
  440. echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  441. }
  442. function sdm660_sched_schedutil_dcvs() {
  443. if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
  444. # configure governor settings for little cluster
  445. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
  446. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us
  447. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us
  448. echo 1401600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
  449. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
  450. echo 633600 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
  451. echo 902400 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq
  452. # configure governor settings for big cluster
  453. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
  454. echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us
  455. echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us
  456. echo 1401600 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq
  457. echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl
  458. echo 1113600 > /sys/devices/system/cpu/cpufreq/policy4/scaling_min_freq
  459. echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/rtg_boost_freq
  460. else
  461. # configure governor settings for little cluster
  462. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  463. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  464. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  465. echo 1401600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  466. # configure governor settings for big cluster
  467. echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  468. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us
  469. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us
  470. echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
  471. fi
  472. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  473. #if the kernel version >=4.19,set input_boost_freq accordingly
  474. if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
  475. echo "0:1401600" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
  476. echo 40 > /sys/devices/system/cpu/cpu_boost/input_boost_ms
  477. else
  478. echo "0:1401600" > /sys/module/cpu_boost/parameters/input_boost_freq
  479. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  480. fi
  481. # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
  482. echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
  483. echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
  484. echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
  485. echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
  486. echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost
  487. echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost
  488. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  489. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  490. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
  491. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
  492. # Enable bus-dcvs
  493. for device in /sys/devices/platform/soc
  494. do
  495. for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw
  496. do
  497. echo "bw_hwmon" > $cpubw/governor
  498. echo 50 > $cpubw/polling_interval
  499. echo 762 > $cpubw/min_freq
  500. echo "1525 3143 5859 7759 9887 10327 11863 13763" > $cpubw/bw_hwmon/mbps_zones
  501. echo 4 > $cpubw/bw_hwmon/sample_ms
  502. echo 85 > $cpubw/bw_hwmon/io_percent
  503. echo 100 > $cpubw/bw_hwmon/decay_rate
  504. echo 50 > $cpubw/bw_hwmon/bw_step
  505. echo 20 > $cpubw/bw_hwmon/hist_memory
  506. echo 0 > $cpubw/bw_hwmon/hyst_length
  507. echo 80 > $cpubw/bw_hwmon/down_thres
  508. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  509. echo 250 > $cpubw/bw_hwmon/up_scale
  510. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  511. done
  512. if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -le 14 ]; then
  513. for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
  514. do
  515. echo "mem_latency" > $memlat/governor
  516. echo 10 > $memlat/polling_interval
  517. echo 400 > $memlat/mem_latency/ratio_ceil
  518. done
  519. for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
  520. do
  521. echo "compute" > $latfloor/governor
  522. echo 10 > $latfloor/polling_interval
  523. done
  524. fi
  525. done
  526. if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 19 ]; then
  527. # memlat specific settings are moved to seperate file under
  528. # device/target specific folder
  529. setprop vendor.dcvs.prop 1
  530. fi
  531. }
  532. target=`getprop ro.board.platform`
  533. KernelVersionStr=`cat /proc/sys/kernel/osrelease`
  534. KernelVersionS=${KernelVersionStr:2:2}
  535. KernelVersionA=${KernelVersionStr:0:1}
  536. KernelVersionB=${KernelVersionS%.*}
  537. function configure_zram_parameters() {
  538. MemTotalStr=`cat /proc/meminfo | grep MemTotal`
  539. MemTotal=${MemTotalStr:16:8}
  540. low_ram=`getprop ro.config.low_ram`
  541. # Zram disk - 75% for Go devices.
  542. # For 512MB Go device, size = 384MB, set same for Non-Go.
  543. # For 1GB Go device, size = 768MB, set same for Non-Go.
  544. # For 2GB Go device, size = 1536MB, set same for Non-Go.
  545. # For >2GB Non-Go devices, size = 50% of RAM size. Limit the size to 4GB.
  546. # And enable lz4 zram compression for Go targets.
  547. let RamSizeGB="( $MemTotal / 1048576 ) + 1"
  548. diskSizeUnit=M
  549. if [ $RamSizeGB -le 2 ]; then
  550. let zRamSizeMB="( $RamSizeGB * 1024 ) * 3 / 4"
  551. else
  552. let zRamSizeMB="( $RamSizeGB * 1024 ) / 2"
  553. fi
  554. # use MB avoid 32 bit overflow
  555. if [ $zRamSizeMB -gt 4096 ]; then
  556. let zRamSizeMB=4096
  557. fi
  558. if [ "$low_ram" == "true" ]; then
  559. echo lz4 > /sys/block/zram0/comp_algorithm
  560. fi
  561. if [ -f /sys/block/zram0/disksize ]; then
  562. if [ -f /sys/block/zram0/use_dedup ]; then
  563. echo 1 > /sys/block/zram0/use_dedup
  564. fi
  565. echo "$zRamSizeMB""$diskSizeUnit" > /sys/block/zram0/disksize
  566. # ZRAM may use more memory than it saves if SLAB_STORE_USER
  567. # debug option is enabled.
  568. if [ -e /sys/kernel/slab/zs_handle ]; then
  569. echo 0 > /sys/kernel/slab/zs_handle/store_user
  570. fi
  571. if [ -e /sys/kernel/slab/zspage ]; then
  572. echo 0 > /sys/kernel/slab/zspage/store_user
  573. fi
  574. mkswap /dev/block/zram0
  575. swapon /dev/block/zram0 -p 32758
  576. fi
  577. }
  578. function configure_read_ahead_kb_values() {
  579. MemTotalStr=`cat /proc/meminfo | grep MemTotal`
  580. MemTotal=${MemTotalStr:16:8}
  581. dmpts=$(ls /sys/block/*/queue/read_ahead_kb | grep -e dm -e mmc)
  582. # Set 128 for <= 3GB &
  583. # set 512 for >= 4GB targets.
  584. if [ $MemTotal -le 3145728 ]; then
  585. echo 128 > /sys/block/mmcblk0/bdi/read_ahead_kb
  586. echo 128 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb
  587. for dm in $dmpts; do
  588. echo 128 > $dm
  589. done
  590. else
  591. echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb
  592. echo 512 > /sys/block/mmcblk0rpmb/bdi/read_ahead_kb
  593. for dm in $dmpts; do
  594. echo 512 > $dm
  595. done
  596. fi
  597. }
  598. function disable_core_ctl() {
  599. if [ -f /sys/devices/system/cpu/cpu0/core_ctl/enable ]; then
  600. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
  601. else
  602. echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/disable
  603. fi
  604. }
  605. function enable_swap() {
  606. MemTotalStr=`cat /proc/meminfo | grep MemTotal`
  607. MemTotal=${MemTotalStr:16:8}
  608. SWAP_ENABLE_THRESHOLD=1048576
  609. swap_enable=`getprop ro.vendor.qti.config.swap`
  610. # Enable swap initially only for 1 GB targets
  611. if [ "$MemTotal" -le "$SWAP_ENABLE_THRESHOLD" ] && [ "$swap_enable" == "true" ]; then
  612. # Static swiftness
  613. echo 1 > /proc/sys/vm/swap_ratio_enable
  614. echo 70 > /proc/sys/vm/swap_ratio
  615. # Swap disk - 200MB size
  616. if [ ! -f /data/vendor/swap/swapfile ]; then
  617. dd if=/dev/zero of=/data/vendor/swap/swapfile bs=1m count=200
  618. fi
  619. mkswap /data/vendor/swap/swapfile
  620. swapon /data/vendor/swap/swapfile -p 32758
  621. fi
  622. }
  623. function configure_memory_parameters() {
  624. # Set Memory parameters.
  625. #
  626. # Set per_process_reclaim tuning parameters
  627. # All targets will use vmpressure range 50-70,
  628. # All targets will use 512 pages swap size.
  629. #
  630. # Set Low memory killer minfree parameters
  631. # 32 bit Non-Go, all memory configurations will use 15K series
  632. # 32 bit Go, all memory configurations will use uLMK + Memcg
  633. # 64 bit will use Google default LMK series.
  634. #
  635. # Set ALMK parameters (usually above the highest minfree values)
  636. # vmpressure_file_min threshold is always set slightly higher
  637. # than LMK minfree's last bin value for all targets. It is calculated as
  638. # vmpressure_file_min = (last bin - second last bin ) + last bin
  639. #
  640. # Set allocstall_threshold to 0 for all targets.
  641. #
  642. ProductName=`getprop ro.product.name`
  643. low_ram=`getprop ro.config.low_ram`
  644. if [ "$ProductName" == "msmnile" ] || [ "$ProductName" == "kona" ] || [ "$ProductName" == "sdmshrike_au" ]; then
  645. # Enable ZRAM
  646. configure_zram_parameters
  647. configure_read_ahead_kb_values
  648. echo 0 > /proc/sys/vm/page-cluster
  649. echo 100 > /proc/sys/vm/swappiness
  650. else
  651. arch_type=`uname -m`
  652. # Set parameters for 32-bit Go targets.
  653. if [ "$low_ram" == "true" ]; then
  654. # Disable KLMK, ALMK, PPR & Core Control for Go devices
  655. echo 0 > /sys/module/lowmemorykiller/parameters/enable_lmk
  656. echo 0 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk
  657. echo 0 > /sys/module/process_reclaim/parameters/enable_process_reclaim
  658. disable_core_ctl
  659. # Enable oom_reaper for Go devices
  660. if [ -f /proc/sys/vm/reap_mem_on_sigkill ]; then
  661. echo 1 > /proc/sys/vm/reap_mem_on_sigkill
  662. fi
  663. else
  664. # Read adj series and set adj threshold for PPR and ALMK.
  665. # This is required since adj values change from framework to framework.
  666. adj_series=`cat /sys/module/lowmemorykiller/parameters/adj`
  667. adj_1="${adj_series#*,}"
  668. set_almk_ppr_adj="${adj_1%%,*}"
  669. # PPR and ALMK should not act on HOME adj and below.
  670. # Normalized ADJ for HOME is 6. Hence multiply by 6
  671. # ADJ score represented as INT in LMK params, actual score can be in decimal
  672. # Hence add 6 considering a worst case of 0.9 conversion to INT (0.9*6).
  673. # For uLMK + Memcg, this will be set as 6 since adj is zero.
  674. set_almk_ppr_adj=$(((set_almk_ppr_adj * 6) + 6))
  675. echo $set_almk_ppr_adj > /sys/module/lowmemorykiller/parameters/adj_max_shift
  676. # Calculate vmpressure_file_min as below & set for 64 bit:
  677. # vmpressure_file_min = last_lmk_bin + (last_lmk_bin - last_but_one_lmk_bin)
  678. if [ "$arch_type" == "aarch64" ]; then
  679. minfree_series=`cat /sys/module/lowmemorykiller/parameters/minfree`
  680. minfree_1="${minfree_series#*,}" ; rem_minfree_1="${minfree_1%%,*}"
  681. minfree_2="${minfree_1#*,}" ; rem_minfree_2="${minfree_2%%,*}"
  682. minfree_3="${minfree_2#*,}" ; rem_minfree_3="${minfree_3%%,*}"
  683. minfree_4="${minfree_3#*,}" ; rem_minfree_4="${minfree_4%%,*}"
  684. minfree_5="${minfree_4#*,}"
  685. vmpres_file_min=$((minfree_5 + (minfree_5 - rem_minfree_4)))
  686. echo $vmpres_file_min > /sys/module/lowmemorykiller/parameters/vmpressure_file_min
  687. else
  688. # Set LMK series, vmpressure_file_min for 32 bit non-go targets.
  689. # Disable Core Control, enable KLMK for non-go 8909.
  690. if [ "$ProductName" == "msm8909" ]; then
  691. disable_core_ctl
  692. echo 1 > /sys/module/lowmemorykiller/parameters/enable_lmk
  693. fi
  694. echo "15360,19200,23040,26880,34415,43737" > /sys/module/lowmemorykiller/parameters/minfree
  695. echo 53059 > /sys/module/lowmemorykiller/parameters/vmpressure_file_min
  696. fi
  697. # Enable adaptive LMK for all targets &
  698. # use Google default LMK series for all 64-bit targets >=2GB.
  699. echo 1 > /sys/module/lowmemorykiller/parameters/enable_adaptive_lmk
  700. # Enable oom_reaper
  701. if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then
  702. echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper
  703. fi
  704. if [[ "$ProductName" != "bengal"* ]]; then
  705. #bengal has appcompaction enabled. So not needed
  706. # Set PPR parameters for other targets
  707. if [ -f /sys/devices/soc0/soc_id ]; then
  708. soc_id=`cat /sys/devices/soc0/soc_id`
  709. else
  710. soc_id=`cat /sys/devices/system/soc/soc0/id`
  711. fi
  712. case "$soc_id" in
  713. # Do not set PPR parameters for premium targets
  714. # sdm845 - 321, 341
  715. # msm8998 - 292, 319
  716. # msm8996 - 246, 291, 305, 312
  717. "321" | "341" | "292" | "319" | "246" | "291" | "305" | "312")
  718. ;;
  719. *)
  720. #Set PPR parameters for all other targets.
  721. echo $set_almk_ppr_adj > /sys/module/process_reclaim/parameters/min_score_adj
  722. echo 1 > /sys/module/process_reclaim/parameters/enable_process_reclaim
  723. echo 50 > /sys/module/process_reclaim/parameters/pressure_min
  724. echo 70 > /sys/module/process_reclaim/parameters/pressure_max
  725. echo 30 > /sys/module/process_reclaim/parameters/swap_opt_eff
  726. echo 512 > /sys/module/process_reclaim/parameters/per_swap_size
  727. ;;
  728. esac
  729. fi
  730. fi
  731. if [[ "$ProductName" == "bengal"* ]]; then
  732. #Set PPR nomap parameters for bengal targets
  733. echo 1 > /sys/module/process_reclaim/parameters/enable_process_reclaim
  734. echo 50 > /sys/module/process_reclaim/parameters/pressure_min
  735. echo 70 > /sys/module/process_reclaim/parameters/pressure_max
  736. echo 30 > /sys/module/process_reclaim/parameters/swap_opt_eff
  737. echo 0 > /sys/module/process_reclaim/parameters/per_swap_size
  738. echo 7680 > /sys/module/process_reclaim/parameters/tsk_nomap_swap_sz
  739. fi
  740. # Set allocstall_threshold to 0 for all targets.
  741. # Set swappiness to 100 for all targets
  742. echo 0 > /sys/module/vmpressure/parameters/allocstall_threshold
  743. echo 100 > /proc/sys/vm/swappiness
  744. # Disable wsf for all targets beacause we are using efk.
  745. # wsf Range : 1..1000 So set to bare minimum value 1.
  746. echo 1 > /proc/sys/vm/watermark_scale_factor
  747. configure_zram_parameters
  748. configure_read_ahead_kb_values
  749. enable_swap
  750. fi
  751. }
  752. function enable_memory_features()
  753. {
  754. MemTotalStr=`cat /proc/meminfo | grep MemTotal`
  755. MemTotal=${MemTotalStr:16:8}
  756. if [ $MemTotal -le 2097152 ]; then
  757. #Enable B service adj transition for 2GB or less memory
  758. setprop ro.vendor.qti.sys.fw.bservice_enable true
  759. setprop ro.vendor.qti.sys.fw.bservice_limit 5
  760. setprop ro.vendor.qti.sys.fw.bservice_age 5000
  761. #Enable Delay Service Restart
  762. setprop ro.vendor.qti.am.reschedule_service true
  763. fi
  764. }
  765. function start_hbtp()
  766. {
  767. # Start the Host based Touch processing but not in the power off mode.
  768. bootmode=`getprop ro.bootmode`
  769. if [ "charger" != $bootmode ]; then
  770. start vendor.hbtp
  771. fi
  772. }
  773. case "$target" in
  774. "parrot")
  775. if [ -f /sys/devices/soc0/chip_family ]; then
  776. chip_family_id=`cat /sys/devices/soc0/chip_family`
  777. else
  778. chip_family_id=-1
  779. fi
  780. echo "adsprpc : chip_family_id : $chip_faily_id" > /dev/kmsg
  781. case "$chip_family_id" in
  782. "0x84")
  783. if [ -f /sys/devices/platform/soc/soc:qcom,msm_fastrpc/fastrpc_cdsp_status ]; then
  784. fastrpc_cdsp_status=`cat /sys/devices/platform/soc/soc:qcom,msm_fastrpc/fastrpc_cdsp_status`
  785. else
  786. fastrpc_cdsp_status=-1
  787. fi
  788. echo "adsprpc : fastrpc_cdsp_status : $fastrpc_cdsp_status" > /dev/kmsg
  789. if [ $fastrpc_cdsp_status -eq 0 ]; then
  790. setprop vendor.fastrpc.disable.cdsprpcd.daemon 1
  791. echo "adsprpc : Disabled cdsp daemon" > /dev/kmsg
  792. fi
  793. esac
  794. ;;
  795. esac
  796. case "$target" in
  797. "msm7201a_ffa" | "msm7201a_surf" | "msm7627_ffa" | "msm7627_6x" | "msm7627a" | "msm7627_surf" | \
  798. "qsd8250_surf" | "qsd8250_ffa" | "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "qsd8650a_st1x")
  799. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  800. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  801. ;;
  802. esac
  803. case "$target" in
  804. "msm7201a_ffa" | "msm7201a_surf")
  805. echo 500000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  806. ;;
  807. esac
  808. case "$target" in
  809. "msm7630_surf" | "msm7630_1x" | "msm7630_fusion")
  810. echo 75000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  811. echo 1 > /sys/module/pm2/parameters/idle_sleep_mode
  812. ;;
  813. esac
  814. case "$target" in
  815. "msm7201a_ffa" | "msm7201a_surf" | "msm7627_ffa" | "msm7627_6x" | "msm7627_surf" | "msm7630_surf" | "msm7630_1x" | "msm7630_fusion" | "msm7627a" )
  816. echo 245760 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  817. ;;
  818. esac
  819. case "$target" in
  820. "msm8660")
  821. echo 1 > /sys/module/rpm_resources/enable_low_power/L2_cache
  822. echo 1 > /sys/module/rpm_resources/enable_low_power/pxo
  823. echo 2 > /sys/module/rpm_resources/enable_low_power/vdd_dig
  824. echo 2 > /sys/module/rpm_resources/enable_low_power/vdd_mem
  825. echo 1 > /sys/module/rpm_resources/enable_low_power/rpm_cpu
  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/cpu0/standalone_power_collapse/suspend_enabled
  829. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  830. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  831. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
  832. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  833. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  834. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  835. echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
  836. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  837. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  838. echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  839. echo 4 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  840. echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  841. echo 384000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  842. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  843. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  844. chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
  845. chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  846. chown -h root.system /sys/devices/system/cpu/mfreq
  847. chmod -h 220 /sys/devices/system/cpu/mfreq
  848. chown -h root.system /sys/devices/system/cpu/cpu1/online
  849. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  850. ;;
  851. esac
  852. case "$target" in
  853. "msm8960")
  854. echo 1 > /sys/module/rpm_resources/enable_low_power/L2_cache
  855. echo 1 > /sys/module/rpm_resources/enable_low_power/pxo
  856. echo 1 > /sys/module/rpm_resources/enable_low_power/vdd_dig
  857. echo 1 > /sys/module/rpm_resources/enable_low_power/vdd_mem
  858. echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled
  859. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  860. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  861. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
  862. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
  863. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  864. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  865. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
  866. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
  867. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  868. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  869. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
  870. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
  871. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  872. echo 0 > /sys/module/msm_thermal/core_control/enabled
  873. echo 1 > /sys/devices/system/cpu/cpu1/online
  874. echo 1 > /sys/devices/system/cpu/cpu2/online
  875. echo 1 > /sys/devices/system/cpu/cpu3/online
  876. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  877. echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
  878. echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
  879. echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
  880. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  881. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  882. echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  883. echo 4 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  884. echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
  885. echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
  886. echo 3 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
  887. echo 918000 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
  888. echo 1026000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
  889. echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
  890. chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  891. chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  892. chown -h system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  893. echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  894. echo 384000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  895. echo 384000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  896. echo 384000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  897. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  898. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  899. chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
  900. chown -h system /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  901. chown -h system /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
  902. chown -h system /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  903. chown -h system /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
  904. chown -h system /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  905. echo 1 > /sys/module/msm_thermal/core_control/enabled
  906. chown -h root.system /sys/devices/system/cpu/mfreq
  907. chmod -h 220 /sys/devices/system/cpu/mfreq
  908. chown -h root.system /sys/devices/system/cpu/cpu1/online
  909. chown -h root.system /sys/devices/system/cpu/cpu2/online
  910. chown -h root.system /sys/devices/system/cpu/cpu3/online
  911. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  912. chmod -h 664 /sys/devices/system/cpu/cpu2/online
  913. chmod -h 664 /sys/devices/system/cpu/cpu3/online
  914. # set DCVS parameters for CPU
  915. echo 40000 > /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us
  916. echo 40000 > /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us
  917. echo 100000 > /sys/module/msm_dcvs/cores/cpu0/em_win_size_min_us
  918. echo 500000 > /sys/module/msm_dcvs/cores/cpu0/em_win_size_max_us
  919. echo 0 > /sys/module/msm_dcvs/cores/cpu0/slack_mode_dynamic
  920. echo 1000000 > /sys/module/msm_dcvs/cores/cpu0/disable_pc_threshold
  921. echo 25000 > /sys/module/msm_dcvs/cores/cpu1/slack_time_max_us
  922. echo 25000 > /sys/module/msm_dcvs/cores/cpu1/slack_time_min_us
  923. echo 100000 > /sys/module/msm_dcvs/cores/cpu1/em_win_size_min_us
  924. echo 500000 > /sys/module/msm_dcvs/cores/cpu1/em_win_size_max_us
  925. echo 0 > /sys/module/msm_dcvs/cores/cpu1/slack_mode_dynamic
  926. echo 1000000 > /sys/module/msm_dcvs/cores/cpu1/disable_pc_threshold
  927. echo 25000 > /sys/module/msm_dcvs/cores/cpu2/slack_time_max_us
  928. echo 25000 > /sys/module/msm_dcvs/cores/cpu2/slack_time_min_us
  929. echo 100000 > /sys/module/msm_dcvs/cores/cpu2/em_win_size_min_us
  930. echo 500000 > /sys/module/msm_dcvs/cores/cpu2/em_win_size_max_us
  931. echo 0 > /sys/module/msm_dcvs/cores/cpu2/slack_mode_dynamic
  932. echo 1000000 > /sys/module/msm_dcvs/cores/cpu2/disable_pc_threshold
  933. echo 25000 > /sys/module/msm_dcvs/cores/cpu3/slack_time_max_us
  934. echo 25000 > /sys/module/msm_dcvs/cores/cpu3/slack_time_min_us
  935. echo 100000 > /sys/module/msm_dcvs/cores/cpu3/em_win_size_min_us
  936. echo 500000 > /sys/module/msm_dcvs/cores/cpu3/em_win_size_max_us
  937. echo 0 > /sys/module/msm_dcvs/cores/cpu3/slack_mode_dynamic
  938. echo 1000000 > /sys/module/msm_dcvs/cores/cpu3/disable_pc_threshold
  939. # set DCVS parameters for GPU
  940. echo 20000 > /sys/module/msm_dcvs/cores/gpu0/slack_time_max_us
  941. echo 20000 > /sys/module/msm_dcvs/cores/gpu0/slack_time_min_us
  942. echo 0 > /sys/module/msm_dcvs/cores/gpu0/slack_mode_dynamic
  943. # set msm_mpdecision parameters
  944. echo 45000 > /sys/module/msm_mpdecision/slack_time_max_us
  945. echo 15000 > /sys/module/msm_mpdecision/slack_time_min_us
  946. echo 100000 > /sys/module/msm_mpdecision/em_win_size_min_us
  947. echo 1000000 > /sys/module/msm_mpdecision/em_win_size_max_us
  948. echo 3 > /sys/module/msm_mpdecision/online_util_pct_min
  949. echo 25 > /sys/module/msm_mpdecision/online_util_pct_max
  950. echo 97 > /sys/module/msm_mpdecision/em_max_util_pct
  951. echo 2 > /sys/module/msm_mpdecision/rq_avg_poll_ms
  952. echo 10 > /sys/module/msm_mpdecision/mp_em_rounding_point_min
  953. echo 85 > /sys/module/msm_mpdecision/mp_em_rounding_point_max
  954. echo 50 > /sys/module/msm_mpdecision/iowait_threshold_pct
  955. #set permissions for the nodes needed by display on/off hook
  956. chown -h system /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us
  957. chown -h system /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us
  958. chown -h system /sys/module/msm_mpdecision/slack_time_max_us
  959. chown -h system /sys/module/msm_mpdecision/slack_time_min_us
  960. chmod -h 664 /sys/module/msm_dcvs/cores/cpu0/slack_time_max_us
  961. chmod -h 664 /sys/module/msm_dcvs/cores/cpu0/slack_time_min_us
  962. chmod -h 664 /sys/module/msm_mpdecision/slack_time_max_us
  963. chmod -h 664 /sys/module/msm_mpdecision/slack_time_min_us
  964. if [ -f /sys/devices/soc0/soc_id ]; then
  965. soc_id=`cat /sys/devices/soc0/soc_id`
  966. else
  967. soc_id=`cat /sys/devices/system/soc/soc0/id`
  968. fi
  969. case "$soc_id" in
  970. "130")
  971. echo 230 > /sys/class/gpio/export
  972. echo 228 > /sys/class/gpio/export
  973. echo 229 > /sys/class/gpio/export
  974. echo "in" > /sys/class/gpio/gpio230/direction
  975. echo "rising" > /sys/class/gpio/gpio230/edge
  976. echo "in" > /sys/class/gpio/gpio228/direction
  977. echo "rising" > /sys/class/gpio/gpio228/edge
  978. echo "in" > /sys/class/gpio/gpio229/direction
  979. echo "rising" > /sys/class/gpio/gpio229/edge
  980. echo 253 > /sys/class/gpio/export
  981. echo 254 > /sys/class/gpio/export
  982. echo 257 > /sys/class/gpio/export
  983. echo 258 > /sys/class/gpio/export
  984. echo 259 > /sys/class/gpio/export
  985. echo "out" > /sys/class/gpio/gpio253/direction
  986. echo "out" > /sys/class/gpio/gpio254/direction
  987. echo "out" > /sys/class/gpio/gpio257/direction
  988. echo "out" > /sys/class/gpio/gpio258/direction
  989. echo "out" > /sys/class/gpio/gpio259/direction
  990. chown -h media /sys/class/gpio/gpio253/value
  991. chown -h media /sys/class/gpio/gpio254/value
  992. chown -h media /sys/class/gpio/gpio257/value
  993. chown -h media /sys/class/gpio/gpio258/value
  994. chown -h media /sys/class/gpio/gpio259/value
  995. chown -h media /sys/class/gpio/gpio253/direction
  996. chown -h media /sys/class/gpio/gpio254/direction
  997. chown -h media /sys/class/gpio/gpio257/direction
  998. chown -h media /sys/class/gpio/gpio258/direction
  999. chown -h media /sys/class/gpio/gpio259/direction
  1000. echo 0 > /sys/module/rpm_resources/enable_low_power/vdd_dig
  1001. echo 0 > /sys/module/rpm_resources/enable_low_power/vdd_mem
  1002. ;;
  1003. esac
  1004. ;;
  1005. esac
  1006. case "$target" in
  1007. "msm8974")
  1008. echo 4 > /sys/module/lpm_levels/enable_low_power/l2
  1009. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  1010. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  1011. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
  1012. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
  1013. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  1014. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
  1015. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
  1016. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
  1017. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  1018. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  1019. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
  1020. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
  1021. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  1022. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  1023. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
  1024. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
  1025. echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled
  1026. echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled
  1027. echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled
  1028. echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled
  1029. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1030. echo 1 > /sys/devices/system/cpu/cpu1/online
  1031. echo 1 > /sys/devices/system/cpu/cpu2/online
  1032. echo 1 > /sys/devices/system/cpu/cpu3/online
  1033. if [ -f /sys/devices/soc0/soc_id ]; then
  1034. soc_id=`cat /sys/devices/soc0/soc_id`
  1035. else
  1036. soc_id=`cat /sys/devices/system/soc/soc0/id`
  1037. fi
  1038. case "$soc_id" in
  1039. "208" | "211" | "214" | "217" | "209" | "212" | "215" | "218" | "194" | "210" | "213" | "216")
  1040. for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor
  1041. do
  1042. echo "cpubw_hwmon" > $devfreq_gov
  1043. done
  1044. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1045. echo "interactive" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
  1046. echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
  1047. echo "interactive" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
  1048. echo "20000 1400000:40000 1700000:20000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  1049. echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  1050. echo 1190400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  1051. echo 1 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
  1052. echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  1053. echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  1054. echo 20 > /sys/module/cpu_boost/parameters/boost_ms
  1055. echo 1728000 > /sys/module/cpu_boost/parameters/sync_threshold
  1056. echo 100000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  1057. echo 1497600 > /sys/module/cpu_boost/parameters/input_boost_freq
  1058. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  1059. ;;
  1060. *)
  1061. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1062. echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
  1063. echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
  1064. echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
  1065. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  1066. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  1067. echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  1068. echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  1069. echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
  1070. echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
  1071. echo 3 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
  1072. echo 960000 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
  1073. echo 960000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
  1074. echo 1190400 > /sys/devices/system/cpu/cpufreq/ondemand/input_boost
  1075. echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
  1076. ;;
  1077. esac
  1078. echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1079. echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  1080. echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  1081. echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  1082. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  1083. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1084. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1085. chown -h root.system /sys/devices/system/cpu/mfreq
  1086. chmod -h 220 /sys/devices/system/cpu/mfreq
  1087. chown -h root.system /sys/devices/system/cpu/cpu1/online
  1088. chown -h root.system /sys/devices/system/cpu/cpu2/online
  1089. chown -h root.system /sys/devices/system/cpu/cpu3/online
  1090. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  1091. chmod -h 664 /sys/devices/system/cpu/cpu2/online
  1092. chmod -h 664 /sys/devices/system/cpu/cpu3/online
  1093. echo 1 > /dev/cpuctl/apps/cpu.notify_on_migrate
  1094. ;;
  1095. esac
  1096. case "$target" in
  1097. "msm8916")
  1098. if [ -f /sys/devices/soc0/soc_id ]; then
  1099. soc_id=`cat /sys/devices/soc0/soc_id`
  1100. else
  1101. soc_id=`cat /sys/devices/system/soc/soc0/id`
  1102. fi
  1103. case "$soc_id" in
  1104. "206")
  1105. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1106. echo 1 > /sys/devices/system/cpu/cpu1/online
  1107. echo 1 > /sys/devices/system/cpu/cpu2/online
  1108. echo 1 > /sys/devices/system/cpu/cpu3/online
  1109. echo 2 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus
  1110. ;;
  1111. "247" | "248" | "249" | "250")
  1112. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1113. echo 1 > /sys/devices/system/cpu/cpu1/online
  1114. echo 1 > /sys/devices/system/cpu/cpu2/online
  1115. echo 1 > /sys/devices/system/cpu/cpu3/online
  1116. ;;
  1117. "239" | "241" | "263")
  1118. if [ -f /sys/devices/soc0/revision ]; then
  1119. revision=`cat /sys/devices/soc0/revision`
  1120. else
  1121. revision=`cat /sys/devices/system/soc/soc0/revision`
  1122. fi
  1123. echo 10 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus
  1124. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  1125. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  1126. fi
  1127. if [ -f /sys/devices/soc0/hw_platform ]; then
  1128. hw_platform=`cat /sys/devices/soc0/hw_platform`
  1129. fi
  1130. case "$soc_id" in
  1131. "239")
  1132. case "$hw_platform" in
  1133. "Surf")
  1134. case "$platform_subtype_id" in
  1135. "1" | "2")
  1136. start_hbtp
  1137. ;;
  1138. esac
  1139. ;;
  1140. "MTP")
  1141. case "$platform_subtype_id" in
  1142. "3")
  1143. start_hbtp
  1144. ;;
  1145. esac
  1146. ;;
  1147. esac
  1148. ;;
  1149. esac
  1150. ;;
  1151. "268" | "269" | "270" | "271")
  1152. echo 10 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus
  1153. ;;
  1154. "233" | "240" | "242")
  1155. echo 1 > /sys/devices/system/cpu/cpu1/online
  1156. echo 1 > /sys/devices/system/cpu/cpu2/online
  1157. echo 1 > /sys/devices/system/cpu/cpu3/online
  1158. ;;
  1159. esac
  1160. ;;
  1161. esac
  1162. case "$target" in
  1163. "msm8226")
  1164. echo 4 > /sys/module/lpm_levels/enable_low_power/l2
  1165. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  1166. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  1167. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
  1168. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
  1169. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  1170. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  1171. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
  1172. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
  1173. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  1174. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  1175. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
  1176. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
  1177. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  1178. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
  1179. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
  1180. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
  1181. echo 1 > /sys/devices/system/cpu/cpu1/online
  1182. echo 1 > /sys/devices/system/cpu/cpu2/online
  1183. echo 1 > /sys/devices/system/cpu/cpu3/online
  1184. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1185. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  1186. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  1187. echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  1188. echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  1189. echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
  1190. echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
  1191. echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
  1192. echo 787200 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
  1193. echo 300000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
  1194. echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
  1195. echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1196. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  1197. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1198. chown -h root.system /sys/devices/system/cpu/cpu1/online
  1199. chown -h root.system /sys/devices/system/cpu/cpu2/online
  1200. chown -h root.system /sys/devices/system/cpu/cpu3/online
  1201. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  1202. chmod -h 664 /sys/devices/system/cpu/cpu2/online
  1203. chmod -h 664 /sys/devices/system/cpu/cpu3/online
  1204. ;;
  1205. esac
  1206. case "$target" in
  1207. "msm8610")
  1208. echo 4 > /sys/module/lpm_levels/enable_low_power/l2
  1209. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  1210. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  1211. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
  1212. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
  1213. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  1214. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  1215. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
  1216. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
  1217. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  1218. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  1219. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
  1220. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
  1221. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  1222. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
  1223. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
  1224. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
  1225. echo 1 > /sys/devices/system/cpu/cpu1/online
  1226. echo 1 > /sys/devices/system/cpu/cpu2/online
  1227. echo 1 > /sys/devices/system/cpu/cpu3/online
  1228. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1229. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  1230. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  1231. echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  1232. echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  1233. echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential
  1234. echo 70 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
  1235. echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
  1236. echo 787200 > /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
  1237. echo 300000 > /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
  1238. echo 80 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
  1239. echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1240. setprop ro.qualcomm.perf.min_freq 7
  1241. echo 1 > /sys/kernel/mm/ksm/deferred_timer
  1242. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  1243. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1244. chown -h root.system /sys/devices/system/cpu/cpu1/online
  1245. chown -h root.system /sys/devices/system/cpu/cpu2/online
  1246. chown -h root.system /sys/devices/system/cpu/cpu3/online
  1247. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  1248. chmod -h 664 /sys/devices/system/cpu/cpu2/online
  1249. chmod -h 664 /sys/devices/system/cpu/cpu3/online
  1250. ;;
  1251. esac
  1252. case "$target" in
  1253. "msm8916")
  1254. if [ -f /sys/devices/soc0/soc_id ]; then
  1255. soc_id=`cat /sys/devices/soc0/soc_id`
  1256. else
  1257. soc_id=`cat /sys/devices/system/soc/soc0/id`
  1258. fi
  1259. # HMP scheduler settings for 8916, 8936, 8939, 8929
  1260. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  1261. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  1262. # Apply governor settings for 8916
  1263. case "$soc_id" in
  1264. "206" | "247" | "248" | "249" | "250")
  1265. # HMP scheduler load tracking settings
  1266. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  1267. # HMP Task packing settings for 8916
  1268. echo 20 > /proc/sys/kernel/sched_small_task
  1269. echo 30 > /proc/sys/kernel/sched_mostly_idle_load
  1270. echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run
  1271. # disable thermal core_control to update scaling_min_freq
  1272. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1273. echo 1 > /sys/devices/system/cpu/cpu0/online
  1274. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1275. echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1276. # enable thermal core_control now
  1277. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1278. echo "25000 1094400:50000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  1279. echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  1280. echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
  1281. echo 998400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  1282. echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
  1283. echo "1 800000:85 998400:90 1094400:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  1284. echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  1285. echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  1286. # Bring up all cores online
  1287. echo 1 > /sys/devices/system/cpu/cpu1/online
  1288. echo 1 > /sys/devices/system/cpu/cpu2/online
  1289. echo 1 > /sys/devices/system/cpu/cpu3/online
  1290. echo 1 > /sys/devices/system/cpu/cpu4/online
  1291. ;;
  1292. esac
  1293. # Apply governor settings for 8936
  1294. case "$soc_id" in
  1295. "233" | "240" | "242")
  1296. # HMP scheduler load tracking settings
  1297. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  1298. # HMP Task packing settings for 8936
  1299. echo 50 > /proc/sys/kernel/sched_small_task
  1300. echo 50 > /proc/sys/kernel/sched_mostly_idle_load
  1301. echo 10 > /proc/sys/kernel/sched_mostly_idle_nr_run
  1302. # disable thermal core_control to update scaling_min_freq, interactive gov
  1303. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1304. echo 1 > /sys/devices/system/cpu/cpu0/online
  1305. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1306. echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1307. # enable thermal core_control now
  1308. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1309. echo "25000 1113600:50000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  1310. echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  1311. echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
  1312. echo 960000 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  1313. echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
  1314. echo "1 800000:85 1113600:90 1267200:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  1315. echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  1316. echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  1317. # Bring up all cores online
  1318. echo 1 > /sys/devices/system/cpu/cpu1/online
  1319. echo 1 > /sys/devices/system/cpu/cpu2/online
  1320. echo 1 > /sys/devices/system/cpu/cpu3/online
  1321. echo 1 > /sys/devices/system/cpu/cpu4/online
  1322. # Enable low power modes
  1323. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1324. for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent
  1325. do
  1326. echo 40 > $gpu_bimc_io_percent
  1327. done
  1328. ;;
  1329. esac
  1330. # Apply governor settings for 8939
  1331. case "$soc_id" in
  1332. "239" | "241" | "263" | "268" | "269" | "270" | "271")
  1333. if [ `cat /sys/devices/soc0/revision` != "3.0" ]; then
  1334. # Apply 1.0 and 2.0 specific Sched & Governor settings
  1335. # HMP scheduler load tracking settings
  1336. echo 5 > /proc/sys/kernel/sched_ravg_hist_size
  1337. # HMP Task packing settings for 8939, 8929
  1338. echo 20 > /proc/sys/kernel/sched_small_task
  1339. for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor
  1340. do
  1341. echo "cpufreq" > $devfreq_gov
  1342. done
  1343. for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
  1344. do
  1345. echo "bw_hwmon" > $devfreq_gov
  1346. for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent
  1347. do
  1348. echo 20 > $cpu_io_percent
  1349. done
  1350. done
  1351. for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent
  1352. do
  1353. echo 40 > $gpu_bimc_io_percent
  1354. done
  1355. # disable thermal core_control to update interactive gov settings
  1356. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1357. # enable governor for perf cluster
  1358. echo 1 > /sys/devices/system/cpu/cpu0/online
  1359. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1360. echo "20000 1113600:50000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  1361. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  1362. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  1363. echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  1364. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  1365. echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  1366. echo 50000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  1367. echo 50000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor
  1368. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1369. # enable governor for power cluster
  1370. echo 1 > /sys/devices/system/cpu/cpu4/online
  1371. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  1372. echo "25000 800000:50000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  1373. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  1374. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  1375. echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  1376. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  1377. echo "1 800000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  1378. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  1379. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
  1380. echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  1381. # enable thermal core_control now
  1382. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1383. # Bring up all cores online
  1384. echo 1 > /sys/devices/system/cpu/cpu1/online
  1385. echo 1 > /sys/devices/system/cpu/cpu2/online
  1386. echo 1 > /sys/devices/system/cpu/cpu3/online
  1387. echo 1 > /sys/devices/system/cpu/cpu4/online
  1388. echo 1 > /sys/devices/system/cpu/cpu5/online
  1389. echo 1 > /sys/devices/system/cpu/cpu6/online
  1390. echo 1 > /sys/devices/system/cpu/cpu7/online
  1391. # Enable low power modes
  1392. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1393. # HMP scheduler (big.Little cluster related) settings
  1394. echo 75 > /proc/sys/kernel/sched_upmigrate
  1395. echo 60 > /proc/sys/kernel/sched_downmigrate
  1396. # cpu idle load threshold
  1397. echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
  1398. echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
  1399. echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
  1400. echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
  1401. echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load
  1402. echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load
  1403. echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load
  1404. echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load
  1405. # cpu idle nr run threshold
  1406. echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
  1407. echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
  1408. echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
  1409. echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
  1410. echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run
  1411. echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run
  1412. echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run
  1413. echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run
  1414. else
  1415. # Apply 3.0 specific Sched & Governor settings
  1416. # HMP scheduler settings for 8939 V3.0
  1417. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  1418. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  1419. echo 20000000 > /proc/sys/kernel/sched_ravg_window
  1420. # HMP Task packing settings for 8939 V3.0
  1421. echo 20 > /proc/sys/kernel/sched_small_task
  1422. echo 30 > /proc/sys/kernel/sched_mostly_idle_load
  1423. echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run
  1424. echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
  1425. echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
  1426. echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
  1427. echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
  1428. echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle
  1429. echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle
  1430. echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle
  1431. echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle
  1432. for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor
  1433. do
  1434. echo "cpufreq" > $devfreq_gov
  1435. done
  1436. for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
  1437. do
  1438. echo "bw_hwmon" > $devfreq_gov
  1439. for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent
  1440. do
  1441. echo 20 > $cpu_io_percent
  1442. done
  1443. done
  1444. for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent
  1445. do
  1446. echo 40 > $gpu_bimc_io_percent
  1447. done
  1448. # disable thermal core_control to update interactive gov settings
  1449. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1450. # enable governor for perf cluster
  1451. echo 1 > /sys/devices/system/cpu/cpu0/online
  1452. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1453. echo "19000 1113600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  1454. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  1455. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  1456. echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  1457. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  1458. echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  1459. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  1460. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor
  1461. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1462. # enable governor for power cluster
  1463. echo 1 > /sys/devices/system/cpu/cpu4/online
  1464. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  1465. echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  1466. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  1467. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  1468. echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  1469. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  1470. echo "1 800000:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  1471. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  1472. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
  1473. echo 800000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  1474. # enable thermal core_control now
  1475. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1476. # Bring up all cores online
  1477. echo 1 > /sys/devices/system/cpu/cpu1/online
  1478. echo 1 > /sys/devices/system/cpu/cpu2/online
  1479. echo 1 > /sys/devices/system/cpu/cpu3/online
  1480. echo 1 > /sys/devices/system/cpu/cpu5/online
  1481. echo 1 > /sys/devices/system/cpu/cpu6/online
  1482. echo 1 > /sys/devices/system/cpu/cpu7/online
  1483. # Enable low power modes
  1484. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1485. # HMP scheduler (big.Little cluster related) settings
  1486. echo 93 > /proc/sys/kernel/sched_upmigrate
  1487. echo 83 > /proc/sys/kernel/sched_downmigrate
  1488. # Enable sched guided freq control
  1489. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  1490. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  1491. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  1492. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  1493. echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
  1494. echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
  1495. # Enable core control
  1496. # insmod /system/lib/modules/core_ctl.ko
  1497. echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  1498. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
  1499. echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  1500. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  1501. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  1502. case "$revision" in
  1503. "3.0")
  1504. # Enable dynamic clock gatin
  1505. echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating
  1506. ;;
  1507. esac
  1508. fi
  1509. ;;
  1510. esac
  1511. # Set Memory parameters
  1512. configure_memory_parameters
  1513. ;;
  1514. esac
  1515. case "$target" in
  1516. "msm8952")
  1517. if [ -f /sys/devices/soc0/soc_id ]; then
  1518. soc_id=`cat /sys/devices/soc0/soc_id`
  1519. else
  1520. soc_id=`cat /sys/devices/system/soc/soc0/id`
  1521. fi
  1522. case "$soc_id" in
  1523. "264" | "289")
  1524. # Apply Scheduler and Governor settings for 8952
  1525. # HMP scheduler settings
  1526. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  1527. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  1528. echo 20000000 > /proc/sys/kernel/sched_ravg_window
  1529. # HMP Task packing settings
  1530. echo 20 > /proc/sys/kernel/sched_small_task
  1531. echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
  1532. echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
  1533. echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
  1534. echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
  1535. echo 30 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load
  1536. echo 30 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load
  1537. echo 30 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load
  1538. echo 30 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load
  1539. echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
  1540. echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
  1541. echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
  1542. echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
  1543. echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run
  1544. echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run
  1545. echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run
  1546. echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run
  1547. echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
  1548. echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
  1549. echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
  1550. echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
  1551. echo 0 > /sys/devices/system/cpu/cpu4/sched_prefer_idle
  1552. echo 0 > /sys/devices/system/cpu/cpu5/sched_prefer_idle
  1553. echo 0 > /sys/devices/system/cpu/cpu6/sched_prefer_idle
  1554. echo 0 > /sys/devices/system/cpu/cpu7/sched_prefer_idle
  1555. echo 0 > /proc/sys/kernel/sched_boost
  1556. for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor
  1557. do
  1558. echo "cpufreq" > $devfreq_gov
  1559. done
  1560. for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
  1561. do
  1562. echo "bw_hwmon" > $devfreq_gov
  1563. for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent
  1564. do
  1565. echo 20 > $cpu_io_percent
  1566. done
  1567. for cpu_guard_band in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps
  1568. do
  1569. echo 30 > $cpu_guard_band
  1570. done
  1571. done
  1572. for gpu_bimc_io_percent in /sys/class/devfreq/qcom,gpubw*/bw_hwmon/io_percent
  1573. do
  1574. echo 40 > $gpu_bimc_io_percent
  1575. done
  1576. # disable thermal & BCL core_control to update interactive gov settings
  1577. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1578. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1579. do
  1580. echo -n disable > $mode
  1581. done
  1582. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1583. do
  1584. bcl_hotplug_mask=`cat $hotplug_mask`
  1585. echo 0 > $hotplug_mask
  1586. done
  1587. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  1588. do
  1589. bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
  1590. echo 0 > $hotplug_soc_mask
  1591. done
  1592. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1593. do
  1594. echo -n enable > $mode
  1595. done
  1596. # enable governor for perf cluster
  1597. echo 1 > /sys/devices/system/cpu/cpu0/online
  1598. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1599. echo "19000 1113600:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  1600. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  1601. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  1602. echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  1603. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  1604. echo "1 960000:85 1113600:90 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  1605. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  1606. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/sampling_down_factor
  1607. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1608. # enable governor for power cluster
  1609. echo 1 > /sys/devices/system/cpu/cpu4/online
  1610. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  1611. echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  1612. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  1613. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  1614. echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  1615. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  1616. echo "1 806400:90" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  1617. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  1618. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
  1619. echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  1620. # Bring up all cores online
  1621. echo 1 > /sys/devices/system/cpu/cpu1/online
  1622. echo 1 > /sys/devices/system/cpu/cpu2/online
  1623. echo 1 > /sys/devices/system/cpu/cpu3/online
  1624. echo 1 > /sys/devices/system/cpu/cpu4/online
  1625. echo 1 > /sys/devices/system/cpu/cpu5/online
  1626. echo 1 > /sys/devices/system/cpu/cpu6/online
  1627. echo 1 > /sys/devices/system/cpu/cpu7/online
  1628. # Enable Low power modes
  1629. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1630. # HMP scheduler (big.Little cluster related) settings
  1631. echo 93 > /proc/sys/kernel/sched_upmigrate
  1632. echo 83 > /proc/sys/kernel/sched_downmigrate
  1633. # Enable sched guided freq control
  1634. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  1635. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  1636. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  1637. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  1638. echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
  1639. echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
  1640. # Enable core control
  1641. echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  1642. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
  1643. echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  1644. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  1645. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  1646. echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  1647. # re-enable thermal & BCL core_control now
  1648. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1649. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1650. do
  1651. echo -n disable > $mode
  1652. done
  1653. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1654. do
  1655. echo $bcl_hotplug_mask > $hotplug_mask
  1656. done
  1657. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  1658. do
  1659. echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
  1660. done
  1661. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1662. do
  1663. echo -n enable > $mode
  1664. done
  1665. # Enable dynamic clock gating
  1666. echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating
  1667. # Enable timer migration to little cluster
  1668. echo 1 > /proc/sys/kernel/power_aware_timer_migration
  1669. # Set Memory parameters
  1670. configure_memory_parameters
  1671. ;;
  1672. *)
  1673. panel=`cat /sys/class/graphics/fb0/modes`
  1674. if [ "${panel:5:1}" == "x" ]; then
  1675. panel=${panel:2:3}
  1676. else
  1677. panel=${panel:2:4}
  1678. fi
  1679. # Apply Scheduler and Governor settings for 8976
  1680. # SoC IDs are 266, 274, 277, 278
  1681. # HMP scheduler (big.Little cluster related) settings
  1682. echo 95 > /proc/sys/kernel/sched_upmigrate
  1683. echo 85 > /proc/sys/kernel/sched_downmigrate
  1684. echo 2 > /proc/sys/kernel/sched_window_stats_policy
  1685. echo 5 > /proc/sys/kernel/sched_ravg_hist_size
  1686. echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
  1687. echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
  1688. echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
  1689. echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
  1690. echo 3 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_nr_run
  1691. echo 3 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_nr_run
  1692. echo 3 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_nr_run
  1693. echo 3 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_nr_run
  1694. for devfreq_gov in /sys/class/devfreq/*qcom,mincpubw*/governor
  1695. do
  1696. echo "cpufreq" > $devfreq_gov
  1697. done
  1698. for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
  1699. do
  1700. echo "bw_hwmon" > $devfreq_gov
  1701. for cpu_io_percent in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/io_percent
  1702. do
  1703. echo 20 > $cpu_io_percent
  1704. done
  1705. for cpu_guard_band in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps
  1706. do
  1707. echo 30 > $cpu_guard_band
  1708. done
  1709. done
  1710. for gpu_bimc_io_percent in /sys/class/devfreq/qcom,gpubw*/bw_hwmon/io_percent
  1711. do
  1712. echo 40 > $gpu_bimc_io_percent
  1713. done
  1714. # disable thermal & BCL core_control to update interactive gov settings
  1715. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1716. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1717. do
  1718. echo -n disable > $mode
  1719. done
  1720. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1721. do
  1722. bcl_hotplug_mask=`cat $hotplug_mask`
  1723. echo 0 > $hotplug_mask
  1724. done
  1725. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  1726. do
  1727. bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
  1728. echo 0 > $hotplug_soc_mask
  1729. done
  1730. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1731. do
  1732. echo -n enable > $mode
  1733. done
  1734. # enable governor for power cluster
  1735. echo 1 > /sys/devices/system/cpu/cpu0/online
  1736. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  1737. echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  1738. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  1739. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  1740. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  1741. echo 691200 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1742. # enable governor for perf cluster
  1743. echo 1 > /sys/devices/system/cpu/cpu4/online
  1744. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  1745. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  1746. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  1747. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  1748. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  1749. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/sampling_down_factor
  1750. echo 883200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  1751. echo 60000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
  1752. if [ $panel -gt 1080 ]; then
  1753. #set texture cache size for resolution greater than 1080p
  1754. setprop ro.hwui.texture_cache_size 72
  1755. fi
  1756. echo 59000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  1757. echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  1758. echo "1 691200:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  1759. echo 1382400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  1760. echo "19000 1382400:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  1761. echo "85 1382400:90 1747200:80" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  1762. # HMP Task packing settings for 8976
  1763. echo 30 > /proc/sys/kernel/sched_small_task
  1764. echo 20 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
  1765. echo 20 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
  1766. echo 20 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
  1767. echo 20 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
  1768. echo 20 > /sys/devices/system/cpu/cpu4/sched_mostly_idle_load
  1769. echo 20 > /sys/devices/system/cpu/cpu5/sched_mostly_idle_load
  1770. echo 20 > /sys/devices/system/cpu/cpu6/sched_mostly_idle_load
  1771. echo 20 > /sys/devices/system/cpu/cpu7/sched_mostly_idle_load
  1772. echo 0 > /proc/sys/kernel/sched_boost
  1773. # Bring up all cores online
  1774. echo 1 > /sys/devices/system/cpu/cpu1/online
  1775. echo 1 > /sys/devices/system/cpu/cpu2/online
  1776. echo 1 > /sys/devices/system/cpu/cpu3/online
  1777. echo 1 > /sys/devices/system/cpu/cpu4/online
  1778. echo 1 > /sys/devices/system/cpu/cpu5/online
  1779. echo 1 > /sys/devices/system/cpu/cpu6/online
  1780. echo 1 > /sys/devices/system/cpu/cpu7/online
  1781. #Disable CPU retention modes for 32bit builds
  1782. ProductName=`getprop ro.product.name`
  1783. if [ "$ProductName" == "msm8952_32" ] || [ "$ProductName" == "msm8952_32_LMT" ]; then
  1784. echo N > /sys/module/lpm_levels/system/a72/cpu4/retention/idle_enabled
  1785. echo N > /sys/module/lpm_levels/system/a72/cpu5/retention/idle_enabled
  1786. echo N > /sys/module/lpm_levels/system/a72/cpu6/retention/idle_enabled
  1787. echo N > /sys/module/lpm_levels/system/a72/cpu7/retention/idle_enabled
  1788. fi
  1789. if [ `cat /sys/devices/soc0/revision` == "1.0" ]; then
  1790. # Disable l2-pc and l2-gdhs low power modes
  1791. echo N > /sys/module/lpm_levels/system/a53/a53-l2-gdhs/idle_enabled
  1792. echo N > /sys/module/lpm_levels/system/a72/a72-l2-gdhs/idle_enabled
  1793. echo N > /sys/module/lpm_levels/system/a53/a53-l2-pc/idle_enabled
  1794. echo N > /sys/module/lpm_levels/system/a72/a72-l2-pc/idle_enabled
  1795. fi
  1796. # Enable LPM Prediction
  1797. echo 1 > /sys/module/lpm_levels/parameters/lpm_prediction
  1798. # Enable Low power modes
  1799. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1800. # Disable L2 GDHS on 8976
  1801. echo N > /sys/module/lpm_levels/system/a53/a53-l2-gdhs/idle_enabled
  1802. echo N > /sys/module/lpm_levels/system/a72/a72-l2-gdhs/idle_enabled
  1803. # Enable sched guided freq control
  1804. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  1805. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  1806. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  1807. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  1808. echo 50000 > /proc/sys/kernel/sched_freq_inc_notify
  1809. echo 50000 > /proc/sys/kernel/sched_freq_dec_notify
  1810. # Enable core control
  1811. #for 8976
  1812. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  1813. echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/max_cpus
  1814. echo 68 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  1815. echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  1816. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  1817. echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster
  1818. # re-enable thermal & BCL core_control now
  1819. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1820. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1821. do
  1822. echo -n disable > $mode
  1823. done
  1824. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1825. do
  1826. echo $bcl_hotplug_mask > $hotplug_mask
  1827. done
  1828. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  1829. do
  1830. echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
  1831. done
  1832. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1833. do
  1834. echo -n enable > $mode
  1835. done
  1836. # Enable timer migration to little cluster
  1837. echo 1 > /proc/sys/kernel/power_aware_timer_migration
  1838. case "$soc_id" in
  1839. "277" | "278")
  1840. # Start energy-awareness for 8976
  1841. start energy-awareness
  1842. ;;
  1843. esac
  1844. #enable sched colocation and colocation inheritance
  1845. echo 130 > /proc/sys/kernel/sched_grp_upmigrate
  1846. echo 110 > /proc/sys/kernel/sched_grp_downmigrate
  1847. echo 1 > /proc/sys/kernel/sched_enable_thread_grouping
  1848. # Set Memory parameters
  1849. configure_memory_parameters
  1850. ;;
  1851. esac
  1852. #Enable Memory Features
  1853. enable_memory_features
  1854. restorecon -R /sys/devices/system/cpu
  1855. ;;
  1856. esac
  1857. case "$target" in
  1858. "msm8953")
  1859. if [ -f /sys/devices/soc0/soc_id ]; then
  1860. soc_id=`cat /sys/devices/soc0/soc_id`
  1861. else
  1862. soc_id=`cat /sys/devices/system/soc/soc0/id`
  1863. fi
  1864. if [ -f /sys/devices/soc0/hw_platform ]; then
  1865. hw_platform=`cat /sys/devices/soc0/hw_platform`
  1866. else
  1867. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  1868. fi
  1869. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  1870. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  1871. fi
  1872. echo 0 > /proc/sys/kernel/sched_boost
  1873. case "$soc_id" in
  1874. "293" | "304" | "338" | "351")
  1875. # Start Host based Touch processing
  1876. case "$hw_platform" in
  1877. "MTP" | "Surf" | "RCM" )
  1878. #if this directory is present, it means that a
  1879. #1200p panel is connected to the device.
  1880. dir="/sys/bus/i2c/devices/3-0038"
  1881. if [ ! -d "$dir" ]; then
  1882. start_hbtp
  1883. fi
  1884. ;;
  1885. esac
  1886. if [ $soc_id -eq "338" ]; then
  1887. case "$hw_platform" in
  1888. "QRD" )
  1889. if [ $platform_subtype_id -eq "1" ]; then
  1890. start_hbtp
  1891. fi
  1892. ;;
  1893. esac
  1894. fi
  1895. #init task load, restrict wakeups to preferred cluster
  1896. echo 15 > /proc/sys/kernel/sched_init_task_load
  1897. for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor
  1898. do
  1899. echo "cpufreq" > $devfreq_gov
  1900. done
  1901. for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor
  1902. do
  1903. echo "bw_hwmon" > $devfreq_gov
  1904. for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent
  1905. do
  1906. echo 34 > $cpu_io_percent
  1907. done
  1908. for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps
  1909. do
  1910. echo 0 > $cpu_guard_band
  1911. done
  1912. for cpu_hist_memory in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hist_memory
  1913. do
  1914. echo 20 > $cpu_hist_memory
  1915. done
  1916. for cpu_hyst_length in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_length
  1917. do
  1918. echo 10 > $cpu_hyst_length
  1919. done
  1920. for cpu_idle_mbps in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/idle_mbps
  1921. do
  1922. echo 1600 > $cpu_idle_mbps
  1923. done
  1924. for cpu_low_power_delay in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_delay
  1925. do
  1926. echo 20 > $cpu_low_power_delay
  1927. done
  1928. for cpu_low_power_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/low_power_io_percent
  1929. do
  1930. echo 34 > $cpu_low_power_io_percent
  1931. done
  1932. for cpu_mbps_zones in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/mbps_zones
  1933. do
  1934. echo "1611 3221 5859 6445 7104" > $cpu_mbps_zones
  1935. done
  1936. for cpu_sample_ms in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/sample_ms
  1937. do
  1938. echo 4 > $cpu_sample_ms
  1939. done
  1940. for cpu_up_scale in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/up_scale
  1941. do
  1942. echo 250 > $cpu_up_scale
  1943. done
  1944. for cpu_min_freq in /sys/class/devfreq/soc:qcom,cpubw/min_freq
  1945. do
  1946. echo 1611 > $cpu_min_freq
  1947. done
  1948. done
  1949. for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent
  1950. do
  1951. echo 40 > $gpu_bimc_io_percent
  1952. done
  1953. # disable thermal & BCL core_control to update interactive gov settings
  1954. echo 0 > /sys/module/msm_thermal/core_control/enabled
  1955. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1956. do
  1957. echo -n disable > $mode
  1958. done
  1959. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1960. do
  1961. bcl_hotplug_mask=`cat $hotplug_mask`
  1962. echo 0 > $hotplug_mask
  1963. done
  1964. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  1965. do
  1966. bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
  1967. echo 0 > $hotplug_soc_mask
  1968. done
  1969. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1970. do
  1971. echo -n enable > $mode
  1972. done
  1973. #if the kernel version >=4.9,use the schedutil governor
  1974. if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then
  1975. 8953_sched_dcvs_eas
  1976. else
  1977. 8953_sched_dcvs_hmp
  1978. fi
  1979. echo 652800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  1980. # Bring up all cores online
  1981. echo 1 > /sys/devices/system/cpu/cpu1/online
  1982. echo 1 > /sys/devices/system/cpu/cpu2/online
  1983. echo 1 > /sys/devices/system/cpu/cpu3/online
  1984. echo 1 > /sys/devices/system/cpu/cpu4/online
  1985. echo 1 > /sys/devices/system/cpu/cpu5/online
  1986. echo 1 > /sys/devices/system/cpu/cpu6/online
  1987. echo 1 > /sys/devices/system/cpu/cpu7/online
  1988. # Enable low power modes
  1989. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  1990. # re-enable thermal & BCL core_control now
  1991. echo 1 > /sys/module/msm_thermal/core_control/enabled
  1992. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  1993. do
  1994. echo -n disable > $mode
  1995. done
  1996. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  1997. do
  1998. echo $bcl_hotplug_mask > $hotplug_mask
  1999. done
  2000. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  2001. do
  2002. echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
  2003. done
  2004. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  2005. do
  2006. echo -n enable > $mode
  2007. done
  2008. # SMP scheduler
  2009. echo 85 > /proc/sys/kernel/sched_upmigrate
  2010. echo 85 > /proc/sys/kernel/sched_downmigrate
  2011. # Set Memory parameters
  2012. configure_memory_parameters
  2013. ;;
  2014. esac
  2015. case "$soc_id" in
  2016. "349" | "350")
  2017. # Start Host based Touch processing
  2018. case "$hw_platform" in
  2019. "MTP" | "Surf" | "RCM" | "QRD" )
  2020. start_hbtp
  2021. ;;
  2022. esac
  2023. for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor
  2024. do
  2025. echo "cpufreq" > $devfreq_gov
  2026. done
  2027. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  2028. do
  2029. echo "bw_hwmon" > $cpubw/governor
  2030. echo 50 > $cpubw/polling_interval
  2031. echo "1611 3221 5859 6445 7104" > $cpubw/bw_hwmon/mbps_zones
  2032. echo 4 > $cpubw/bw_hwmon/sample_ms
  2033. echo 34 > $cpubw/bw_hwmon/io_percent
  2034. echo 20 > $cpubw/bw_hwmon/hist_memory
  2035. echo 80 > $cpubw/bw_hwmon/down_thres
  2036. echo 0 > $cpubw/bw_hwmon/hyst_length
  2037. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  2038. echo 250 > $cpubw/bw_hwmon/up_scale
  2039. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  2040. done
  2041. # Configure DCC module to capture critical register contents when device crashes
  2042. for DCC_PATH in /sys/bus/platform/devices/*.dcc*
  2043. do
  2044. echo 0 > $DCC_PATH/enable
  2045. echo cap > $DCC_PATH/func_type
  2046. echo sram > $DCC_PATH/data_sink
  2047. echo 1 > $DCC_PATH/config_reset
  2048. # Register specifies APC CPR closed-loop settled voltage for current voltage corner
  2049. echo 0xb1d2c18 1 > $DCC_PATH/config
  2050. # Register specifies SW programmed open-loop voltage for current voltage corner
  2051. echo 0xb1d2900 1 > $DCC_PATH/config
  2052. # Register specifies APM switch settings and APM FSM state
  2053. echo 0xb1112b0 1 > $DCC_PATH/config
  2054. # Register specifies CPR mode change state and also #online cores input to CPR HW
  2055. echo 0xb018798 1 > $DCC_PATH/config
  2056. echo 1 > $DCC_PATH/enable
  2057. done
  2058. # disable thermal & BCL core_control to update interactive gov settings
  2059. echo 0 > /sys/module/msm_thermal/core_control/enabled
  2060. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  2061. do
  2062. echo -n disable > $mode
  2063. done
  2064. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  2065. do
  2066. bcl_hotplug_mask=`cat $hotplug_mask`
  2067. echo 0 > $hotplug_mask
  2068. done
  2069. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  2070. do
  2071. bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
  2072. echo 0 > $hotplug_soc_mask
  2073. done
  2074. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  2075. do
  2076. echo -n enable > $mode
  2077. done
  2078. # configure governor settings for little cluster
  2079. echo 1 > /sys/devices/system/cpu/cpu0/online
  2080. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2081. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  2082. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  2083. echo 1363200 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  2084. #default value for hispeed_load is 90, for sdm632 it should be 85
  2085. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
  2086. # sched_load_boost as -6 is equivalent to target load as 85.
  2087. echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
  2088. echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
  2089. echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
  2090. echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
  2091. # configure governor settings for big cluster
  2092. echo 1 > /sys/devices/system/cpu/cpu4/online
  2093. echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  2094. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us
  2095. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us
  2096. echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
  2097. #default value for hispeed_load is 90, for sdm632 it should be 85
  2098. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
  2099. # sched_load_boost as -6 is equivalent to target load as 85.
  2100. echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost
  2101. echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost
  2102. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  2103. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  2104. echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2105. echo 633600 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  2106. # cpuset settings
  2107. echo 0-3 > /dev/cpuset/background/cpus
  2108. echo 0-3 > /dev/cpuset/system-background/cpus
  2109. # choose idle CPU for top app tasks
  2110. echo 1 > /dev/stune/top-app/schedtune.prefer_idle
  2111. # re-enable thermal & BCL core_control now
  2112. echo 1 > /sys/module/msm_thermal/core_control/enabled
  2113. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  2114. do
  2115. echo -n disable > $mode
  2116. done
  2117. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  2118. do
  2119. echo $bcl_hotplug_mask > $hotplug_mask
  2120. done
  2121. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  2122. do
  2123. echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
  2124. done
  2125. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  2126. do
  2127. echo -n enable > $mode
  2128. done
  2129. # Disable Core control
  2130. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
  2131. echo 0 > /sys/devices/system/cpu/cpu4/core_ctl/enable
  2132. # Bring up all cores online
  2133. echo 1 > /sys/devices/system/cpu/cpu1/online
  2134. echo 1 > /sys/devices/system/cpu/cpu2/online
  2135. echo 1 > /sys/devices/system/cpu/cpu3/online
  2136. echo 1 > /sys/devices/system/cpu/cpu4/online
  2137. echo 1 > /sys/devices/system/cpu/cpu5/online
  2138. echo 1 > /sys/devices/system/cpu/cpu6/online
  2139. echo 1 > /sys/devices/system/cpu/cpu7/online
  2140. # Enable low power modes
  2141. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2142. # Set Memory parameters
  2143. configure_memory_parameters
  2144. # Setting b.L scheduler parameters
  2145. echo 76 > /proc/sys/kernel/sched_downmigrate
  2146. echo 86 > /proc/sys/kernel/sched_upmigrate
  2147. echo 80 > /proc/sys/kernel/sched_group_downmigrate
  2148. echo 90 > /proc/sys/kernel/sched_group_upmigrate
  2149. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  2150. # Enable min frequency adjustment for big cluster
  2151. if [ -f /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster ]; then
  2152. echo "4-7" > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster
  2153. fi
  2154. echo 1 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_adjust
  2155. ;;
  2156. esac
  2157. ;;
  2158. esac
  2159. case "$target" in
  2160. "msm8937")
  2161. if [ -f /sys/devices/soc0/soc_id ]; then
  2162. soc_id=`cat /sys/devices/soc0/soc_id`
  2163. else
  2164. soc_id=`cat /sys/devices/system/soc/soc0/id`
  2165. fi
  2166. if [ -f /sys/devices/soc0/hw_platform ]; then
  2167. hw_platform=`cat /sys/devices/soc0/hw_platform`
  2168. else
  2169. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  2170. fi
  2171. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  2172. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  2173. fi
  2174. # Socid 386 = Pukeena
  2175. case "$soc_id" in
  2176. "303" | "307" | "308" | "309" | "320" | "386" | "436")
  2177. # Start Host based Touch processing
  2178. case "$hw_platform" in
  2179. "MTP" )
  2180. start_hbtp
  2181. ;;
  2182. esac
  2183. case "$hw_platform" in
  2184. "Surf" | "RCM" )
  2185. if [ $platform_subtype_id -ne "4" ]; then
  2186. start_hbtp
  2187. fi
  2188. ;;
  2189. esac
  2190. # Apply Scheduler and Governor settings for 8917 / 8920
  2191. echo 20000000 > /proc/sys/kernel/sched_ravg_window
  2192. #disable sched_boost in 8917
  2193. echo 0 > /proc/sys/kernel/sched_boost
  2194. # core_ctl is not needed for 8917. Disable it.
  2195. disable_core_ctl
  2196. for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor
  2197. do
  2198. echo "cpufreq" > $devfreq_gov
  2199. done
  2200. for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor
  2201. do
  2202. echo "bw_hwmon" > $devfreq_gov
  2203. for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent
  2204. do
  2205. echo 20 > $cpu_io_percent
  2206. done
  2207. for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps
  2208. do
  2209. echo 30 > $cpu_guard_band
  2210. done
  2211. done
  2212. for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent
  2213. do
  2214. echo 40 > $gpu_bimc_io_percent
  2215. done
  2216. # disable thermal core_control to update interactive gov settings
  2217. echo 0 > /sys/module/msm_thermal/core_control/enabled
  2218. if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then
  2219. 8917_sched_dcvs_eas
  2220. else
  2221. 8917_sched_dcvs_hmp
  2222. fi
  2223. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2224. # re-enable thermal core_control now
  2225. echo 1 > /sys/module/msm_thermal/core_control/enabled
  2226. # Disable L2-GDHS low power modes
  2227. echo N > /sys/module/lpm_levels/perf/perf-l2-gdhs/idle_enabled
  2228. echo N > /sys/module/lpm_levels/perf/perf-l2-gdhs/suspend_enabled
  2229. # Bring up all cores online
  2230. echo 1 > /sys/devices/system/cpu/cpu1/online
  2231. echo 1 > /sys/devices/system/cpu/cpu2/online
  2232. echo 1 > /sys/devices/system/cpu/cpu3/online
  2233. # Enable low power modes
  2234. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2235. # Set rps mask
  2236. echo 2 > /sys/class/net/rmnet0/queues/rx-0/rps_cpus
  2237. # Enable dynamic clock gating
  2238. echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating
  2239. # Enable timer migration to little cluster
  2240. echo 1 > /proc/sys/kernel/power_aware_timer_migration
  2241. # Set Memory parameters
  2242. configure_memory_parameters
  2243. ;;
  2244. *)
  2245. ;;
  2246. esac
  2247. case "$soc_id" in
  2248. "294" | "295" | "313" )
  2249. # Start Host based Touch processing
  2250. case "$hw_platform" in
  2251. "MTP" | "Surf" | "RCM" )
  2252. start_hbtp
  2253. ;;
  2254. esac
  2255. # Apply Scheduler and Governor settings for 8937/8940
  2256. # HMP scheduler settings
  2257. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  2258. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  2259. echo 20000000 > /proc/sys/kernel/sched_ravg_window
  2260. #disable sched_boost in 8937
  2261. echo 0 > /proc/sys/kernel/sched_boost
  2262. for devfreq_gov in /sys/class/devfreq/qcom,mincpubw*/governor
  2263. do
  2264. echo "cpufreq" > $devfreq_gov
  2265. done
  2266. for devfreq_gov in /sys/class/devfreq/soc:qcom,cpubw/governor
  2267. do
  2268. echo "bw_hwmon" > $devfreq_gov
  2269. for cpu_io_percent in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/io_percent
  2270. do
  2271. echo 20 > $cpu_io_percent
  2272. done
  2273. for cpu_guard_band in /sys/class/devfreq/soc:qcom,cpubw/bw_hwmon/guard_band_mbps
  2274. do
  2275. echo 30 > $cpu_guard_band
  2276. done
  2277. done
  2278. for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent
  2279. do
  2280. echo 40 > $gpu_bimc_io_percent
  2281. done
  2282. # disable thermal core_control to update interactive gov and core_ctl settings
  2283. echo 0 > /sys/module/msm_thermal/core_control/enabled
  2284. if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 9 ]; then
  2285. 8937_sched_dcvs_eas
  2286. else
  2287. 8937_sched_dcvs_hmp
  2288. fi
  2289. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2290. echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  2291. # Disable L2-GDHS low power modes
  2292. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled
  2293. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/suspend_enabled
  2294. echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled
  2295. echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/suspend_enabled
  2296. # Bring up all cores online
  2297. echo 1 > /sys/devices/system/cpu/cpu1/online
  2298. echo 1 > /sys/devices/system/cpu/cpu2/online
  2299. echo 1 > /sys/devices/system/cpu/cpu3/online
  2300. echo 1 > /sys/devices/system/cpu/cpu4/online
  2301. echo 1 > /sys/devices/system/cpu/cpu5/online
  2302. echo 1 > /sys/devices/system/cpu/cpu6/online
  2303. echo 1 > /sys/devices/system/cpu/cpu7/online
  2304. # Enable low power modes
  2305. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2306. # HMP scheduler (big.Little cluster related) settings
  2307. echo 93 > /proc/sys/kernel/sched_upmigrate
  2308. echo 83 > /proc/sys/kernel/sched_downmigrate
  2309. # Enable core control
  2310. echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  2311. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
  2312. echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  2313. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  2314. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  2315. echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  2316. # re-enable thermal core_control
  2317. echo 1 > /sys/module/msm_thermal/core_control/enabled
  2318. # Enable dynamic clock gating
  2319. echo 1 > /sys/module/lpm_levels/lpm_workarounds/dynamic_clock_gating
  2320. # Enable timer migration to little cluster
  2321. echo 1 > /proc/sys/kernel/power_aware_timer_migration
  2322. # Set Memory parameters
  2323. configure_memory_parameters
  2324. ;;
  2325. *)
  2326. ;;
  2327. esac
  2328. case "$soc_id" in
  2329. "354" | "364" | "353" | "363" )
  2330. # Start Host based Touch processing
  2331. case "$hw_platform" in
  2332. "MTP" | "Surf" | "RCM" | "QRD" )
  2333. start_hbtp
  2334. ;;
  2335. esac
  2336. # Apply settings for sdm429/sda429/sdm439/sda439
  2337. for cpubw in /sys/class/devfreq/*qcom,mincpubw*
  2338. do
  2339. echo "cpufreq" > $cpubw/governor
  2340. done
  2341. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  2342. do
  2343. echo "bw_hwmon" > $cpubw/governor
  2344. echo 20 > $cpubw/bw_hwmon/io_percent
  2345. echo 30 > $cpubw/bw_hwmon/guard_band_mbps
  2346. done
  2347. for gpu_bimc_io_percent in /sys/class/devfreq/soc:qcom,gpubw/bw_hwmon/io_percent
  2348. do
  2349. echo 40 > $gpu_bimc_io_percent
  2350. done
  2351. case "$soc_id" in
  2352. "353" | "363" )
  2353. # Apply settings for sdm439/sda439
  2354. # configure schedutil governor settings
  2355. # enable governor for perf cluster
  2356. echo 1 > /sys/devices/system/cpu/cpu0/online
  2357. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2358. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  2359. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  2360. #set the hispeed_freq
  2361. echo 1497600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  2362. echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
  2363. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2364. # sched_load_boost as -6 is equivalent to target load as 85.
  2365. echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
  2366. echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
  2367. echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
  2368. echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
  2369. ## enable governor for power cluster
  2370. echo 1 > /sys/devices/system/cpu/cpu4/online
  2371. echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  2372. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us
  2373. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us
  2374. #set the hispeed_freq
  2375. echo 998400 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
  2376. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
  2377. echo 768000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  2378. # sched_load_boost as -6 is equivalent to target load as 85.
  2379. echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost
  2380. echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost
  2381. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  2382. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  2383. # EAS scheduler (big.Little cluster related) settings
  2384. echo 93 > /proc/sys/kernel/sched_upmigrate
  2385. echo 83 > /proc/sys/kernel/sched_downmigrate
  2386. echo 140 > /proc/sys/kernel/sched_group_upmigrate
  2387. echo 120 > /proc/sys/kernel/sched_group_downmigrate
  2388. # cpuset settings
  2389. #echo 0-3 > /dev/cpuset/background/cpus
  2390. #echo 0-3 > /dev/cpuset/system-background/cpus
  2391. # Bring up all cores online
  2392. echo 1 > /sys/devices/system/cpu/cpu1/online
  2393. echo 1 > /sys/devices/system/cpu/cpu2/online
  2394. echo 1 > /sys/devices/system/cpu/cpu3/online
  2395. echo 1 > /sys/devices/system/cpu/cpu4/online
  2396. echo 1 > /sys/devices/system/cpu/cpu5/online
  2397. echo 1 > /sys/devices/system/cpu/cpu6/online
  2398. echo 1 > /sys/devices/system/cpu/cpu7/online
  2399. # Enable core control
  2400. echo 2 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  2401. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/max_cpus
  2402. echo 68 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  2403. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  2404. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  2405. echo 1 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  2406. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
  2407. # Big cluster min frequency adjust settings
  2408. if [ -f /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster ]; then
  2409. echo "0-3" > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_cluster
  2410. fi
  2411. echo 1305600 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_floor
  2412. ;;
  2413. *)
  2414. # Apply settings for sdm429/sda429
  2415. # configure schedutil governor settings
  2416. echo 1 > /sys/devices/system/cpu/cpu0/online
  2417. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2418. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  2419. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  2420. #set the hispeed_freq
  2421. echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  2422. echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
  2423. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2424. # sched_load_boost as -6 is equivalent to target load as 85.
  2425. echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
  2426. echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
  2427. echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
  2428. echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
  2429. # Bring up all cores online
  2430. echo 1 > /sys/devices/system/cpu/cpu1/online
  2431. echo 1 > /sys/devices/system/cpu/cpu2/online
  2432. echo 1 > /sys/devices/system/cpu/cpu3/online
  2433. ;;
  2434. esac
  2435. # Set Memory parameters
  2436. configure_memory_parameters
  2437. #disable sched_boost
  2438. echo 0 > /proc/sys/kernel/sched_boost
  2439. # Disable L2-GDHS low power modes
  2440. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled
  2441. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/suspend_enabled
  2442. echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled
  2443. echo N > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/suspend_enabled
  2444. # Enable low power modes
  2445. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2446. case "$soc_id" in
  2447. "353" | "363" )
  2448. echo 1 > /sys/module/big_cluster_min_freq_adjust/parameters/min_freq_adjust
  2449. ;;
  2450. esac
  2451. ;;
  2452. esac
  2453. case "$soc_id" in
  2454. "386" | "436")
  2455. # Start Host based Touch processing
  2456. case "$hw_platform" in
  2457. "QRD" )
  2458. start_hbtp
  2459. ;;
  2460. esac
  2461. ;;
  2462. esac
  2463. ;;
  2464. esac
  2465. case "$target" in
  2466. "sdm660")
  2467. # Set the default IRQ affinity to the primary cluster. When a
  2468. # CPU is isolated/hotplugged, the IRQ affinity is adjusted
  2469. # to one of the CPU from the default IRQ affinity mask.
  2470. echo f > /proc/irq/default_smp_affinity
  2471. if [ -f /sys/devices/soc0/soc_id ]; then
  2472. soc_id=`cat /sys/devices/soc0/soc_id`
  2473. else
  2474. soc_id=`cat /sys/devices/system/soc/soc0/id`
  2475. fi
  2476. if [ -f /sys/devices/soc0/hw_platform ]; then
  2477. hw_platform=`cat /sys/devices/soc0/hw_platform`
  2478. else
  2479. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  2480. fi
  2481. panel=`cat /sys/class/graphics/fb0/modes`
  2482. if [ "${panel:5:1}" == "x" ]; then
  2483. panel=${panel:2:3}
  2484. else
  2485. panel=${panel:2:4}
  2486. fi
  2487. if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -le 14 ]; then
  2488. if [ $panel -gt 1080 ]; then
  2489. echo 2 > /proc/sys/kernel/sched_window_stats_policy
  2490. echo 5 > /proc/sys/kernel/sched_ravg_hist_size
  2491. else
  2492. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  2493. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  2494. fi
  2495. fi
  2496. #Apply settings for sdm660, sdm636,sda636
  2497. case "$soc_id" in
  2498. "317" | "324" | "325" | "326" | "345" | "346" )
  2499. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  2500. echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  2501. echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  2502. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  2503. echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster
  2504. echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
  2505. # Setting b.L scheduler parameters
  2506. echo 96 > /proc/sys/kernel/sched_upmigrate
  2507. echo 90 > /proc/sys/kernel/sched_downmigrate
  2508. echo 140 > /proc/sys/kernel/sched_group_upmigrate
  2509. echo 120 > /proc/sys/kernel/sched_group_downmigrate
  2510. # cpuset settings
  2511. echo 0-3 > /dev/cpuset/background/cpus
  2512. echo 0-3 > /dev/cpuset/system-background/cpus
  2513. #if the kernel version >=4.14,use the schedutil governor
  2514. if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 14 ]; then
  2515. sdm660_sched_schedutil_dcvs
  2516. else
  2517. sdm660_sched_interactive_dcvs
  2518. fi
  2519. # Set Memory parameters
  2520. configure_memory_parameters
  2521. # enable LPM
  2522. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2523. # Start cdsprpcd only for sdm660 and disable for sdm630
  2524. start vendor.cdsprpcd
  2525. # Start Host based Touch processing
  2526. case "$hw_platform" in
  2527. "MTP" | "Surf" | "RCM" | "QRD" )
  2528. start_hbtp
  2529. ;;
  2530. esac
  2531. ;;
  2532. esac
  2533. #Apply settings for sdm630 and Tahaa
  2534. case "$soc_id" in
  2535. "318" | "327" | "385" )
  2536. # Start Host based Touch processing
  2537. case "$hw_platform" in
  2538. "MTP" | "Surf" | "RCM" | "QRD" )
  2539. start_hbtp
  2540. ;;
  2541. esac
  2542. # Setting b.L scheduler parameters
  2543. echo 85 > /proc/sys/kernel/sched_upmigrate
  2544. echo 85 > /proc/sys/kernel/sched_downmigrate
  2545. echo 900 > /proc/sys/kernel/sched_group_upmigrate
  2546. echo 900 > /proc/sys/kernel/sched_group_downmigrate
  2547. echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us
  2548. echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
  2549. echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
  2550. echo 3 > /proc/sys/kernel/sched_spill_nr_run
  2551. #init task load, restrict wakeups to preferred cluster
  2552. echo 15 > /proc/sys/kernel/sched_init_task_load
  2553. echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill
  2554. echo 50000 > /proc/sys/kernel/sched_short_burst_ns
  2555. # cpuset settings
  2556. echo 0-3 > /dev/cpuset/background/cpus
  2557. echo 0-3 > /dev/cpuset/system-background/cpus
  2558. # disable thermal bcl hotplug to switch governor
  2559. echo 0 > /sys/module/msm_thermal/core_control/enabled
  2560. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  2561. do
  2562. echo -n disable > $mode
  2563. done
  2564. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  2565. do
  2566. bcl_hotplug_mask=`cat $hotplug_mask`
  2567. echo 0 > $hotplug_mask
  2568. done
  2569. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  2570. do
  2571. bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
  2572. echo 0 > $hotplug_soc_mask
  2573. done
  2574. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  2575. do
  2576. echo -n enable > $mode
  2577. done
  2578. # online CPU0
  2579. echo 1 > /sys/devices/system/cpu/cpu0/online
  2580. # configure governor settings for Big cluster(CPU0 to CPU3)
  2581. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2582. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  2583. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  2584. echo "19000 1344000:39000" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  2585. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  2586. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  2587. echo 1344000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  2588. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  2589. echo "85 1344000:80" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  2590. echo 39000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  2591. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
  2592. echo 787200 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2593. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif
  2594. # online CPU4
  2595. echo 1 > /sys/devices/system/cpu/cpu4/online
  2596. # configure governor settings for Little cluster(CPU4 to CPU7)
  2597. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  2598. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  2599. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  2600. echo "19000 1094400:39000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  2601. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  2602. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  2603. echo 1094400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  2604. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  2605. echo "85 1094400:80" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  2606. echo 39000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  2607. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
  2608. echo 614400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  2609. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif
  2610. # bring all cores online
  2611. echo 1 > /sys/devices/system/cpu/cpu0/online
  2612. echo 1 > /sys/devices/system/cpu/cpu1/online
  2613. echo 1 > /sys/devices/system/cpu/cpu2/online
  2614. echo 1 > /sys/devices/system/cpu/cpu3/online
  2615. echo 1 > /sys/devices/system/cpu/cpu4/online
  2616. echo 1 > /sys/devices/system/cpu/cpu5/online
  2617. echo 1 > /sys/devices/system/cpu/cpu6/online
  2618. echo 1 > /sys/devices/system/cpu/cpu7/online
  2619. # configure LPM
  2620. echo N > /sys/module/lpm_levels/system/perf/cpu0/ret/idle_enabled
  2621. echo N > /sys/module/lpm_levels/system/perf/cpu1/ret/idle_enabled
  2622. echo N > /sys/module/lpm_levels/system/perf/cpu2/ret/idle_enabled
  2623. echo N > /sys/module/lpm_levels/system/perf/cpu3/ret/idle_enabled
  2624. echo N > /sys/module/lpm_levels/system/pwr/cpu4/ret/idle_enabled
  2625. echo N > /sys/module/lpm_levels/system/pwr/cpu5/ret/idle_enabled
  2626. echo N > /sys/module/lpm_levels/system/pwr/cpu6/ret/idle_enabled
  2627. echo N > /sys/module/lpm_levels/system/pwr/cpu7/ret/idle_enabled
  2628. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled
  2629. echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled
  2630. # enable LPM
  2631. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2632. # re-enable thermal and BCL hotplug
  2633. echo 1 > /sys/module/msm_thermal/core_control/enabled
  2634. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  2635. do
  2636. echo -n disable > $mode
  2637. done
  2638. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  2639. do
  2640. echo $bcl_hotplug_mask > $hotplug_mask
  2641. done
  2642. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  2643. do
  2644. echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
  2645. done
  2646. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  2647. do
  2648. echo -n enable > $mode
  2649. done
  2650. # Set Memory parameters
  2651. configure_memory_parameters
  2652. # Enable bus-dcvs
  2653. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  2654. do
  2655. echo "bw_hwmon" > $cpubw/governor
  2656. echo 50 > $cpubw/polling_interval
  2657. echo 762 > $cpubw/min_freq
  2658. echo "1525 3143 4173 5195 5859 7759 9887 10327" > $cpubw/bw_hwmon/mbps_zones
  2659. echo 4 > $cpubw/bw_hwmon/sample_ms
  2660. echo 85 > $cpubw/bw_hwmon/io_percent
  2661. echo 20 > $cpubw/bw_hwmon/hist_memory
  2662. echo 0 > $cpubw/bw_hwmon/hyst_length
  2663. echo 100 > $cpubw/bw_hwmon/decay_rate
  2664. echo 50 > $cpubw/bw_hwmon/bw_step
  2665. echo 80 > $cpubw/bw_hwmon/down_thres
  2666. echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps
  2667. echo 50 > $cpubw/bw_hwmon/low_power_io_percent
  2668. echo 20 > $cpubw/bw_hwmon/low_power_delay
  2669. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  2670. echo 250 > $cpubw/bw_hwmon/up_scale
  2671. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  2672. done
  2673. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  2674. do
  2675. echo "mem_latency" > $memlat/governor
  2676. echo 10 > $memlat/polling_interval
  2677. echo 400 > $memlat/mem_latency/ratio_ceil
  2678. done
  2679. echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  2680. ;;
  2681. esac
  2682. ;;
  2683. esac
  2684. case "$target" in
  2685. "sdm710")
  2686. #Apply settings for sdm710
  2687. # Set the default IRQ affinity to the silver cluster. When a
  2688. # CPU is isolated/hotplugged, the IRQ affinity is adjusted
  2689. # to one of the CPU from the default IRQ affinity mask.
  2690. echo 3f > /proc/irq/default_smp_affinity
  2691. if [ -f /sys/devices/soc0/soc_id ]; then
  2692. soc_id=`cat /sys/devices/soc0/soc_id`
  2693. else
  2694. soc_id=`cat /sys/devices/system/soc/soc0/id`
  2695. fi
  2696. if [ -f /sys/devices/soc0/hw_platform ]; then
  2697. hw_platform=`cat /sys/devices/soc0/hw_platform`
  2698. else
  2699. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  2700. fi
  2701. case "$soc_id" in
  2702. "336" | "337" | "347" | "360" | "393" )
  2703. # Start Host based Touch processing
  2704. case "$hw_platform" in
  2705. "MTP" | "Surf" | "RCM" | "QRD" )
  2706. start_hbtp
  2707. ;;
  2708. esac
  2709. # Core control parameters on silver
  2710. echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred
  2711. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  2712. echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  2713. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  2714. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  2715. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  2716. echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
  2717. # Setting b.L scheduler parameters
  2718. echo 96 > /proc/sys/kernel/sched_upmigrate
  2719. echo 90 > /proc/sys/kernel/sched_downmigrate
  2720. echo 140 > /proc/sys/kernel/sched_group_upmigrate
  2721. echo 120 > /proc/sys/kernel/sched_group_downmigrate
  2722. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  2723. # configure governor settings for little cluster
  2724. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2725. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
  2726. echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  2727. echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2728. # configure governor settings for big cluster
  2729. echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
  2730. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/rate_limit_us
  2731. echo 1344000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq
  2732. echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  2733. # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
  2734. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  2735. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  2736. echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load
  2737. echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq
  2738. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  2739. # Set Memory parameters
  2740. configure_memory_parameters
  2741. # Enable bus-dcvs
  2742. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  2743. do
  2744. echo "bw_hwmon" > $cpubw/governor
  2745. echo 50 > $cpubw/polling_interval
  2746. echo "1144 1720 2086 2929 3879 5931 6881" > $cpubw/bw_hwmon/mbps_zones
  2747. echo 4 > $cpubw/bw_hwmon/sample_ms
  2748. echo 68 > $cpubw/bw_hwmon/io_percent
  2749. echo 20 > $cpubw/bw_hwmon/hist_memory
  2750. echo 0 > $cpubw/bw_hwmon/hyst_length
  2751. echo 80 > $cpubw/bw_hwmon/down_thres
  2752. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  2753. echo 250 > $cpubw/bw_hwmon/up_scale
  2754. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  2755. done
  2756. #Enable mem_latency governor for DDR scaling
  2757. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  2758. do
  2759. echo "mem_latency" > $memlat/governor
  2760. echo 10 > $memlat/polling_interval
  2761. echo 400 > $memlat/mem_latency/ratio_ceil
  2762. done
  2763. #Enable mem_latency governor for L3 scaling
  2764. for memlat in /sys/class/devfreq/*qcom,l3-cpu*
  2765. do
  2766. echo "mem_latency" > $memlat/governor
  2767. echo 10 > $memlat/polling_interval
  2768. echo 400 > $memlat/mem_latency/ratio_ceil
  2769. done
  2770. #Enable userspace governor for L3 cdsp nodes
  2771. for l3cdsp in /sys/class/devfreq/*qcom,l3-cdsp*
  2772. do
  2773. echo "userspace" > $l3cdsp/governor
  2774. chown -h system $l3cdsp/userspace/set_freq
  2775. done
  2776. echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  2777. # Disable CPU Retention
  2778. echo N > /sys/module/lpm_levels/L3/cpu0/ret/idle_enabled
  2779. echo N > /sys/module/lpm_levels/L3/cpu1/ret/idle_enabled
  2780. echo N > /sys/module/lpm_levels/L3/cpu2/ret/idle_enabled
  2781. echo N > /sys/module/lpm_levels/L3/cpu3/ret/idle_enabled
  2782. echo N > /sys/module/lpm_levels/L3/cpu4/ret/idle_enabled
  2783. echo N > /sys/module/lpm_levels/L3/cpu5/ret/idle_enabled
  2784. echo N > /sys/module/lpm_levels/L3/cpu6/ret/idle_enabled
  2785. echo N > /sys/module/lpm_levels/L3/cpu7/ret/idle_enabled
  2786. # cpuset parameters
  2787. echo 0-5 > /dev/cpuset/background/cpus
  2788. echo 0-5 > /dev/cpuset/system-background/cpus
  2789. # Turn off scheduler boost at the end
  2790. echo 0 > /proc/sys/kernel/sched_boost
  2791. # Turn on sleep modes.
  2792. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2793. ;;
  2794. esac
  2795. ;;
  2796. esac
  2797. case "$target" in
  2798. "trinket")
  2799. if [ -f /sys/devices/soc0/soc_id ]; then
  2800. soc_id=`cat /sys/devices/soc0/soc_id`
  2801. else
  2802. soc_id=`cat /sys/devices/system/soc/soc0/id`
  2803. fi
  2804. case "$soc_id" in
  2805. "394" )
  2806. # Core control parameters on big
  2807. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  2808. echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  2809. echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  2810. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  2811. echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster
  2812. echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
  2813. # Setting b.L scheduler parameters
  2814. echo 67 > /proc/sys/kernel/sched_downmigrate
  2815. echo 77 > /proc/sys/kernel/sched_upmigrate
  2816. echo 85 > /proc/sys/kernel/sched_group_downmigrate
  2817. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  2818. # cpuset settings
  2819. echo 0-3 > /dev/cpuset/background/cpus
  2820. echo 0-3 > /dev/cpuset/system-background/cpus
  2821. # configure governor settings for little cluster
  2822. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2823. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  2824. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  2825. echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  2826. echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2827. # configure governor settings for big cluster
  2828. echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  2829. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  2830. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  2831. echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
  2832. echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  2833. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  2834. # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
  2835. echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
  2836. echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
  2837. echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
  2838. echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
  2839. echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost
  2840. echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost
  2841. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  2842. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  2843. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
  2844. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
  2845. # Set Memory parameters
  2846. configure_memory_parameters
  2847. # Enable bus-dcvs
  2848. ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type`
  2849. ddr_type4="07"
  2850. ddr_type3="05"
  2851. for device in /sys/devices/platform/soc
  2852. do
  2853. for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw
  2854. do
  2855. echo "bw_hwmon" > $cpubw/governor
  2856. echo 762 > $cpubw/min_freq
  2857. if [ ${ddr_type:4:2} == $ddr_type4 ]; then
  2858. # LPDDR4
  2859. echo "2288 3440 4173 5195 5859 7759 10322 11863 13763" > $cpubw/bw_hwmon/mbps_zones
  2860. echo 85 > $cpubw/bw_hwmon/io_percent
  2861. fi
  2862. if [ ${ddr_type:4:2} == $ddr_type3 ]; then
  2863. # LPDDR3
  2864. echo "1525 3440 5195 5859 7102" > $cpubw/bw_hwmon/mbps_zones
  2865. echo 34 > $cpubw/bw_hwmon/io_percent
  2866. fi
  2867. echo 4 > $cpubw/bw_hwmon/sample_ms
  2868. echo 90 > $cpubw/bw_hwmon/decay_rate
  2869. echo 190 > $cpubw/bw_hwmon/bw_step
  2870. echo 20 > $cpubw/bw_hwmon/hist_memory
  2871. echo 0 > $cpubw/bw_hwmon/hyst_length
  2872. echo 80 > $cpubw/bw_hwmon/down_thres
  2873. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  2874. echo 250 > $cpubw/bw_hwmon/up_scale
  2875. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  2876. echo 50 > $cpubw/polling_interval
  2877. done
  2878. done
  2879. # memlat specific settings are moved to seperate file under
  2880. # device/target specific folder
  2881. setprop vendor.dcvs.prop 1
  2882. # colcoation v3 disabled
  2883. echo 0 > /proc/sys/kernel/sched_min_task_util_for_boost
  2884. echo 0 > /proc/sys/kernel/sched_min_task_util_for_colocation
  2885. echo 0 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz
  2886. # Turn off scheduler boost at the end
  2887. echo 0 > /proc/sys/kernel/sched_boost
  2888. # Turn on sleep modes.
  2889. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  2890. ;;
  2891. esac
  2892. ;;
  2893. esac
  2894. case "$target" in
  2895. "sm6150")
  2896. #Apply settings for sm6150
  2897. # Set the default IRQ affinity to the silver cluster. When a
  2898. # CPU is isolated/hotplugged, the IRQ affinity is adjusted
  2899. # to one of the CPU from the default IRQ affinity mask.
  2900. echo 3f > /proc/irq/default_smp_affinity
  2901. if [ -f /sys/devices/soc0/soc_id ]; then
  2902. soc_id=`cat /sys/devices/soc0/soc_id`
  2903. else
  2904. soc_id=`cat /sys/devices/system/soc/soc0/id`
  2905. fi
  2906. case "$soc_id" in
  2907. "355" | "369" | "377" | "380" | "384" )
  2908. target_type=`getprop ro.hardware.type`
  2909. if [ "$target_type" == "automotive" ]; then
  2910. # update frequencies
  2911. configure_sku_parameters
  2912. sku_identified=`getprop vendor.sku_identified`
  2913. else
  2914. sku_identified=0
  2915. fi
  2916. # Core control parameters on silver
  2917. echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred
  2918. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  2919. echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  2920. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  2921. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  2922. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  2923. echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
  2924. echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable
  2925. # Setting b.L scheduler parameters
  2926. # default sched up and down migrate values are 90 and 85
  2927. echo 65 > /proc/sys/kernel/sched_downmigrate
  2928. echo 71 > /proc/sys/kernel/sched_upmigrate
  2929. # default sched up and down migrate values are 100 and 95
  2930. echo 85 > /proc/sys/kernel/sched_group_downmigrate
  2931. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  2932. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  2933. # colocation v3 settings
  2934. echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz
  2935. # configure governor settings for little cluster
  2936. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2937. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  2938. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  2939. echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  2940. if [ $sku_identified != 1 ]; then
  2941. echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  2942. fi
  2943. # configure governor settings for big cluster
  2944. echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
  2945. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us
  2946. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us
  2947. echo 1209600 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq
  2948. if [ $sku_identified != 1 ]; then
  2949. echo 768000 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  2950. fi
  2951. # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
  2952. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  2953. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  2954. echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load
  2955. echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq
  2956. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  2957. # Set Memory parameters
  2958. configure_memory_parameters
  2959. # Enable bus-dcvs
  2960. for device in /sys/devices/platform/soc
  2961. do
  2962. for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
  2963. do
  2964. echo "bw_hwmon" > $cpubw/governor
  2965. echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones
  2966. echo 4 > $cpubw/bw_hwmon/sample_ms
  2967. echo 68 > $cpubw/bw_hwmon/io_percent
  2968. echo 20 > $cpubw/bw_hwmon/hist_memory
  2969. echo 0 > $cpubw/bw_hwmon/hyst_length
  2970. echo 80 > $cpubw/bw_hwmon/down_thres
  2971. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  2972. echo 250 > $cpubw/bw_hwmon/up_scale
  2973. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  2974. echo 50 > $cpubw/polling_interval
  2975. done
  2976. for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
  2977. do
  2978. echo "bw_hwmon" > $llccbw/governor
  2979. echo "1144 1720 2086 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones
  2980. echo 4 > $llccbw/bw_hwmon/sample_ms
  2981. echo 68 > $llccbw/bw_hwmon/io_percent
  2982. echo 20 > $llccbw/bw_hwmon/hist_memory
  2983. echo 0 > $llccbw/bw_hwmon/hyst_length
  2984. echo 80 > $llccbw/bw_hwmon/down_thres
  2985. echo 0 > $llccbw/bw_hwmon/guard_band_mbps
  2986. echo 250 > $llccbw/bw_hwmon/up_scale
  2987. echo 1600 > $llccbw/bw_hwmon/idle_mbps
  2988. echo 40 > $llccbw/polling_interval
  2989. done
  2990. done
  2991. # memlat specific settings are moved to seperate file under
  2992. # device/target specific folder
  2993. setprop vendor.dcvs.prop 1
  2994. # cpuset parameters
  2995. echo 0-5 > /dev/cpuset/background/cpus
  2996. echo 0-5 > /dev/cpuset/system-background/cpus
  2997. # Turn off scheduler boost at the end
  2998. echo 0 > /proc/sys/kernel/sched_boost
  2999. # Turn on sleep modes.
  3000. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3001. ;;
  3002. esac
  3003. #Apply settings for moorea
  3004. case "$soc_id" in
  3005. "365" | "366" )
  3006. # Core control parameters on silver
  3007. echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred
  3008. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  3009. echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  3010. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  3011. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  3012. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  3013. echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
  3014. echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable
  3015. # Setting b.L scheduler parameters
  3016. # default sched up and down migrate values are 71 and 65
  3017. echo 65 > /proc/sys/kernel/sched_downmigrate
  3018. echo 71 > /proc/sys/kernel/sched_upmigrate
  3019. # default sched up and down migrate values are 100 and 95
  3020. echo 85 > /proc/sys/kernel/sched_group_downmigrate
  3021. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  3022. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  3023. #colocation v3 settings
  3024. echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz
  3025. # configure governor settings for little cluster
  3026. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3027. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  3028. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  3029. echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  3030. echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3031. # configure governor settings for big cluster
  3032. echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
  3033. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us
  3034. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us
  3035. echo 1324600 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq
  3036. echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  3037. # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
  3038. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  3039. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  3040. echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load
  3041. echo "0:1248000" > /sys/module/cpu_boost/parameters/input_boost_freq
  3042. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  3043. # Set Memory parameters
  3044. configure_memory_parameters
  3045. # Enable bus-dcvs
  3046. for device in /sys/devices/platform/soc
  3047. do
  3048. for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
  3049. do
  3050. echo "bw_hwmon" > $cpubw/governor
  3051. echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones
  3052. echo 4 > $cpubw/bw_hwmon/sample_ms
  3053. echo 68 > $cpubw/bw_hwmon/io_percent
  3054. echo 20 > $cpubw/bw_hwmon/hist_memory
  3055. echo 0 > $cpubw/bw_hwmon/hyst_length
  3056. echo 80 > $cpubw/bw_hwmon/down_thres
  3057. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  3058. echo 250 > $cpubw/bw_hwmon/up_scale
  3059. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  3060. echo 50 > $cpubw/polling_interval
  3061. done
  3062. for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
  3063. do
  3064. echo "bw_hwmon" > $llccbw/governor
  3065. echo "1144 1720 2086 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones
  3066. echo 4 > $llccbw/bw_hwmon/sample_ms
  3067. echo 68 > $llccbw/bw_hwmon/io_percent
  3068. echo 20 > $llccbw/bw_hwmon/hist_memory
  3069. echo 0 > $llccbw/bw_hwmon/hyst_length
  3070. echo 80 > $llccbw/bw_hwmon/down_thres
  3071. echo 0 > $llccbw/bw_hwmon/guard_band_mbps
  3072. echo 250 > $llccbw/bw_hwmon/up_scale
  3073. echo 1600 > $llccbw/bw_hwmon/idle_mbps
  3074. echo 40 > $llccbw/polling_interval
  3075. done
  3076. for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw
  3077. do
  3078. echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
  3079. echo "bw_hwmon" > $npubw/governor
  3080. echo "1144 1720 2086 2929 3879 5931 6881" > $npubw/bw_hwmon/mbps_zones
  3081. echo 4 > $npubw/bw_hwmon/sample_ms
  3082. echo 80 > $npubw/bw_hwmon/io_percent
  3083. echo 20 > $npubw/bw_hwmon/hist_memory
  3084. echo 10 > $npubw/bw_hwmon/hyst_length
  3085. echo 30 > $npubw/bw_hwmon/down_thres
  3086. echo 0 > $npubw/bw_hwmon/guard_band_mbps
  3087. echo 250 > $npubw/bw_hwmon/up_scale
  3088. echo 0 > $npubw/bw_hwmon/idle_mbps
  3089. echo 40 > $npubw/polling_interval
  3090. echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
  3091. done
  3092. done
  3093. # memlat specific settings are moved to seperate file under
  3094. # device/target specific folder
  3095. setprop vendor.dcvs.prop 1
  3096. # cpuset parameters
  3097. echo 0-5 > /dev/cpuset/background/cpus
  3098. echo 0-5 > /dev/cpuset/system-background/cpus
  3099. # Turn off scheduler boost at the end
  3100. echo 0 > /proc/sys/kernel/sched_boost
  3101. # Turn on sleep modes.
  3102. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3103. ;;
  3104. esac
  3105. ;;
  3106. esac
  3107. case "$target" in
  3108. "lito")
  3109. #Apply settings for lito
  3110. if [ -f /sys/devices/soc0/soc_id ]; then
  3111. soc_id=`cat /sys/devices/soc0/soc_id`
  3112. fi
  3113. case "$soc_id" in
  3114. "400" | "440" | "476" )
  3115. # Core control parameters on silver
  3116. echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred
  3117. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  3118. echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  3119. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  3120. echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
  3121. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  3122. # Disable Core control on gold, prime
  3123. echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable
  3124. echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/enable
  3125. # Setting b.L scheduler parameters
  3126. echo 65 85 > /proc/sys/kernel/sched_downmigrate
  3127. echo 71 95 > /proc/sys/kernel/sched_upmigrate
  3128. echo 85 > /proc/sys/kernel/sched_group_downmigrate
  3129. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  3130. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  3131. echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_ns
  3132. echo 0 > /proc/sys/kernel/sched_coloc_busy_hysteresis_enable_cpus
  3133. echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_max_ms
  3134. # disable unfiltering
  3135. echo 20000000 > /proc/sys/kernel/sched_task_unfilter_period
  3136. echo 1 > /proc/sys/kernel/sched_task_unfilter_nr_windows
  3137. # configure governor settings for silver cluster
  3138. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
  3139. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us
  3140. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us
  3141. echo 1228800 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
  3142. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
  3143. echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
  3144. echo 650000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq
  3145. # configure governor settings for gold cluster
  3146. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy6/scaling_governor
  3147. echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/up_rate_limit_us
  3148. echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/down_rate_limit_us
  3149. echo 1228800 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/hispeed_freq
  3150. echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load
  3151. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  3152. echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/pl
  3153. echo 672000 > /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq
  3154. echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/rtg_boost_freq
  3155. # configure governor settings for gold+ cluster
  3156. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor
  3157. echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us
  3158. echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/down_rate_limit_us
  3159. echo 1228800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
  3160. echo 85 > /sys/devices/system/cpu/cpu7/cpufreq/schedutil/hispeed_load
  3161. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  3162. echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl
  3163. echo 672000 > /sys/devices/system/cpu/cpufreq/policy7/scaling_min_freq
  3164. echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/rtg_boost_freq
  3165. # colocation v3 settings
  3166. echo 51 > /proc/sys/kernel/sched_min_task_util_for_boost
  3167. echo 35 > /proc/sys/kernel/sched_min_task_util_for_colocation
  3168. # Enable conservative pl
  3169. echo 1 > /proc/sys/kernel/sched_conservative_pl
  3170. echo "0:1228800" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
  3171. echo 120 > /sys/devices/system/cpu/cpu_boost/input_boost_ms
  3172. # Set Memory parameters
  3173. configure_memory_parameters
  3174. if [ `cat /sys/devices/soc0/revision` == "2.0" ]; then
  3175. # r2.0 related changes
  3176. echo "0:1075200" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
  3177. echo 610000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq
  3178. echo 1075200 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
  3179. echo 1152000 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/hispeed_freq
  3180. echo 1401600 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
  3181. echo 614400 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
  3182. echo 652800 > /sys/devices/system/cpu/cpufreq/policy6/scaling_min_freq
  3183. echo 806400 > /sys/devices/system/cpu/cpufreq/policy7/scaling_min_freq
  3184. echo 83 > /proc/sys/kernel/sched_asym_cap_sibling_freq_match_pct
  3185. fi
  3186. # Enable bus-dcvs
  3187. for device in /sys/devices/platform/soc
  3188. do
  3189. for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
  3190. do
  3191. echo "bw_hwmon" > $cpubw/governor
  3192. echo "2288 4577 7110 9155 12298 14236 16265" > $cpubw/bw_hwmon/mbps_zones
  3193. echo 4 > $cpubw/bw_hwmon/sample_ms
  3194. echo 68 > $cpubw/bw_hwmon/io_percent
  3195. echo 20 > $cpubw/bw_hwmon/hist_memory
  3196. echo 0 > $cpubw/bw_hwmon/hyst_length
  3197. echo 80 > $cpubw/bw_hwmon/down_thres
  3198. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  3199. echo 250 > $cpubw/bw_hwmon/up_scale
  3200. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  3201. echo 50 > $cpubw/polling_interval
  3202. done
  3203. for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
  3204. do
  3205. echo "bw_hwmon" > $llccbw/governor
  3206. echo "1144 1720 2086 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones
  3207. echo 4 > $llccbw/bw_hwmon/sample_ms
  3208. echo 68 > $llccbw/bw_hwmon/io_percent
  3209. echo 20 > $llccbw/bw_hwmon/hist_memory
  3210. echo 0 > $llccbw/bw_hwmon/hyst_length
  3211. echo 80 > $llccbw/bw_hwmon/down_thres
  3212. echo 0 > $llccbw/bw_hwmon/guard_band_mbps
  3213. echo 250 > $llccbw/bw_hwmon/up_scale
  3214. echo 1600 > $llccbw/bw_hwmon/idle_mbps
  3215. echo 50 > $llccbw/polling_interval
  3216. done
  3217. for npubw in $device/*npu*-ddr-bw/devfreq/*npu*-ddr-bw
  3218. do
  3219. echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
  3220. echo "bw_hwmon" > $npubw/governor
  3221. echo "1144 1720 2086 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones
  3222. echo 4 > $npubw/bw_hwmon/sample_ms
  3223. echo 80 > $npubw/bw_hwmon/io_percent
  3224. echo 20 > $npubw/bw_hwmon/hist_memory
  3225. echo 10 > $npubw/bw_hwmon/hyst_length
  3226. echo 30 > $npubw/bw_hwmon/down_thres
  3227. echo 0 > $npubw/bw_hwmon/guard_band_mbps
  3228. echo 250 > $npubw/bw_hwmon/up_scale
  3229. echo 0 > $npubw/bw_hwmon/idle_mbps
  3230. echo 40 > $npubw/polling_interval
  3231. echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
  3232. done
  3233. for npullccbw in $device/*npu*-llcc-bw/devfreq/*npu*-llcc-bw
  3234. do
  3235. echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
  3236. echo "bw_hwmon" > $npullccbw/governor
  3237. echo "2288 4577 7110 9155 12298 14236 16265" > $npullccbw/bw_hwmon/mbps_zones
  3238. echo 4 > $npullccbw/bw_hwmon/sample_ms
  3239. echo 100 > $npullccbw/bw_hwmon/io_percent
  3240. echo 20 > $npullccbw/bw_hwmon/hist_memory
  3241. echo 10 > $npullccbw/bw_hwmon/hyst_length
  3242. echo 30 > $npullccbw/bw_hwmon/down_thres
  3243. echo 0 > $npullccbw/bw_hwmon/guard_band_mbps
  3244. echo 250 > $npullccbw/bw_hwmon/up_scale
  3245. echo 40 > $npullccbw/polling_interval
  3246. echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
  3247. done
  3248. done
  3249. # memlat specific settings are moved to seperate file under
  3250. # device/target specific folder
  3251. setprop vendor.dcvs.prop 0
  3252. setprop vendor.dcvs.prop 1
  3253. # cpuset parameters
  3254. echo 0-5 > /dev/cpuset/background/cpus
  3255. echo 0-5 > /dev/cpuset/system-background/cpus
  3256. # Turn off scheduler boost at the end
  3257. echo 0 > /proc/sys/kernel/sched_boost
  3258. # Turn on sleep modes
  3259. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3260. ;;
  3261. esac
  3262. #Apply settings for lagoon
  3263. case "$soc_id" in
  3264. "434" | "459" )
  3265. # Core control parameters on silver
  3266. echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred
  3267. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  3268. echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  3269. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  3270. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  3271. echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
  3272. # Disable Core control on gold
  3273. echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable
  3274. # disable unfiltering
  3275. echo 20000000 > /proc/sys/kernel/sched_task_unfilter_period
  3276. # Setting b.L scheduler parameters
  3277. # default sched up and down migrate values are 95 and 85
  3278. echo 65 > /proc/sys/kernel/sched_downmigrate
  3279. echo 71 > /proc/sys/kernel/sched_upmigrate
  3280. # default sched up and down migrate values are 100 and 95
  3281. echo 85 > /proc/sys/kernel/sched_group_downmigrate
  3282. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  3283. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  3284. echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_ns
  3285. echo 0 > /proc/sys/kernel/sched_coloc_busy_hysteresis_enable_cpus
  3286. echo 0 > /proc/sys/kernel/sched_coloc_busy_hyst_max_ms
  3287. # configure governor settings for little cluster
  3288. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3289. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  3290. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  3291. echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  3292. echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3293. # configure governor settings for big cluster
  3294. echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
  3295. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us
  3296. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us
  3297. echo 1248000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq
  3298. echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  3299. #colocation v3 settings
  3300. echo 740000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/rtg_boost_freq
  3301. echo 0 > /sys/devices/system/cpu/cpufreq/policy6/schedutil/rtg_boost_freq
  3302. echo 51 > /proc/sys/kernel/sched_min_task_util_for_boost
  3303. # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
  3304. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  3305. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  3306. echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load
  3307. # Enable conservative pl
  3308. echo 1 > /proc/sys/kernel/sched_conservative_pl
  3309. echo "0:1248000" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
  3310. echo 120 > /sys/devices/system/cpu/cpu_boost/input_boost_ms
  3311. # Set Memory parameters
  3312. configure_memory_parameters
  3313. # Enable bus-dcvs
  3314. for device in /sys/devices/platform/soc
  3315. do
  3316. for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
  3317. do
  3318. echo "bw_hwmon" > $cpubw/governor
  3319. echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones
  3320. echo 4 > $cpubw/bw_hwmon/sample_ms
  3321. echo 68 > $cpubw/bw_hwmon/io_percent
  3322. echo 20 > $cpubw/bw_hwmon/hist_memory
  3323. echo 0 > $cpubw/bw_hwmon/hyst_length
  3324. echo 80 > $cpubw/bw_hwmon/down_thres
  3325. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  3326. echo 250 > $cpubw/bw_hwmon/up_scale
  3327. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  3328. echo 50 > $cpubw/polling_interval
  3329. done
  3330. for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
  3331. do
  3332. echo "bw_hwmon" > $llccbw/governor
  3333. echo "1144 1720 2086 2929 3879 5931 6881 8137" > $llccbw/bw_hwmon/mbps_zones
  3334. echo 4 > $llccbw/bw_hwmon/sample_ms
  3335. echo 68 > $llccbw/bw_hwmon/io_percent
  3336. echo 20 > $llccbw/bw_hwmon/hist_memory
  3337. echo 0 > $llccbw/bw_hwmon/hyst_length
  3338. echo 80 > $llccbw/bw_hwmon/down_thres
  3339. echo 0 > $llccbw/bw_hwmon/guard_band_mbps
  3340. echo 250 > $llccbw/bw_hwmon/up_scale
  3341. echo 1600 > $llccbw/bw_hwmon/idle_mbps
  3342. echo 40 > $llccbw/polling_interval
  3343. done
  3344. for npubw in $device/*npu*-ddr-bw/devfreq/*npu*-ddr-bw
  3345. do
  3346. echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
  3347. echo "bw_hwmon" > $npubw/governor
  3348. echo "1144 1720 2086 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones
  3349. echo 4 > $npubw/bw_hwmon/sample_ms
  3350. echo 80 > $npubw/bw_hwmon/io_percent
  3351. echo 20 > $npubw/bw_hwmon/hist_memory
  3352. echo 10 > $npubw/bw_hwmon/hyst_length
  3353. echo 30 > $npubw/bw_hwmon/down_thres
  3354. echo 0 > $npubw/bw_hwmon/guard_band_mbps
  3355. echo 250 > $npubw/bw_hwmon/up_scale
  3356. echo 0 > $npubw/bw_hwmon/idle_mbps
  3357. echo 40 > $npubw/polling_interval
  3358. echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
  3359. done
  3360. for npullccbw in $device/*npu*-llcc-bw/devfreq/*npu*-llcc-bw
  3361. do
  3362. echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
  3363. echo "bw_hwmon" > $npullccbw/governor
  3364. echo "2288 4577 7110 9155 12298 14236 16265" > $npullccbw/bw_hwmon/mbps_zones
  3365. echo 4 > $npullccbw/bw_hwmon/sample_ms
  3366. echo 100 > $npullccbw/bw_hwmon/io_percent
  3367. echo 20 > $npullccbw/bw_hwmon/hist_memory
  3368. echo 10 > $npullccbw/bw_hwmon/hyst_length
  3369. echo 30 > $npullccbw/bw_hwmon/down_thres
  3370. echo 0 > $npullccbw/bw_hwmon/guard_band_mbps
  3371. echo 250 > $npullccbw/bw_hwmon/up_scale
  3372. echo 40 > $npullccbw/polling_interval
  3373. echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
  3374. done
  3375. done
  3376. # memlat specific settings are moved to seperate file under
  3377. # device/target specific folder
  3378. setprop vendor.dcvs.prop 1
  3379. # cpuset parameters
  3380. echo 0-5 > /dev/cpuset/background/cpus
  3381. echo 0-5 > /dev/cpuset/system-background/cpus
  3382. # Turn off scheduler boost at the end
  3383. echo 0 > /proc/sys/kernel/sched_boost
  3384. # Turn off sleep modes
  3385. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3386. ;;
  3387. esac
  3388. esac
  3389. case "$target" in
  3390. "bengal")
  3391. if [ -f /sys/devices/soc0/soc_id ]; then
  3392. soc_id=`cat /sys/devices/soc0/soc_id`
  3393. else
  3394. soc_id=`cat /sys/devices/system/soc/soc0/id`
  3395. fi
  3396. case "$soc_id" in
  3397. "417" | "420" | "444" | "445" | "469" | "470" )
  3398. # Core control is temporarily disabled till bring up
  3399. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
  3400. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  3401. # Core control parameters on big
  3402. echo 40 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  3403. echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  3404. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  3405. echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
  3406. # Setting b.L scheduler parameters
  3407. echo 67 > /proc/sys/kernel/sched_downmigrate
  3408. echo 77 > /proc/sys/kernel/sched_upmigrate
  3409. echo 85 > /proc/sys/kernel/sched_group_downmigrate
  3410. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  3411. # cpuset settings
  3412. echo 0-3 > /dev/cpuset/background/cpus
  3413. echo 0-3 > /dev/cpuset/system-background/cpus
  3414. # configure governor settings for little cluster
  3415. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3416. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  3417. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  3418. echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  3419. echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3420. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rtg_boost_freq
  3421. # configure governor settings for big cluster
  3422. echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  3423. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/up_rate_limit_us
  3424. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/down_rate_limit_us
  3425. echo 1401600 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
  3426. echo 1056000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  3427. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rtg_boost_freq
  3428. echo "0:1017600" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
  3429. echo 80 > /sys/devices/system/cpu/cpu_boost/input_boost_ms
  3430. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  3431. # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
  3432. echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
  3433. echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
  3434. echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
  3435. echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
  3436. echo -6 > /sys/devices/system/cpu/cpu4/sched_load_boost
  3437. echo -6 > /sys/devices/system/cpu/cpu5/sched_load_boost
  3438. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  3439. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  3440. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
  3441. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_load
  3442. # Set Memory parameters
  3443. configure_memory_parameters
  3444. # Enable bus-dcvs
  3445. ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type`
  3446. ddr_type4="07"
  3447. ddr_type3="05"
  3448. for device in /sys/devices/platform/soc
  3449. do
  3450. for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw
  3451. do
  3452. echo "bw_hwmon" > $cpubw/governor
  3453. echo 50 > $cpubw/polling_interval
  3454. echo 762 > $cpubw/min_freq
  3455. if [ ${ddr_type:4:2} == $ddr_type4 ]; then
  3456. # LPDDR4
  3457. echo "2288 3440 4173 5195 5859 7759 10322 11863 13763" > $cpubw/bw_hwmon/mbps_zones
  3458. echo 85 > $cpubw/bw_hwmon/io_percent
  3459. fi
  3460. if [ ${ddr_type:4:2} == $ddr_type3 ]; then
  3461. # LPDDR3
  3462. echo "1525 3440 5195 5859 7102" > $cpubw/bw_hwmon/mbps_zones
  3463. echo 34 > $cpubw/bw_hwmon/io_percent
  3464. fi
  3465. echo 4 > $cpubw/bw_hwmon/sample_ms
  3466. echo 90 > $cpubw/bw_hwmon/decay_rate
  3467. echo 190 > $cpubw/bw_hwmon/bw_step
  3468. echo 20 > $cpubw/bw_hwmon/hist_memory
  3469. echo 0 > $cpubw/bw_hwmon/hyst_length
  3470. echo 80 > $cpubw/bw_hwmon/down_thres
  3471. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  3472. echo 250 > $cpubw/bw_hwmon/up_scale
  3473. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  3474. done
  3475. done
  3476. # memlat specific settings are moved to seperate file under
  3477. # device/target specific folder
  3478. setprop vendor.dcvs.prop 1
  3479. # colcoation v3 disabled
  3480. echo 0 > /proc/sys/kernel/sched_min_task_util_for_boost
  3481. echo 0 > /proc/sys/kernel/sched_min_task_util_for_colocation
  3482. # Turn off scheduler boost at the end
  3483. echo 0 > /proc/sys/kernel/sched_boost
  3484. # Turn on sleep modes
  3485. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3486. ;;
  3487. esac
  3488. # Scuba perf/power tunings
  3489. case "$soc_id" in
  3490. "441" )
  3491. # Quad-core device. disable core_ctl
  3492. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
  3493. # Configure schedutil governor settings
  3494. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3495. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  3496. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  3497. echo 1305600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  3498. echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3499. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rtg_boost_freq
  3500. # sched_load_boost as -6 is equivalent to target load as 85.
  3501. echo 0 > /proc/sys/kernel/sched_boost
  3502. echo -6 > /sys/devices/system/cpu/cpu0/sched_load_boost
  3503. echo -6 > /sys/devices/system/cpu/cpu1/sched_load_boost
  3504. echo -6 > /sys/devices/system/cpu/cpu2/sched_load_boost
  3505. echo -6 > /sys/devices/system/cpu/cpu3/sched_load_boost
  3506. echo 85 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_load
  3507. # Set Memory parameters
  3508. configure_memory_parameters
  3509. # Enable bus-dcvs
  3510. ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type`
  3511. ddr_type4="07"
  3512. ddr_type3="05"
  3513. for device in /sys/devices/platform/soc
  3514. do
  3515. for cpubw in $device/*cpu-cpu-ddr-bw/devfreq/*cpu-cpu-ddr-bw
  3516. do
  3517. echo "bw_hwmon" > $cpubw/governor
  3518. echo 50 > $cpubw/polling_interval
  3519. echo 762 > $cpubw/min_freq
  3520. if [ ${ddr_type:4:2} == $ddr_type4 ]; then
  3521. # LPDDR4
  3522. echo "2288 3440 4173 5195 5859 7759 10322 11863 13763" > $cpubw/bw_hwmon/mbps_zones
  3523. echo 85 > $cpubw/bw_hwmon/io_percent
  3524. fi
  3525. if [ ${ddr_type:4:2} == $ddr_type3 ]; then
  3526. # LPDDR3
  3527. echo "1525 3440 5195 5859 7102" > $cpubw/bw_hwmon/mbps_zones
  3528. echo 34 > $cpubw/bw_hwmon/io_percent
  3529. fi
  3530. echo 4 > $cpubw/bw_hwmon/sample_ms
  3531. echo 90 > $cpubw/bw_hwmon/decay_rate
  3532. echo 190 > $cpubw/bw_hwmon/bw_step
  3533. echo 20 > $cpubw/bw_hwmon/hist_memory
  3534. echo 0 > $cpubw/bw_hwmon/hyst_length
  3535. echo 80 > $cpubw/bw_hwmon/down_thres
  3536. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  3537. echo 250 > $cpubw/bw_hwmon/up_scale
  3538. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  3539. done
  3540. for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
  3541. do
  3542. echo "mem_latency" > $memlat/governor
  3543. echo 10 > $memlat/polling_interval
  3544. echo 400 > $memlat/mem_latency/ratio_ceil
  3545. done
  3546. for latfloor in $device/*cpu*-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
  3547. do
  3548. echo "compute" > $latfloor/governor
  3549. echo 10 > $latfloor/polling_interval
  3550. done
  3551. done
  3552. # Disable low power modes. Enable it after LPM stable
  3553. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3554. ;;
  3555. esac
  3556. ;;
  3557. esac
  3558. #Apply settings for atoll
  3559. case "$target" in
  3560. "atoll")
  3561. # Core control parameters on silver
  3562. echo 0 0 0 0 1 1 > /sys/devices/system/cpu/cpu0/core_ctl/not_preferred
  3563. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  3564. echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  3565. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  3566. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  3567. echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
  3568. echo 0 > /sys/devices/system/cpu/cpu6/core_ctl/enable
  3569. # Setting b.L scheduler parameters
  3570. # default sched up and down migrate values are 95 and 85
  3571. echo 65 > /proc/sys/kernel/sched_downmigrate
  3572. echo 71 > /proc/sys/kernel/sched_upmigrate
  3573. # default sched up and down migrate values are 100 and 95
  3574. echo 85 > /proc/sys/kernel/sched_group_downmigrate
  3575. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  3576. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  3577. #colocation v3 settings
  3578. echo 740000 > /proc/sys/kernel/sched_little_cluster_coloc_fmin_khz
  3579. # configure governor settings for little cluster
  3580. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3581. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us
  3582. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us
  3583. echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  3584. echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3585. # configure governor settings for big cluster
  3586. echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
  3587. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us
  3588. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us
  3589. echo 1267200 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq
  3590. echo 652800 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  3591. # sched_load_boost as -6 is equivalent to target load as 85. It is per cpu tunable.
  3592. echo -6 > /sys/devices/system/cpu/cpu6/sched_load_boost
  3593. echo -6 > /sys/devices/system/cpu/cpu7/sched_load_boost
  3594. echo 85 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_load
  3595. echo "0:1248000" > /sys/module/cpu_boost/parameters/input_boost_freq
  3596. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  3597. # Set Memory parameters
  3598. configure_memory_parameters
  3599. # Enable bus-dcvs
  3600. for device in /sys/devices/platform/soc
  3601. do
  3602. for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
  3603. do
  3604. echo "bw_hwmon" > $cpubw/governor
  3605. echo "2288 4577 7110 9155 12298 14236" > $cpubw/bw_hwmon/mbps_zones
  3606. echo 4 > $cpubw/bw_hwmon/sample_ms
  3607. echo 68 > $cpubw/bw_hwmon/io_percent
  3608. echo 20 > $cpubw/bw_hwmon/hist_memory
  3609. echo 0 > $cpubw/bw_hwmon/hyst_length
  3610. echo 80 > $cpubw/bw_hwmon/down_thres
  3611. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  3612. echo 250 > $cpubw/bw_hwmon/up_scale
  3613. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  3614. echo 50 > $cpubw/polling_interval
  3615. done
  3616. for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
  3617. do
  3618. echo "bw_hwmon" > $llccbw/governor
  3619. echo "1144 1720 2086 2929 3879 5931 6881 8137" > $llccbw/bw_hwmon/mbps_zones
  3620. echo 4 > $llccbw/bw_hwmon/sample_ms
  3621. echo 68 > $llccbw/bw_hwmon/io_percent
  3622. echo 20 > $llccbw/bw_hwmon/hist_memory
  3623. echo 0 > $llccbw/bw_hwmon/hyst_length
  3624. echo 80 > $llccbw/bw_hwmon/down_thres
  3625. echo 0 > $llccbw/bw_hwmon/guard_band_mbps
  3626. echo 250 > $llccbw/bw_hwmon/up_scale
  3627. echo 1600 > $llccbw/bw_hwmon/idle_mbps
  3628. echo 40 > $llccbw/polling_interval
  3629. done
  3630. for npubw in $device/*npu*-npu-ddr-bw/devfreq/*npu*-npu-ddr-bw
  3631. do
  3632. echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
  3633. echo "bw_hwmon" > $npubw/governor
  3634. echo "1144 1720 2086 2929 3879 5931 6881 8137" > $npubw/bw_hwmon/mbps_zones
  3635. echo 4 > $npubw/bw_hwmon/sample_ms
  3636. echo 80 > $npubw/bw_hwmon/io_percent
  3637. echo 20 > $npubw/bw_hwmon/hist_memory
  3638. echo 10 > $npubw/bw_hwmon/hyst_length
  3639. echo 30 > $npubw/bw_hwmon/down_thres
  3640. echo 0 > $npubw/bw_hwmon/guard_band_mbps
  3641. echo 250 > $npubw/bw_hwmon/up_scale
  3642. echo 0 > $npubw/bw_hwmon/idle_mbps
  3643. echo 40 > $npubw/polling_interval
  3644. echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
  3645. done
  3646. done
  3647. # memlat specific settings are moved to seperate file under
  3648. # device/target specific folder
  3649. setprop vendor.dcvs.prop 1
  3650. # cpuset parameters
  3651. echo 0-5 > /dev/cpuset/background/cpus
  3652. echo 0-5 > /dev/cpuset/system-background/cpus
  3653. # Turn off scheduler boost at the end
  3654. echo 0 > /proc/sys/kernel/sched_boost
  3655. # Turn on sleep modes
  3656. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3657. ;;
  3658. esac
  3659. case "$target" in
  3660. "qcs605")
  3661. #Apply settings for qcs605
  3662. # Set the default IRQ affinity to the silver cluster. When a
  3663. # CPU is isolated/hotplugged, the IRQ affinity is adjusted
  3664. # to one of the CPU from the default IRQ affinity mask.
  3665. echo 3f > /proc/irq/default_smp_affinity
  3666. if [ -f /sys/devices/soc0/soc_id ]; then
  3667. soc_id=`cat /sys/devices/soc0/soc_id`
  3668. else
  3669. soc_id=`cat /sys/devices/system/soc/soc0/id`
  3670. fi
  3671. if [ -f /sys/devices/soc0/hw_platform ]; then
  3672. hw_platform=`cat /sys/devices/soc0/hw_platform`
  3673. else
  3674. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  3675. fi
  3676. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  3677. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  3678. fi
  3679. case "$soc_id" in
  3680. "347" )
  3681. # Start Host based Touch processing
  3682. case "$hw_platform" in
  3683. "Surf" | "RCM" | "QRD" )
  3684. start_hbtp
  3685. ;;
  3686. "MTP" )
  3687. if [ $platform_subtype_id != 5 ]; then
  3688. start_hbtp
  3689. fi
  3690. ;;
  3691. esac
  3692. # Core control parameters on silver
  3693. echo 4 > /sys/devices/system/cpu/cpu0/core_ctl/min_cpus
  3694. echo 60 > /sys/devices/system/cpu/cpu0/core_ctl/busy_up_thres
  3695. echo 40 > /sys/devices/system/cpu/cpu0/core_ctl/busy_down_thres
  3696. echo 100 > /sys/devices/system/cpu/cpu0/core_ctl/offline_delay_ms
  3697. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/is_big_cluster
  3698. echo 8 > /sys/devices/system/cpu/cpu0/core_ctl/task_thres
  3699. # Setting b.L scheduler parameters
  3700. echo 96 > /proc/sys/kernel/sched_upmigrate
  3701. echo 90 > /proc/sys/kernel/sched_downmigrate
  3702. echo 140 > /proc/sys/kernel/sched_group_upmigrate
  3703. echo 120 > /proc/sys/kernel/sched_group_downmigrate
  3704. # configure governor settings for little cluster
  3705. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3706. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
  3707. echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  3708. echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3709. # configure governor settings for big cluster
  3710. echo "schedutil" > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
  3711. echo 0 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/rate_limit_us
  3712. echo 1344000 > /sys/devices/system/cpu/cpu6/cpufreq/schedutil/hispeed_freq
  3713. echo 825600 > /sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq
  3714. echo "0:1209600" > /sys/module/cpu_boost/parameters/input_boost_freq
  3715. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  3716. # Enable bus-dcvs
  3717. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  3718. do
  3719. echo "bw_hwmon" > $cpubw/governor
  3720. echo 50 > $cpubw/polling_interval
  3721. echo "1144 1720 2086 2929 3879 5931 6881" > $cpubw/bw_hwmon/mbps_zones
  3722. echo 4 > $cpubw/bw_hwmon/sample_ms
  3723. echo 68 > $cpubw/bw_hwmon/io_percent
  3724. echo 20 > $cpubw/bw_hwmon/hist_memory
  3725. echo 0 > $cpubw/bw_hwmon/hyst_length
  3726. echo 80 > $cpubw/bw_hwmon/down_thres
  3727. echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps
  3728. echo 68 > $cpubw/bw_hwmon/low_power_io_percent
  3729. echo 20 > $cpubw/bw_hwmon/low_power_delay
  3730. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  3731. echo 250 > $cpubw/bw_hwmon/up_scale
  3732. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  3733. done
  3734. #Enable mem_latency governor for DDR scaling
  3735. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  3736. do
  3737. echo "mem_latency" > $memlat/governor
  3738. echo 10 > $memlat/polling_interval
  3739. echo 400 > $memlat/mem_latency/ratio_ceil
  3740. done
  3741. #Enable mem_latency governor for L3 scaling
  3742. for memlat in /sys/class/devfreq/*qcom,l3-cpu*
  3743. do
  3744. echo "mem_latency" > $memlat/governor
  3745. echo 10 > $memlat/polling_interval
  3746. echo 400 > $memlat/mem_latency/ratio_ceil
  3747. done
  3748. echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  3749. # cpuset parameters
  3750. echo 0-5 > /dev/cpuset/background/cpus
  3751. echo 0-5 > /dev/cpuset/system-background/cpus
  3752. # Turn off scheduler boost at the end
  3753. echo 0 > /proc/sys/kernel/sched_boost
  3754. # Turn on sleep modes.
  3755. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3756. echo 100 > /proc/sys/vm/swappiness
  3757. ;;
  3758. esac
  3759. ;;
  3760. esac
  3761. case "$target" in
  3762. "apq8084")
  3763. echo 4 > /sys/module/lpm_levels/enable_low_power/l2
  3764. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  3765. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  3766. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
  3767. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
  3768. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  3769. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
  3770. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
  3771. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
  3772. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  3773. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  3774. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
  3775. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
  3776. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  3777. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  3778. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
  3779. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
  3780. echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled
  3781. echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled
  3782. echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled
  3783. echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled
  3784. echo 0 > /sys/module/msm_thermal/core_control/enabled
  3785. echo 1 > /sys/devices/system/cpu/cpu1/online
  3786. echo 1 > /sys/devices/system/cpu/cpu2/online
  3787. echo 1 > /sys/devices/system/cpu/cpu3/online
  3788. for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor
  3789. do
  3790. echo "cpubw_hwmon" > $devfreq_gov
  3791. done
  3792. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3793. echo "interactive" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
  3794. echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
  3795. echo "interactive" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
  3796. echo "20000 1400000:40000 1700000:20000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  3797. echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  3798. echo 1497600 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  3799. echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  3800. echo 40000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  3801. echo 20 > /sys/module/cpu_boost/parameters/boost_ms
  3802. echo 1728000 > /sys/module/cpu_boost/parameters/sync_threshold
  3803. echo 100000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  3804. echo 1497600 > /sys/module/cpu_boost/parameters/input_boost_freq
  3805. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  3806. echo 1 > /dev/cpuctl/apps/cpu.notify_on_migrate
  3807. echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3808. echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  3809. echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  3810. echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  3811. echo 1 > /sys/module/msm_thermal/core_control/enabled
  3812. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  3813. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3814. chown -h root.system /sys/devices/system/cpu/mfreq
  3815. chmod -h 220 /sys/devices/system/cpu/mfreq
  3816. chown -h root.system /sys/devices/system/cpu/cpu1/online
  3817. chown -h root.system /sys/devices/system/cpu/cpu2/online
  3818. chown -h root.system /sys/devices/system/cpu/cpu3/online
  3819. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  3820. chmod -h 664 /sys/devices/system/cpu/cpu2/online
  3821. chmod -h 664 /sys/devices/system/cpu/cpu3/online
  3822. ;;
  3823. esac
  3824. case "$target" in
  3825. "mpq8092")
  3826. echo 4 > /sys/module/lpm_levels/enable_low_power/l2
  3827. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
  3828. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
  3829. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
  3830. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
  3831. echo 1 > /sys/module/msm_pm/modes/cpu0/power_collapse/idle_enabled
  3832. echo 1 > /sys/module/msm_pm/modes/cpu1/power_collapse/idle_enabled
  3833. echo 1 > /sys/module/msm_pm/modes/cpu2/power_collapse/idle_enabled
  3834. echo 1 > /sys/module/msm_pm/modes/cpu3/power_collapse/idle_enabled
  3835. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
  3836. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
  3837. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
  3838. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
  3839. echo 1 > /sys/module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
  3840. echo 1 > /sys/module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
  3841. echo 1 > /sys/module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
  3842. echo 1 > /sys/module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
  3843. echo 1 > /sys/module/msm_pm/modes/cpu0/retention/idle_enabled
  3844. echo 1 > /sys/module/msm_pm/modes/cpu1/retention/idle_enabled
  3845. echo 1 > /sys/module/msm_pm/modes/cpu2/retention/idle_enabled
  3846. echo 1 > /sys/module/msm_pm/modes/cpu3/retention/idle_enabled
  3847. echo 0 > /sys/module/msm_thermal/core_control/enabled
  3848. echo 1 > /sys/devices/system/cpu/cpu1/online
  3849. echo 1 > /sys/devices/system/cpu/cpu2/online
  3850. echo 1 > /sys/devices/system/cpu/cpu3/online
  3851. echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3852. echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
  3853. echo "ondemand" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
  3854. echo "ondemand" > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
  3855. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  3856. echo 90 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
  3857. echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  3858. echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3859. echo 300000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
  3860. echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  3861. echo 300000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
  3862. echo 1 > /sys/module/msm_thermal/core_control/enabled
  3863. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  3864. chown -h system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3865. chown -h root.system /sys/devices/system/cpu/mfreq
  3866. chmod -h 220 /sys/devices/system/cpu/mfreq
  3867. chown -h root.system /sys/devices/system/cpu/cpu1/online
  3868. chown -h root.system /sys/devices/system/cpu/cpu2/online
  3869. chown -h root.system /sys/devices/system/cpu/cpu3/online
  3870. chmod -h 664 /sys/devices/system/cpu/cpu1/online
  3871. chmod -h 664 /sys/devices/system/cpu/cpu2/online
  3872. chmod -h 664 /sys/devices/system/cpu/cpu3/online
  3873. ;;
  3874. esac
  3875. case "$target" in
  3876. "msm8992")
  3877. # disable thermal bcl hotplug to switch governor
  3878. echo 0 > /sys/module/msm_thermal/core_control/enabled
  3879. echo -n disable > /sys/devices/soc.*/qcom,bcl.*/mode
  3880. bcl_hotplug_mask=`cat /sys/devices/soc.*/qcom,bcl.*/hotplug_mask`
  3881. echo 0 > /sys/devices/soc.*/qcom,bcl.*/hotplug_mask
  3882. echo -n enable > /sys/devices/soc.*/qcom,bcl.*/mode
  3883. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  3884. # configure governor settings for little cluster
  3885. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3886. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  3887. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  3888. echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  3889. echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  3890. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  3891. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  3892. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  3893. echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  3894. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  3895. echo 80000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
  3896. echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3897. # online CPU4
  3898. echo 1 > /sys/devices/system/cpu/cpu4/online
  3899. # configure governor settings for big cluster
  3900. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  3901. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  3902. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  3903. echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  3904. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  3905. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  3906. echo 1536000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  3907. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  3908. echo 85 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  3909. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  3910. echo 80000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
  3911. echo 384000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  3912. # re-enable thermal and BCL hotplug
  3913. echo 1 > /sys/module/msm_thermal/core_control/enabled
  3914. echo -n disable > /sys/devices/soc.*/qcom,bcl.*/mode
  3915. echo $bcl_hotplug_mask > /sys/devices/soc.*/qcom,bcl.*/hotplug_mask
  3916. echo $bcl_soc_hotplug_mask > /sys/devices/soc.*/qcom,bcl.*/hotplug_soc_mask
  3917. echo -n enable > /sys/devices/soc.*/qcom,bcl.*/mode
  3918. # plugin remaining A57s
  3919. echo 1 > /sys/devices/system/cpu/cpu5/online
  3920. # input boost configuration
  3921. echo 0:1248000 > /sys/module/cpu_boost/parameters/input_boost_freq
  3922. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  3923. # Enable task migration fixups in the scheduler
  3924. echo 1 > /proc/sys/kernel/sched_migration_fixup
  3925. for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor
  3926. do
  3927. echo "bw_hwmon" > $devfreq_gov
  3928. done
  3929. #enable rps static configuration
  3930. echo 8 > /sys/class/net/rmnet_ipa0/queues/rx-0/rps_cpus
  3931. echo 30 > /proc/sys/kernel/sched_small_task
  3932. ;;
  3933. esac
  3934. case "$target" in
  3935. "msm8994")
  3936. # ensure at most one A57 is online when thermal hotplug is disabled
  3937. echo 0 > /sys/devices/system/cpu/cpu5/online
  3938. echo 0 > /sys/devices/system/cpu/cpu6/online
  3939. echo 0 > /sys/devices/system/cpu/cpu7/online
  3940. # in case CPU4 is online, limit its frequency
  3941. echo 960000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  3942. # Limit A57 max freq from msm_perf module in case CPU 4 is offline
  3943. echo "4:960000 5:960000 6:960000 7:960000" > /sys/module/msm_performance/parameters/cpu_max_freq
  3944. # disable thermal bcl hotplug to switch governor
  3945. echo 0 > /sys/module/msm_thermal/core_control/enabled
  3946. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  3947. do
  3948. echo -n disable > $mode
  3949. done
  3950. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  3951. do
  3952. bcl_hotplug_mask=`cat $hotplug_mask`
  3953. echo 0 > $hotplug_mask
  3954. done
  3955. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  3956. do
  3957. bcl_soc_hotplug_mask=`cat $hotplug_soc_mask`
  3958. echo 0 > $hotplug_soc_mask
  3959. done
  3960. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  3961. do
  3962. echo -n enable > $mode
  3963. done
  3964. # configure governor settings for little cluster
  3965. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  3966. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  3967. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  3968. echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  3969. echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  3970. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  3971. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  3972. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  3973. echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  3974. echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  3975. echo 80000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
  3976. echo 384000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  3977. # online CPU4
  3978. echo 1 > /sys/devices/system/cpu/cpu4/online
  3979. # Best effort limiting for first time boot if msm_performance module is absent
  3980. echo 960000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  3981. # configure governor settings for big cluster
  3982. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  3983. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  3984. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  3985. echo "19000 1400000:39000 1700000:19000" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  3986. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  3987. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  3988. echo 1248000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  3989. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  3990. echo "85 1500000:90 1800000:70" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  3991. echo 40000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  3992. echo 80000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
  3993. echo 384000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  3994. # restore A57's max
  3995. cat /sys/devices/system/cpu/cpu4/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  3996. # re-enable thermal and BCL hotplug
  3997. echo 1 > /sys/module/msm_thermal/core_control/enabled
  3998. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  3999. do
  4000. echo -n disable > $mode
  4001. done
  4002. for hotplug_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_mask
  4003. do
  4004. echo $bcl_hotplug_mask > $hotplug_mask
  4005. done
  4006. for hotplug_soc_mask in /sys/devices/soc.0/qcom,bcl.*/hotplug_soc_mask
  4007. do
  4008. echo $bcl_soc_hotplug_mask > $hotplug_soc_mask
  4009. done
  4010. for mode in /sys/devices/soc.0/qcom,bcl.*/mode
  4011. do
  4012. echo -n enable > $mode
  4013. done
  4014. # plugin remaining A57s
  4015. echo 1 > /sys/devices/system/cpu/cpu5/online
  4016. echo 1 > /sys/devices/system/cpu/cpu6/online
  4017. echo 1 > /sys/devices/system/cpu/cpu7/online
  4018. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  4019. # Restore CPU 4 max freq from msm_performance
  4020. echo "4:4294967295 5:4294967295 6:4294967295 7:4294967295" > /sys/module/msm_performance/parameters/cpu_max_freq
  4021. # input boost configuration
  4022. echo 0:1344000 > /sys/module/cpu_boost/parameters/input_boost_freq
  4023. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  4024. # Setting b.L scheduler parameters
  4025. echo 1 > /proc/sys/kernel/sched_migration_fixup
  4026. echo 30 > /proc/sys/kernel/sched_small_task
  4027. echo 20 > /proc/sys/kernel/sched_mostly_idle_load
  4028. echo 3 > /proc/sys/kernel/sched_mostly_idle_nr_run
  4029. echo 99 > /proc/sys/kernel/sched_upmigrate
  4030. echo 85 > /proc/sys/kernel/sched_downmigrate
  4031. echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
  4032. echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
  4033. #enable rps static configuration
  4034. echo 8 > /sys/class/net/rmnet_ipa0/queues/rx-0/rps_cpus
  4035. for devfreq_gov in /sys/class/devfreq/qcom,cpubw*/governor
  4036. do
  4037. echo "bw_hwmon" > $devfreq_gov
  4038. done
  4039. ;;
  4040. esac
  4041. case "$target" in
  4042. "msm8996")
  4043. # disable thermal bcl hotplug to switch governor
  4044. echo 0 > /sys/module/msm_thermal/core_control/enabled
  4045. echo -n disable > /sys/devices/soc/soc:qcom,bcl/mode
  4046. bcl_hotplug_mask=`cat /sys/devices/soc/soc:qcom,bcl/hotplug_mask`
  4047. echo 0 > /sys/devices/soc/soc:qcom,bcl/hotplug_mask
  4048. bcl_soc_hotplug_mask=`cat /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask`
  4049. echo 0 > /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask
  4050. echo -n enable > /sys/devices/soc/soc:qcom,bcl/mode
  4051. # set sync wakee policy tunable
  4052. echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker
  4053. # configure governor settings for little cluster
  4054. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  4055. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  4056. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  4057. echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  4058. echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  4059. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  4060. echo 960000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  4061. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  4062. echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  4063. echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  4064. echo 79000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
  4065. echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  4066. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif
  4067. # online CPU2
  4068. echo 1 > /sys/devices/system/cpu/cpu2/online
  4069. # configure governor settings for big cluster
  4070. echo "interactive" > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
  4071. echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_sched_load
  4072. echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/use_migration_notif
  4073. echo "19000 1400000:39000 1700000:19000 2100000:79000" > /sys/devices/system/cpu/cpu2/cpufreq/interactive/above_hispeed_delay
  4074. echo 90 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/go_hispeed_load
  4075. echo 20000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/timer_rate
  4076. echo 1248000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/hispeed_freq
  4077. echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/io_is_busy
  4078. echo "85 1500000:90 1800000:70 2100000:95" > /sys/devices/system/cpu/cpu2/cpufreq/interactive/target_loads
  4079. echo 19000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/min_sample_time
  4080. echo 79000 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/max_freq_hysteresis
  4081. echo 300000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
  4082. echo 1 > /sys/devices/system/cpu/cpu2/cpufreq/interactive/ignore_hispeed_on_notif
  4083. # re-enable thermal and BCL hotplug
  4084. echo 1 > /sys/module/msm_thermal/core_control/enabled
  4085. echo -n disable > /sys/devices/soc/soc:qcom,bcl/mode
  4086. echo $bcl_hotplug_mask > /sys/devices/soc/soc:qcom,bcl/hotplug_mask
  4087. echo $bcl_soc_hotplug_mask > /sys/devices/soc/soc:qcom,bcl/hotplug_soc_mask
  4088. echo -n enable > /sys/devices/soc/soc:qcom,bcl/mode
  4089. # input boost configuration
  4090. echo "0:1324800 2:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
  4091. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  4092. # Setting b.L scheduler parameters
  4093. echo 0 > /proc/sys/kernel/sched_boost
  4094. echo 1 > /proc/sys/kernel/sched_migration_fixup
  4095. echo 45 > /proc/sys/kernel/sched_downmigrate
  4096. echo 45 > /proc/sys/kernel/sched_upmigrate
  4097. echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
  4098. echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
  4099. echo 3 > /proc/sys/kernel/sched_spill_nr_run
  4100. echo 100 > /proc/sys/kernel/sched_init_task_load
  4101. # Enable bus-dcvs
  4102. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  4103. do
  4104. echo "bw_hwmon" > $cpubw/governor
  4105. echo 50 > $cpubw/polling_interval
  4106. echo 1525 > $cpubw/min_freq
  4107. echo "1525 5195 11863 13763" > $cpubw/bw_hwmon/mbps_zones
  4108. echo 4 > $cpubw/bw_hwmon/sample_ms
  4109. echo 34 > $cpubw/bw_hwmon/io_percent
  4110. echo 20 > $cpubw/bw_hwmon/hist_memory
  4111. echo 10 > $cpubw/bw_hwmon/hyst_length
  4112. echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps
  4113. echo 34 > $cpubw/bw_hwmon/low_power_io_percent
  4114. echo 20 > $cpubw/bw_hwmon/low_power_delay
  4115. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  4116. echo 250 > $cpubw/bw_hwmon/up_scale
  4117. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  4118. done
  4119. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  4120. do
  4121. echo "mem_latency" > $memlat/governor
  4122. echo 10 > $memlat/polling_interval
  4123. done
  4124. echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  4125. soc_revision=`cat /sys/devices/soc0/revision`
  4126. if [ "$soc_revision" == "2.0" ]; then
  4127. #Disable suspend for v2.0
  4128. echo pwr_dbg > /sys/power/wake_lock
  4129. elif [ "$soc_revision" == "2.1" ]; then
  4130. # Enable C4.D4.E4.M3 LPM modes
  4131. # Disable D3 state
  4132. echo 0 > /sys/module/lpm_levels/system/pwr/pwr-l2-gdhs/idle_enabled
  4133. echo 0 > /sys/module/lpm_levels/system/perf/perf-l2-gdhs/idle_enabled
  4134. # Disable DEF-FPC mode
  4135. echo N > /sys/module/lpm_levels/system/pwr/cpu0/fpc-def/idle_enabled
  4136. echo N > /sys/module/lpm_levels/system/pwr/cpu1/fpc-def/idle_enabled
  4137. echo N > /sys/module/lpm_levels/system/perf/cpu2/fpc-def/idle_enabled
  4138. echo N > /sys/module/lpm_levels/system/perf/cpu3/fpc-def/idle_enabled
  4139. else
  4140. # Enable all LPMs by default
  4141. # This will enable C4, D4, D3, E4 and M3 LPMs
  4142. echo N > /sys/module/lpm_levels/parameters/sleep_disabled
  4143. fi
  4144. echo N > /sys/module/lpm_levels/parameters/sleep_disabled
  4145. # Starting io prefetcher service
  4146. start iop
  4147. # Set Memory parameters
  4148. configure_memory_parameters
  4149. ;;
  4150. esac
  4151. case "$target" in
  4152. "sdm845")
  4153. # Set the default IRQ affinity to the silver cluster. When a
  4154. # CPU is isolated/hotplugged, the IRQ affinity is adjusted
  4155. # to one of the CPU from the default IRQ affinity mask.
  4156. echo f > /proc/irq/default_smp_affinity
  4157. if [ -f /sys/devices/soc0/soc_id ]; then
  4158. soc_id=`cat /sys/devices/soc0/soc_id`
  4159. else
  4160. soc_id=`cat /sys/devices/system/soc/soc0/id`
  4161. fi
  4162. if [ -f /sys/devices/soc0/hw_platform ]; then
  4163. hw_platform=`cat /sys/devices/soc0/hw_platform`
  4164. fi
  4165. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  4166. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  4167. fi
  4168. case "$soc_id" in
  4169. "321" | "341")
  4170. # Start Host based Touch processing
  4171. case "$hw_platform" in
  4172. "QRD" )
  4173. case "$platform_subtype_id" in
  4174. "32") #QVR845 do nothing
  4175. ;;
  4176. *)
  4177. start_hbtp
  4178. ;;
  4179. esac
  4180. ;;
  4181. *)
  4182. start_hbtp
  4183. ;;
  4184. esac
  4185. ;;
  4186. esac
  4187. # Core control parameters
  4188. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  4189. echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  4190. echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  4191. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  4192. echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster
  4193. echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
  4194. # Setting b.L scheduler parameters
  4195. echo 95 > /proc/sys/kernel/sched_upmigrate
  4196. echo 85 > /proc/sys/kernel/sched_downmigrate
  4197. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  4198. echo 95 > /proc/sys/kernel/sched_group_downmigrate
  4199. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  4200. # configure governor settings for little cluster
  4201. echo "schedutil" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  4202. echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us
  4203. echo 1209600 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/hispeed_freq
  4204. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/pl
  4205. echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  4206. # configure governor settings for big cluster
  4207. echo "schedutil" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  4208. echo 0 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/rate_limit_us
  4209. echo 1574400 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/hispeed_freq
  4210. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/schedutil/pl
  4211. echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
  4212. echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms
  4213. # Limit the min frequency to 825MHz
  4214. echo 825000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  4215. # Enable oom_reaper
  4216. echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper
  4217. # Enable bus-dcvs
  4218. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  4219. do
  4220. echo "bw_hwmon" > $cpubw/governor
  4221. echo 50 > $cpubw/polling_interval
  4222. echo "2288 4577 6500 8132 9155 10681" > $cpubw/bw_hwmon/mbps_zones
  4223. echo 4 > $cpubw/bw_hwmon/sample_ms
  4224. echo 50 > $cpubw/bw_hwmon/io_percent
  4225. echo 20 > $cpubw/bw_hwmon/hist_memory
  4226. echo 10 > $cpubw/bw_hwmon/hyst_length
  4227. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  4228. echo 250 > $cpubw/bw_hwmon/up_scale
  4229. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  4230. done
  4231. for llccbw in /sys/class/devfreq/*qcom,llccbw*
  4232. do
  4233. echo "bw_hwmon" > $llccbw/governor
  4234. echo 50 > $llccbw/polling_interval
  4235. echo "1720 2929 3879 5931 6881" > $llccbw/bw_hwmon/mbps_zones
  4236. echo 4 > $llccbw/bw_hwmon/sample_ms
  4237. echo 80 > $llccbw/bw_hwmon/io_percent
  4238. echo 20 > $llccbw/bw_hwmon/hist_memory
  4239. echo 10 > $llccbw/bw_hwmon/hyst_length
  4240. echo 0 > $llccbw/bw_hwmon/guard_band_mbps
  4241. echo 250 > $llccbw/bw_hwmon/up_scale
  4242. echo 1600 > $llccbw/bw_hwmon/idle_mbps
  4243. done
  4244. #Enable mem_latency governor for DDR scaling
  4245. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  4246. do
  4247. echo "mem_latency" > $memlat/governor
  4248. echo 10 > $memlat/polling_interval
  4249. echo 400 > $memlat/mem_latency/ratio_ceil
  4250. done
  4251. #Enable mem_latency governor for L3 scaling
  4252. for memlat in /sys/class/devfreq/*qcom,l3-cpu*
  4253. do
  4254. echo "mem_latency" > $memlat/governor
  4255. echo 10 > $memlat/polling_interval
  4256. echo 400 > $memlat/mem_latency/ratio_ceil
  4257. done
  4258. #Enable userspace governor for L3 cdsp nodes
  4259. for l3cdsp in /sys/class/devfreq/*qcom,l3-cdsp*
  4260. do
  4261. echo "userspace" > $l3cdsp/governor
  4262. chown -h system $l3cdsp/userspace/set_freq
  4263. done
  4264. #Gold L3 ratio ceil
  4265. echo 4000 > /sys/class/devfreq/soc:qcom,l3-cpu4/mem_latency/ratio_ceil
  4266. echo "compute" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  4267. echo 10 > /sys/class/devfreq/soc:qcom,mincpubw/polling_interval
  4268. # cpuset parameters
  4269. echo 0-3 > /dev/cpuset/background/cpus
  4270. echo 0-3 > /dev/cpuset/system-background/cpus
  4271. # Turn off scheduler boost at the end
  4272. echo 0 > /proc/sys/kernel/sched_boost
  4273. # Disable CPU Retention
  4274. echo N > /sys/module/lpm_levels/L3/cpu0/ret/idle_enabled
  4275. echo N > /sys/module/lpm_levels/L3/cpu1/ret/idle_enabled
  4276. echo N > /sys/module/lpm_levels/L3/cpu2/ret/idle_enabled
  4277. echo N > /sys/module/lpm_levels/L3/cpu3/ret/idle_enabled
  4278. echo N > /sys/module/lpm_levels/L3/cpu4/ret/idle_enabled
  4279. echo N > /sys/module/lpm_levels/L3/cpu5/ret/idle_enabled
  4280. echo N > /sys/module/lpm_levels/L3/cpu6/ret/idle_enabled
  4281. echo N > /sys/module/lpm_levels/L3/cpu7/ret/idle_enabled
  4282. echo N > /sys/module/lpm_levels/L3/l3-dyn-ret/idle_enabled
  4283. # Turn on sleep modes.
  4284. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  4285. echo 100 > /proc/sys/vm/swappiness
  4286. echo 120 > /proc/sys/vm/watermark_scale_factor
  4287. ;;
  4288. esac
  4289. case "$target" in
  4290. "msmnile")
  4291. # Core control parameters for gold
  4292. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  4293. echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  4294. echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  4295. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  4296. echo 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
  4297. # Core control parameters for gold+
  4298. echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus
  4299. echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres
  4300. echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres
  4301. echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms
  4302. echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres
  4303. # Controls how many more tasks should be eligible to run on gold CPUs
  4304. # w.r.t number of gold CPUs available to trigger assist (max number of
  4305. # tasks eligible to run on previous cluster minus number of CPUs in
  4306. # the previous cluster).
  4307. #
  4308. # Setting to 1 by default which means there should be at least
  4309. # 4 tasks eligible to run on gold cluster (tasks running on gold cores
  4310. # plus misfit tasks on silver cores) to trigger assitance from gold+.
  4311. echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh
  4312. # Disable Core control on silver
  4313. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
  4314. # Setting b.L scheduler parameters
  4315. echo 95 95 > /proc/sys/kernel/sched_upmigrate
  4316. echo 85 85 > /proc/sys/kernel/sched_downmigrate
  4317. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  4318. echo 10 > /proc/sys/kernel/sched_group_downmigrate
  4319. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  4320. # cpuset parameters
  4321. echo 0-3 > /dev/cpuset/background/cpus
  4322. echo 0-3 > /dev/cpuset/system-background/cpus
  4323. # Turn off scheduler boost at the end
  4324. echo 0 > /proc/sys/kernel/sched_boost
  4325. # configure governor settings for silver cluster
  4326. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
  4327. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us
  4328. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us
  4329. echo 1209600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
  4330. echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
  4331. echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
  4332. # configure governor settings for gold cluster
  4333. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
  4334. echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us
  4335. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us
  4336. echo 1612800 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq
  4337. echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl
  4338. # configure governor settings for gold+ cluster
  4339. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor
  4340. echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us
  4341. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us
  4342. echo 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
  4343. echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl
  4344. # configure input boost settings
  4345. echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
  4346. echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms
  4347. # Disable wsf, beacause we are using efk.
  4348. # wsf Range : 1..1000 So set to bare minimum value 1.
  4349. echo 1 > /proc/sys/vm/watermark_scale_factor
  4350. echo 0-3 > /dev/cpuset/background/cpus
  4351. echo 0-3 > /dev/cpuset/system-background/cpus
  4352. # Enable oom_reaper
  4353. if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then
  4354. echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper
  4355. else
  4356. echo 1 > /proc/sys/vm/reap_mem_on_sigkill
  4357. fi
  4358. # Enable bus-dcvs
  4359. for device in /sys/devices/platform/soc
  4360. do
  4361. for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
  4362. do
  4363. echo "bw_hwmon" > $cpubw/governor
  4364. echo "2288 4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones
  4365. echo 4 > $cpubw/bw_hwmon/sample_ms
  4366. echo 50 > $cpubw/bw_hwmon/io_percent
  4367. echo 20 > $cpubw/bw_hwmon/hist_memory
  4368. echo 10 > $cpubw/bw_hwmon/hyst_length
  4369. echo 30 > $cpubw/bw_hwmon/down_thres
  4370. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  4371. echo 250 > $cpubw/bw_hwmon/up_scale
  4372. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  4373. echo 14236 > $cpubw/max_freq
  4374. echo 40 > $cpubw/polling_interval
  4375. done
  4376. for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
  4377. do
  4378. echo "bw_hwmon" > $llccbw/governor
  4379. echo "1720 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones
  4380. echo 4 > $llccbw/bw_hwmon/sample_ms
  4381. echo 80 > $llccbw/bw_hwmon/io_percent
  4382. echo 20 > $llccbw/bw_hwmon/hist_memory
  4383. echo 10 > $llccbw/bw_hwmon/hyst_length
  4384. echo 30 > $llccbw/bw_hwmon/down_thres
  4385. echo 0 > $llccbw/bw_hwmon/guard_band_mbps
  4386. echo 250 > $llccbw/bw_hwmon/up_scale
  4387. echo 1600 > $llccbw/bw_hwmon/idle_mbps
  4388. echo 6881 > $llccbw/max_freq
  4389. echo 40 > $llccbw/polling_interval
  4390. done
  4391. for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw
  4392. do
  4393. echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
  4394. echo "bw_hwmon" > $npubw/governor
  4395. echo "1720 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones
  4396. echo 4 > $npubw/bw_hwmon/sample_ms
  4397. echo 80 > $npubw/bw_hwmon/io_percent
  4398. echo 20 > $npubw/bw_hwmon/hist_memory
  4399. echo 6 > $npubw/bw_hwmon/hyst_length
  4400. echo 30 > $npubw/bw_hwmon/down_thres
  4401. echo 0 > $npubw/bw_hwmon/guard_band_mbps
  4402. echo 250 > $npubw/bw_hwmon/up_scale
  4403. echo 0 > $npubw/bw_hwmon/idle_mbps
  4404. echo 40 > $npubw/polling_interval
  4405. echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
  4406. done
  4407. done
  4408. # memlat specific settings are moved to seperate file under
  4409. # device/target specific folder
  4410. setprop vendor.dcvs.prop 1
  4411. if [ -f /sys/devices/soc0/hw_platform ]; then
  4412. hw_platform=`cat /sys/devices/soc0/hw_platform`
  4413. else
  4414. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  4415. fi
  4416. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  4417. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  4418. fi
  4419. case "$hw_platform" in
  4420. "MTP" | "Surf" | "RCM" )
  4421. # Start Host based Touch processing
  4422. case "$platform_subtype_id" in
  4423. "0" | "1" | "2" | "3" | "4")
  4424. start_hbtp
  4425. ;;
  4426. esac
  4427. ;;
  4428. "HDK" )
  4429. if [ -d /sys/kernel/hbtpsensor ] ; then
  4430. start_hbtp
  4431. fi
  4432. ;;
  4433. esac
  4434. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  4435. configure_memory_parameters
  4436. target_type=`getprop ro.hardware.type`
  4437. if [ "$target_type" == "automotive" ]; then
  4438. # update frequencies
  4439. configure_automotive_sku_parameters
  4440. fi
  4441. ;;
  4442. esac
  4443. case "$target" in
  4444. "sdmshrike")
  4445. # Core control parameters for gold
  4446. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  4447. echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  4448. echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  4449. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  4450. echo 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
  4451. # Core control parameters for gold+
  4452. echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus
  4453. echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres
  4454. echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres
  4455. echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms
  4456. echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres
  4457. # Controls how many more tasks should be eligible to run on gold CPUs
  4458. # w.r.t number of gold CPUs available to trigger assist (max number of
  4459. # tasks eligible to run on previous cluster minus number of CPUs in
  4460. # the previous cluster).
  4461. #
  4462. # Setting to 1 by default which means there should be at least
  4463. # 4 tasks eligible to run on gold cluster (tasks running on gold cores
  4464. # plus misfit tasks on silver cores) to trigger assitance from gold+.
  4465. echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh
  4466. # Disable Core control on silver
  4467. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
  4468. # Setting b.L scheduler parameters
  4469. echo 95 95 > /proc/sys/kernel/sched_upmigrate
  4470. echo 85 85 > /proc/sys/kernel/sched_downmigrate
  4471. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  4472. echo 10 > /proc/sys/kernel/sched_group_downmigrate
  4473. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  4474. # cpuset parameters
  4475. echo 0-3 > /dev/cpuset/background/cpus
  4476. echo 0-3 > /dev/cpuset/system-background/cpus
  4477. # Turn off scheduler boost at the end
  4478. echo 0 > /proc/sys/kernel/sched_boost
  4479. # configure governor settings for silver cluster
  4480. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
  4481. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us
  4482. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us
  4483. echo 1209600 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
  4484. echo 576000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
  4485. echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
  4486. # configure governor settings for gold cluster
  4487. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
  4488. echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us
  4489. echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us
  4490. echo 1612800 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq
  4491. echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl
  4492. # configure governor settings for gold+ cluster
  4493. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor
  4494. echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us
  4495. echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/down_rate_limit_us
  4496. echo 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
  4497. echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl
  4498. # configure input boost settings
  4499. echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
  4500. echo 120 > /sys/module/cpu_boost/parameters/input_boost_ms
  4501. # Disable wsf, beacause we are using efk.
  4502. # wsf Range : 1..1000 So set to bare minimum value 1.
  4503. echo 1 > /proc/sys/vm/watermark_scale_factor
  4504. echo 0-3 > /dev/cpuset/background/cpus
  4505. echo 0-3 > /dev/cpuset/system-background/cpus
  4506. # Enable oom_reaper
  4507. if [ -f /sys/module/lowmemorykiller/parameters/oom_reaper ]; then
  4508. echo 1 > /sys/module/lowmemorykiller/parameters/oom_reaper
  4509. else
  4510. echo 1 > /proc/sys/vm/reap_mem_on_sigkill
  4511. fi
  4512. # Enable bus-dcvs
  4513. for device in /sys/devices/platform/soc
  4514. do
  4515. for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
  4516. do
  4517. echo "bw_hwmon" > $cpubw/governor
  4518. echo 40 > $cpubw/polling_interval
  4519. echo "2288 4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones
  4520. echo 4 > $cpubw/bw_hwmon/sample_ms
  4521. echo 50 > $cpubw/bw_hwmon/io_percent
  4522. echo 20 > $cpubw/bw_hwmon/hist_memory
  4523. echo 10 > $cpubw/bw_hwmon/hyst_length
  4524. echo 30 > $cpubw/bw_hwmon/down_thres
  4525. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  4526. echo 250 > $cpubw/bw_hwmon/up_scale
  4527. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  4528. echo 14236 > $cpubw/max_freq
  4529. done
  4530. for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
  4531. do
  4532. echo "bw_hwmon" > $llccbw/governor
  4533. echo 40 > $llccbw/polling_interval
  4534. echo "1720 2929 3879 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones
  4535. echo 4 > $llccbw/bw_hwmon/sample_ms
  4536. echo 80 > $llccbw/bw_hwmon/io_percent
  4537. echo 20 > $llccbw/bw_hwmon/hist_memory
  4538. echo 10 > $llccbw/bw_hwmon/hyst_length
  4539. echo 30 > $llccbw/bw_hwmon/down_thres
  4540. echo 0 > $llccbw/bw_hwmon/guard_band_mbps
  4541. echo 250 > $llccbw/bw_hwmon/up_scale
  4542. echo 1600 > $llccbw/bw_hwmon/idle_mbps
  4543. echo 6881 > $llccbw/max_freq
  4544. done
  4545. for npubw in $device/*npu-npu-ddr-bw/devfreq/*npu-npu-ddr-bw
  4546. do
  4547. echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
  4548. echo "bw_hwmon" > $npubw/governor
  4549. echo 40 > $npubw/polling_interval
  4550. echo "1720 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones
  4551. echo 4 > $npubw/bw_hwmon/sample_ms
  4552. echo 80 > $npubw/bw_hwmon/io_percent
  4553. echo 20 > $npubw/bw_hwmon/hist_memory
  4554. echo 6 > $npubw/bw_hwmon/hyst_length
  4555. echo 30 > $npubw/bw_hwmon/down_thres
  4556. echo 0 > $npubw/bw_hwmon/guard_band_mbps
  4557. echo 250 > $npubw/bw_hwmon/up_scale
  4558. echo 0 > $npubw/bw_hwmon/idle_mbps
  4559. echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
  4560. done
  4561. #Enable mem_latency governor for L3, LLCC, and DDR scaling
  4562. for memlat in $device/*cpu*-lat/devfreq/*cpu*-lat
  4563. do
  4564. echo "mem_latency" > $memlat/governor
  4565. echo 10 > $memlat/polling_interval
  4566. echo 400 > $memlat/mem_latency/ratio_ceil
  4567. done
  4568. #Enable userspace governor for L3 cdsp nodes
  4569. for l3cdsp in $device/*cdsp-cdsp-l3-lat/devfreq/*cdsp-cdsp-l3-lat
  4570. do
  4571. echo "cdspl3" > $l3cdsp/governor
  4572. done
  4573. #Enable compute governor for gold latfloor
  4574. for latfloor in $device/*cpu-ddr-latfloor*/devfreq/*cpu-ddr-latfloor*
  4575. do
  4576. echo "compute" > $latfloor/governor
  4577. echo 10 > $latfloor/polling_interval
  4578. done
  4579. #Gold L3 ratio ceil
  4580. for l3gold in $device/*cpu4-cpu-l3-lat/devfreq/*cpu4-cpu-l3-lat
  4581. do
  4582. echo 4000 > $l3gold/mem_latency/ratio_ceil
  4583. done
  4584. #Prime L3 ratio ceil
  4585. for l3prime in $device/*cpu7-cpu-l3-lat/devfreq/*cpu7-cpu-l3-lat
  4586. do
  4587. echo 20000 > $l3prime/mem_latency/ratio_ceil
  4588. done
  4589. done
  4590. if [ -f /sys/devices/soc0/hw_platform ]; then
  4591. hw_platform=`cat /sys/devices/soc0/hw_platform`
  4592. else
  4593. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  4594. fi
  4595. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  4596. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  4597. fi
  4598. case "$hw_platform" in
  4599. "MTP" | "Surf" | "RCM" )
  4600. # Start Host based Touch processing
  4601. case "$platform_subtype_id" in
  4602. "0" | "1")
  4603. start_hbtp
  4604. ;;
  4605. esac
  4606. ;;
  4607. "HDK" )
  4608. if [ -d /sys/kernel/hbtpsensor ] ; then
  4609. start_hbtp
  4610. fi
  4611. ;;
  4612. esac
  4613. #Setting the min and max supported frequencies
  4614. reg_val=`cat /sys/devices/platform/soc/780130.qfprom/qfprom0/nvmem | od -An -t d4`
  4615. feature_id=$(((reg_val >> 20) & 0xFF))
  4616. #Setting the min supported frequencies
  4617. echo 1113600 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  4618. echo 1171200 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  4619. echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/min_freq
  4620. echo 940800000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/min_freq
  4621. echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu0-cpu-l3-lat/max_freq
  4622. echo 1651200000 > /sys/class/devfreq/soc\:qcom,cpu4-cpu-l3-lat/max_freq
  4623. #setting min gpu freq to 392 MHz
  4624. echo 4 > /sys/class/kgsl/kgsl-3d0/min_pwrlevel
  4625. if [ $feature_id == 0 ]; then
  4626. echo "feature_id is 0 for SA8195AA"
  4627. #setting max cpu freq to 2.496GHz
  4628. echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  4629. #setting max gpu freq to 530 MHz
  4630. echo 3 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
  4631. elif [ $feature_id == 1 ] || [ $feature_id == 2 ]; then
  4632. echo "feature_id is 1 for external SA8195AB"
  4633. echo "feature_id is 2 for internal SA8195AB"
  4634. #setting max cpu freq to 2.496GHz
  4635. echo 2496000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq
  4636. #setting max gpu freq to 670 MHz
  4637. echo 0 > /sys/class/kgsl/kgsl-3d0/max_pwrlevel
  4638. elif [ $feature_id == 3 ]; then
  4639. echo "feature_id is 3 for external SA8195AC"
  4640. else
  4641. echo "unknown feature_id value" $feature_id
  4642. fi
  4643. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  4644. configure_memory_parameters
  4645. ;;
  4646. esac
  4647. case "$target" in
  4648. "kona")
  4649. rev=`cat /sys/devices/soc0/revision`
  4650. ddr_type=`od -An -tx /proc/device-tree/memory/ddr_device_type`
  4651. ddr_type4="07"
  4652. ddr_type5="08"
  4653. # Core control parameters for gold
  4654. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  4655. echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  4656. echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  4657. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  4658. echo 3 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
  4659. # Core control parameters for gold+
  4660. echo 0 > /sys/devices/system/cpu/cpu7/core_ctl/min_cpus
  4661. echo 60 > /sys/devices/system/cpu/cpu7/core_ctl/busy_up_thres
  4662. echo 30 > /sys/devices/system/cpu/cpu7/core_ctl/busy_down_thres
  4663. echo 100 > /sys/devices/system/cpu/cpu7/core_ctl/offline_delay_ms
  4664. echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/task_thres
  4665. # Controls how many more tasks should be eligible to run on gold CPUs
  4666. # w.r.t number of gold CPUs available to trigger assist (max number of
  4667. # tasks eligible to run on previous cluster minus number of CPUs in
  4668. # the previous cluster).
  4669. #
  4670. # Setting to 1 by default which means there should be at least
  4671. # 4 tasks eligible to run on gold cluster (tasks running on gold cores
  4672. # plus misfit tasks on silver cores) to trigger assitance from gold+.
  4673. echo 1 > /sys/devices/system/cpu/cpu7/core_ctl/nr_prev_assist_thresh
  4674. # Disable Core control on silver
  4675. echo 0 > /sys/devices/system/cpu/cpu0/core_ctl/enable
  4676. # Setting b.L scheduler parameters
  4677. echo 95 95 > /proc/sys/kernel/sched_upmigrate
  4678. echo 85 85 > /proc/sys/kernel/sched_downmigrate
  4679. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  4680. echo 85 > /proc/sys/kernel/sched_group_downmigrate
  4681. echo 1 > /proc/sys/kernel/sched_walt_rotate_big_tasks
  4682. echo 400000000 > /proc/sys/kernel/sched_coloc_downmigrate_ns
  4683. # cpuset parameters
  4684. echo 0-3 > /dev/cpuset/background/cpus
  4685. echo 0-3 > /dev/cpuset/system-background/cpus
  4686. # Turn off scheduler boost at the end
  4687. echo 0 > /proc/sys/kernel/sched_boost
  4688. # configure governor settings for silver cluster
  4689. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
  4690. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us
  4691. echo 0 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us
  4692. if [ $rev == "2.0" ] || [ $rev == "2.1" ]; then
  4693. echo 1248000 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
  4694. else
  4695. echo 1228800 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/hispeed_freq
  4696. fi
  4697. echo 691200 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
  4698. echo 1 > /sys/devices/system/cpu/cpufreq/policy0/schedutil/pl
  4699. # configure input boost settings
  4700. echo "0:1324800" > /sys/devices/system/cpu/cpu_boost/input_boost_freq
  4701. echo 120 > /sys/devices/system/cpu/cpu_boost/input_boost_ms
  4702. # configure governor settings for gold cluster
  4703. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
  4704. echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/down_rate_limit_us
  4705. echo 0 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/up_rate_limit_us
  4706. echo 1574400 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/hispeed_freq
  4707. echo 1 > /sys/devices/system/cpu/cpufreq/policy4/schedutil/pl
  4708. # configure governor settings for gold+ cluster
  4709. echo "schedutil" > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor
  4710. echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/down_rate_limit_us
  4711. echo 0 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/up_rate_limit_us
  4712. if [ $rev == "2.0" ] || [ $rev == "2.1" ]; then
  4713. echo 1632000 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
  4714. else
  4715. echo 1612800 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/hispeed_freq
  4716. fi
  4717. echo 1 > /sys/devices/system/cpu/cpufreq/policy7/schedutil/pl
  4718. # Enable bus-dcvs
  4719. for device in /sys/devices/platform/soc
  4720. do
  4721. for cpubw in $device/*cpu-cpu-llcc-bw/devfreq/*cpu-cpu-llcc-bw
  4722. do
  4723. echo "bw_hwmon" > $cpubw/governor
  4724. echo "4577 7110 9155 12298 14236 15258" > $cpubw/bw_hwmon/mbps_zones
  4725. echo 4 > $cpubw/bw_hwmon/sample_ms
  4726. echo 50 > $cpubw/bw_hwmon/io_percent
  4727. echo 20 > $cpubw/bw_hwmon/hist_memory
  4728. echo 10 > $cpubw/bw_hwmon/hyst_length
  4729. echo 30 > $cpubw/bw_hwmon/down_thres
  4730. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  4731. echo 250 > $cpubw/bw_hwmon/up_scale
  4732. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  4733. echo 14236 > $cpubw/max_freq
  4734. echo 40 > $cpubw/polling_interval
  4735. done
  4736. for llccbw in $device/*cpu-llcc-ddr-bw/devfreq/*cpu-llcc-ddr-bw
  4737. do
  4738. echo "bw_hwmon" > $llccbw/governor
  4739. if [ ${ddr_type:4:2} == $ddr_type4 ]; then
  4740. echo "1720 2086 2929 3879 5161 5931 6881 7980" > $llccbw/bw_hwmon/mbps_zones
  4741. elif [ ${ddr_type:4:2} == $ddr_type5 ]; then
  4742. echo "1720 2086 2929 3879 5931 6881 7980 10437" > $llccbw/bw_hwmon/mbps_zones
  4743. fi
  4744. echo 4 > $llccbw/bw_hwmon/sample_ms
  4745. echo 80 > $llccbw/bw_hwmon/io_percent
  4746. echo 20 > $llccbw/bw_hwmon/hist_memory
  4747. echo 10 > $llccbw/bw_hwmon/hyst_length
  4748. echo 30 > $llccbw/bw_hwmon/down_thres
  4749. echo 0 > $llccbw/bw_hwmon/guard_band_mbps
  4750. echo 250 > $llccbw/bw_hwmon/up_scale
  4751. echo 1600 > $llccbw/bw_hwmon/idle_mbps
  4752. echo 6881 > $llccbw/max_freq
  4753. echo 40 > $llccbw/polling_interval
  4754. done
  4755. for npubw in $device/*npu*-ddr-bw/devfreq/*npu*-ddr-bw
  4756. do
  4757. echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
  4758. echo "bw_hwmon" > $npubw/governor
  4759. if [ ${ddr_type:4:2} == $ddr_type4 ]; then
  4760. echo "1720 2086 2929 3879 5931 6881 7980" > $npubw/bw_hwmon/mbps_zones
  4761. elif [ ${ddr_type:4:2} == $ddr_type5 ]; then
  4762. echo "1720 2086 2929 3879 5931 6881 7980 10437" > $npubw/bw_hwmon/mbps_zones
  4763. fi
  4764. echo 4 > $npubw/bw_hwmon/sample_ms
  4765. echo 160 > $npubw/bw_hwmon/io_percent
  4766. echo 20 > $npubw/bw_hwmon/hist_memory
  4767. echo 10 > $npubw/bw_hwmon/hyst_length
  4768. echo 30 > $npubw/bw_hwmon/down_thres
  4769. echo 0 > $npubw/bw_hwmon/guard_band_mbps
  4770. echo 250 > $npubw/bw_hwmon/up_scale
  4771. echo 1600 > $npubw/bw_hwmon/idle_mbps
  4772. echo 40 > $npubw/polling_interval
  4773. echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
  4774. done
  4775. for npullccbw in $device/*npu*-llcc-bw/devfreq/*npu*-llcc-bw
  4776. do
  4777. echo 1 > /sys/devices/virtual/npu/msm_npu/pwr
  4778. echo "bw_hwmon" > $npullccbw/governor
  4779. echo "4577 7110 9155 12298 14236 15258" > $npullccbw/bw_hwmon/mbps_zones
  4780. echo 4 > $npullccbw/bw_hwmon/sample_ms
  4781. echo 160 > $npullccbw/bw_hwmon/io_percent
  4782. echo 20 > $npullccbw/bw_hwmon/hist_memory
  4783. echo 10 > $npullccbw/bw_hwmon/hyst_length
  4784. echo 30 > $npullccbw/bw_hwmon/down_thres
  4785. echo 0 > $npullccbw/bw_hwmon/guard_band_mbps
  4786. echo 250 > $npullccbw/bw_hwmon/up_scale
  4787. echo 1600 > $npullccbw/bw_hwmon/idle_mbps
  4788. echo 40 > $npullccbw/polling_interval
  4789. echo 0 > /sys/devices/virtual/npu/msm_npu/pwr
  4790. done
  4791. done
  4792. # memlat specific settings are moved to seperate file under
  4793. # device/target specific folder
  4794. setprop vendor.dcvs.prop 0
  4795. setprop vendor.dcvs.prop 1
  4796. echo N > /sys/module/lpm_levels/parameters/sleep_disabled
  4797. configure_memory_parameters
  4798. ;;
  4799. esac
  4800. case "$target" in
  4801. "msm8998" | "apq8098_latv")
  4802. echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus
  4803. echo 60 > /sys/devices/system/cpu/cpu4/core_ctl/busy_up_thres
  4804. echo 30 > /sys/devices/system/cpu/cpu4/core_ctl/busy_down_thres
  4805. echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms
  4806. echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster
  4807. echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres
  4808. # Setting b.L scheduler parameters
  4809. echo 1 > /proc/sys/kernel/sched_migration_fixup
  4810. echo 95 > /proc/sys/kernel/sched_upmigrate
  4811. echo 90 > /proc/sys/kernel/sched_downmigrate
  4812. echo 100 > /proc/sys/kernel/sched_group_upmigrate
  4813. echo 95 > /proc/sys/kernel/sched_group_downmigrate
  4814. echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us
  4815. echo 400000 > /proc/sys/kernel/sched_freq_inc_notify
  4816. echo 400000 > /proc/sys/kernel/sched_freq_dec_notify
  4817. echo 5 > /proc/sys/kernel/sched_spill_nr_run
  4818. echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill
  4819. echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker
  4820. start iop
  4821. # disable thermal bcl hotplug to switch governor
  4822. echo 0 > /sys/module/msm_thermal/core_control/enabled
  4823. # online CPU0
  4824. echo 1 > /sys/devices/system/cpu/cpu0/online
  4825. # configure governor settings for little cluster
  4826. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  4827. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load
  4828. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif
  4829. echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay
  4830. echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load
  4831. echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate
  4832. echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq
  4833. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy
  4834. echo "83 1804800:95" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads
  4835. echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time
  4836. echo 79000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis
  4837. echo 518400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  4838. echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif
  4839. # online CPU4
  4840. echo 1 > /sys/devices/system/cpu/cpu4/online
  4841. # configure governor settings for big cluster
  4842. echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
  4843. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load
  4844. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif
  4845. echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay
  4846. echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load
  4847. echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate
  4848. echo 1574400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq
  4849. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy
  4850. echo "83 1939200:90 2016000:95" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads
  4851. echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time
  4852. echo 79000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis
  4853. echo 806400 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq
  4854. echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif
  4855. # re-enable thermal and BCL hotplug
  4856. echo 1 > /sys/module/msm_thermal/core_control/enabled
  4857. # Enable input boost configuration
  4858. echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq
  4859. echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms
  4860. # Enable bus-dcvs
  4861. for cpubw in /sys/class/devfreq/*qcom,cpubw*
  4862. do
  4863. echo "bw_hwmon" > $cpubw/governor
  4864. echo 50 > $cpubw/polling_interval
  4865. echo 1525 > $cpubw/min_freq
  4866. echo "3143 5859 11863 13763" > $cpubw/bw_hwmon/mbps_zones
  4867. echo 4 > $cpubw/bw_hwmon/sample_ms
  4868. echo 34 > $cpubw/bw_hwmon/io_percent
  4869. echo 20 > $cpubw/bw_hwmon/hist_memory
  4870. echo 10 > $cpubw/bw_hwmon/hyst_length
  4871. echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps
  4872. echo 34 > $cpubw/bw_hwmon/low_power_io_percent
  4873. echo 20 > $cpubw/bw_hwmon/low_power_delay
  4874. echo 0 > $cpubw/bw_hwmon/guard_band_mbps
  4875. echo 250 > $cpubw/bw_hwmon/up_scale
  4876. echo 1600 > $cpubw/bw_hwmon/idle_mbps
  4877. done
  4878. for memlat in /sys/class/devfreq/*qcom,memlat-cpu*
  4879. do
  4880. echo "mem_latency" > $memlat/governor
  4881. echo 10 > $memlat/polling_interval
  4882. echo 400 > $memlat/mem_latency/ratio_ceil
  4883. done
  4884. echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor
  4885. if [ -f /sys/devices/soc0/soc_id ]; then
  4886. soc_id=`cat /sys/devices/soc0/soc_id`
  4887. else
  4888. soc_id=`cat /sys/devices/system/soc/soc0/id`
  4889. fi
  4890. if [ -f /sys/devices/soc0/hw_platform ]; then
  4891. hw_platform=`cat /sys/devices/soc0/hw_platform`
  4892. else
  4893. hw_platform=`cat /sys/devices/system/soc/soc0/hw_platform`
  4894. fi
  4895. if [ -f /sys/devices/soc0/platform_version ]; then
  4896. platform_version=`cat /sys/devices/soc0/platform_version`
  4897. platform_major_version=$((10#${platform_version}>>16))
  4898. fi
  4899. if [ -f /sys/devices/soc0/platform_subtype_id ]; then
  4900. platform_subtype_id=`cat /sys/devices/soc0/platform_subtype_id`
  4901. fi
  4902. case "$soc_id" in
  4903. "292") #msm8998 apq8098_latv
  4904. # Start Host based Touch processing
  4905. case "$hw_platform" in
  4906. "QRD")
  4907. case "$platform_subtype_id" in
  4908. "0")
  4909. start_hbtp
  4910. ;;
  4911. "16")
  4912. if [ $platform_major_version -lt 6 ]; then
  4913. start_hbtp
  4914. fi
  4915. ;;
  4916. esac
  4917. ;;
  4918. esac
  4919. ;;
  4920. esac
  4921. echo N > /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled
  4922. echo N > /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled
  4923. echo N > /sys/module/lpm_levels/system/pwr/cpu2/ret/idle_enabled
  4924. echo N > /sys/module/lpm_levels/system/pwr/cpu3/ret/idle_enabled
  4925. echo N > /sys/module/lpm_levels/system/perf/cpu4/ret/idle_enabled
  4926. echo N > /sys/module/lpm_levels/system/perf/cpu5/ret/idle_enabled
  4927. echo N > /sys/module/lpm_levels/system/perf/cpu6/ret/idle_enabled
  4928. echo N > /sys/module/lpm_levels/system/perf/cpu7/ret/idle_enabled
  4929. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled
  4930. echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-ret/idle_enabled
  4931. echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled
  4932. echo N > /sys/module/lpm_levels/system/perf/perf-l2-ret/idle_enabled
  4933. echo N > /sys/module/lpm_levels/parameters/sleep_disabled
  4934. echo 0-3 > /dev/cpuset/background/cpus
  4935. echo 0-3 > /dev/cpuset/system-background/cpus
  4936. echo 0 > /proc/sys/kernel/sched_boost
  4937. # Set Memory parameters
  4938. configure_memory_parameters
  4939. ;;
  4940. esac
  4941. case "$target" in
  4942. "msm8909")
  4943. if [ -f /sys/devices/soc0/soc_id ]; then
  4944. soc_id=`cat /sys/devices/soc0/soc_id`
  4945. else
  4946. soc_id=`cat /sys/devices/system/soc/soc0/id`
  4947. fi
  4948. # HMP scheduler settings for 8909 similiar to 8917
  4949. echo 3 > /proc/sys/kernel/sched_window_stats_policy
  4950. echo 3 > /proc/sys/kernel/sched_ravg_hist_size
  4951. echo 1 > /proc/sys/kernel/sched_restrict_tasks_spread
  4952. echo 20 > /proc/sys/kernel/sched_small_task
  4953. echo 30 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_load
  4954. echo 30 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_load
  4955. echo 30 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_load
  4956. echo 30 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_load
  4957. echo 3 > /sys/devices/system/cpu/cpu0/sched_mostly_idle_nr_run
  4958. echo 3 > /sys/devices/system/cpu/cpu1/sched_mostly_idle_nr_run
  4959. echo 3 > /sys/devices/system/cpu/cpu2/sched_mostly_idle_nr_run
  4960. echo 3 > /sys/devices/system/cpu/cpu3/sched_mostly_idle_nr_run
  4961. echo 0 > /sys/devices/system/cpu/cpu0/sched_prefer_idle
  4962. echo 0 > /sys/devices/system/cpu/cpu1/sched_prefer_idle
  4963. echo 0 > /sys/devices/system/cpu/cpu2/sched_prefer_idle
  4964. echo 0 > /sys/devices/system/cpu/cpu3/sched_prefer_idle
  4965. # Apply governor settings for 8909
  4966. # disable thermal core_control to update scaling_min_freq
  4967. echo 0 > /sys/module/msm_thermal/core_control/enabled
  4968. echo 1 > /sys/devices/system/cpu/cpu0/online
  4969. echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  4970. echo 800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  4971. # enable thermal core_control now
  4972. echo 1 > /sys/module/msm_thermal/core_control/enabled
  4973. echo "29000 1094400:49000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
  4974. echo 90 > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
  4975. echo 30000 > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
  4976. echo 998400 > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
  4977. echo 0 > /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
  4978. echo "1 800000:85 998400:90 1094400:80" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
  4979. echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
  4980. echo 50000 > /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
  4981. # Bring up all cores online
  4982. echo 1 > /sys/devices/system/cpu/cpu1/online
  4983. echo 1 > /sys/devices/system/cpu/cpu2/online
  4984. echo 1 > /sys/devices/system/cpu/cpu3/online
  4985. echo 0 > /sys/module/lpm_levels/parameters/sleep_disabled
  4986. for devfreq_gov in /sys/class/devfreq/*qcom,cpubw*/governor
  4987. do
  4988. echo "bw_hwmon" > $devfreq_gov
  4989. for cpu_bimc_bw_step in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/bw_step
  4990. do
  4991. echo 60 > $cpu_bimc_bw_step
  4992. done
  4993. for cpu_guard_band_mbps in /sys/class/devfreq/*qcom,cpubw*/bw_hwmon/guard_band_mbps
  4994. do
  4995. echo 30 > $cpu_guard_band_mbps
  4996. done
  4997. done
  4998. for gpu_bimc_io_percent in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/io_percent
  4999. do
  5000. echo 40 > $gpu_bimc_io_percent
  5001. done
  5002. for gpu_bimc_bw_step in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/bw_step
  5003. do
  5004. echo 60 > $gpu_bimc_bw_step
  5005. done
  5006. for gpu_bimc_guard_band_mbps in /sys/class/devfreq/*qcom,gpubw*/bw_hwmon/guard_band_mbps
  5007. do
  5008. echo 30 > $gpu_bimc_guard_band_mbps
  5009. done
  5010. # Set Memory parameters
  5011. configure_memory_parameters
  5012. restorecon -R /sys/devices/system/cpu
  5013. ;;
  5014. esac
  5015. case "$target" in
  5016. "msm7627_ffa" | "msm7627_surf" | "msm7627_6x")
  5017. echo 25000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  5018. ;;
  5019. esac
  5020. case "$target" in
  5021. "qsd8250_surf" | "qsd8250_ffa" | "qsd8650a_st1x")
  5022. echo 50000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  5023. ;;
  5024. esac
  5025. chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  5026. chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
  5027. chown -h system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
  5028. emmc_boot=`getprop vendor.boot.emmc`
  5029. case "$emmc_boot"
  5030. in "true")
  5031. chown -h system /sys/devices/platform/rs300000a7.65536/force_sync
  5032. chown -h system /sys/devices/platform/rs300000a7.65536/sync_sts
  5033. chown -h system /sys/devices/platform/rs300100a7.65536/force_sync
  5034. chown -h system /sys/devices/platform/rs300100a7.65536/sync_sts
  5035. ;;
  5036. esac
  5037. case "$target" in
  5038. "msm8960" | "msm8660" | "msm7630_surf")
  5039. echo 10 > /sys/devices/platform/msm_sdcc.3/idle_timeout
  5040. ;;
  5041. "msm7627a")
  5042. echo 10 > /sys/devices/platform/msm_sdcc.1/idle_timeout
  5043. ;;
  5044. esac
  5045. # Post-setup services
  5046. case "$target" in
  5047. "msm8660" | "msm8960" | "msm8226" | "msm8610" | "mpq8092" )
  5048. start mpdecision
  5049. ;;
  5050. "msm8974")
  5051. start mpdecision
  5052. echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb
  5053. ;;
  5054. "msm8909" | "msm8916" | "msm8937" | "msm8952" | "msm8953" | "msm8994" | "msm8992" | "msm8996" | "msm8998" | "sdm660" | "apq8098_latv" | "sdm845" | "sdm710" | "msmnile" | "msmsteppe" | "sm6150" | "kona" | "lito" | "trinket" | "atoll" | "bengal" | "sdmshrike")
  5055. setprop vendor.post_boot.parsed 1
  5056. ;;
  5057. "apq8084")
  5058. rm /data/system/perfd/default_values
  5059. start mpdecision
  5060. echo 512 > /sys/block/mmcblk0/bdi/read_ahead_kb
  5061. echo 512 > /sys/block/sda/bdi/read_ahead_kb
  5062. echo 512 > /sys/block/sdb/bdi/read_ahead_kb
  5063. echo 512 > /sys/block/sdc/bdi/read_ahead_kb
  5064. echo 512 > /sys/block/sdd/bdi/read_ahead_kb
  5065. echo 512 > /sys/block/sde/bdi/read_ahead_kb
  5066. echo 512 > /sys/block/sdf/bdi/read_ahead_kb
  5067. echo 512 > /sys/block/sdg/bdi/read_ahead_kb
  5068. echo 512 > /sys/block/sdh/bdi/read_ahead_kb
  5069. ;;
  5070. "msm7627a")
  5071. if [ -f /sys/devices/soc0/soc_id ]; then
  5072. soc_id=`cat /sys/devices/soc0/soc_id`
  5073. else
  5074. soc_id=`cat /sys/devices/system/soc/soc0/id`
  5075. fi
  5076. case "$soc_id" in
  5077. "127" | "128" | "129")
  5078. start mpdecision
  5079. ;;
  5080. esac
  5081. ;;
  5082. esac
  5083. # Enable Power modes and set the CPU Freq Sampling rates
  5084. case "$target" in
  5085. "msm7627a")
  5086. start qosmgrd
  5087. echo 1 > /sys/module/pm2/modes/cpu0/standalone_power_collapse/idle_enabled
  5088. echo 1 > /sys/module/pm2/modes/cpu1/standalone_power_collapse/idle_enabled
  5089. echo 1 > /sys/module/pm2/modes/cpu0/standalone_power_collapse/suspend_enabled
  5090. echo 1 > /sys/module/pm2/modes/cpu1/standalone_power_collapse/suspend_enabled
  5091. #SuspendPC:
  5092. echo 1 > /sys/module/pm2/modes/cpu0/power_collapse/suspend_enabled
  5093. #IdlePC:
  5094. echo 1 > /sys/module/pm2/modes/cpu0/power_collapse/idle_enabled
  5095. echo 25000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
  5096. ;;
  5097. esac
  5098. # Change adj level and min_free_kbytes setting for lowmemory killer to kick in
  5099. case "$target" in
  5100. "msm7627a")
  5101. echo 0,1,2,4,9,12 > /sys/module/lowmemorykiller/parameters/adj
  5102. echo 5120 > /proc/sys/vm/min_free_kbytes
  5103. ;;
  5104. esac
  5105. # Install AdrenoTest.apk if not already installed
  5106. if [ -f /data/prebuilt/AdrenoTest.apk ]; then
  5107. if [ ! -d /data/data/com.qualcomm.adrenotest ]; then
  5108. pm install /data/prebuilt/AdrenoTest.apk
  5109. fi
  5110. fi
  5111. # Install SWE_Browser.apk if not already installed
  5112. if [ -f /data/prebuilt/SWE_AndroidBrowser.apk ]; then
  5113. if [ ! -d /data/data/com.android.swe.browser ]; then
  5114. pm install /data/prebuilt/SWE_AndroidBrowser.apk
  5115. fi
  5116. fi
  5117. # Change adj level and min_free_kbytes setting for lowmemory killer to kick in
  5118. case "$target" in
  5119. "msm8660")
  5120. start qosmgrd
  5121. echo 0,1,2,4,9,12 > /sys/module/lowmemorykiller/parameters/adj
  5122. echo 5120 > /proc/sys/vm/min_free_kbytes
  5123. ;;
  5124. esac
  5125. # Let kernel know our image version/variant/crm_version
  5126. if [ -f /sys/devices/soc0/select_image ]; then
  5127. image_version="10:"
  5128. image_version+=`getprop ro.build.id`
  5129. image_version+=":"
  5130. image_version+=`getprop ro.build.version.incremental`
  5131. image_variant=`getprop ro.product.name`
  5132. image_variant+="-"
  5133. image_variant+=`getprop ro.build.type`
  5134. oem_version=`getprop ro.build.version.codename`
  5135. echo 10 > /sys/devices/soc0/select_image
  5136. echo $image_version > /sys/devices/soc0/image_version
  5137. echo $image_variant > /sys/devices/soc0/image_variant
  5138. echo $oem_version > /sys/devices/soc0/image_crm_version
  5139. fi
  5140. # Change console log level as per console config property
  5141. console_config=`getprop persist.vendor.console.silent.config`
  5142. case "$console_config" in
  5143. "1")
  5144. echo "Enable console config to $console_config"
  5145. echo 0 > /proc/sys/kernel/printk
  5146. ;;
  5147. *)
  5148. echo "Enable console config to $console_config"
  5149. ;;
  5150. esac
  5151. # Parse misc partition path and set property
  5152. misc_link=$(ls -l /dev/block/bootdevice/by-name/misc)
  5153. real_path=${misc_link##*>}
  5154. setprop persist.vendor.mmi.misc_dev_path $real_path