nvc0_grctx.c 108 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879
  1. /*
  2. * Copyright 2010 Red Hat Inc.
  3. *
  4. * Permission is hereby granted, free of charge, to any person obtaining a
  5. * copy of this software and associated documentation files (the "Software"),
  6. * to deal in the Software without restriction, including without limitation
  7. * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  8. * and/or sell copies of the Software, and to permit persons to whom the
  9. * Software is furnished to do so, subject to the following conditions:
  10. *
  11. * The above copyright notice and this permission notice shall be included in
  12. * all copies or substantial portions of the Software.
  13. *
  14. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  17. * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
  18. * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  19. * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  20. * OTHER DEALINGS IN THE SOFTWARE.
  21. *
  22. * Authors: Ben Skeggs
  23. */
  24. #include "drmP.h"
  25. #include "nouveau_drv.h"
  26. #include "nouveau_mm.h"
  27. #include "nvc0_graph.h"
  28. static void
  29. nv_icmd(struct drm_device *dev, u32 icmd, u32 data)
  30. {
  31. nv_wr32(dev, 0x400204, data);
  32. nv_wr32(dev, 0x400200, icmd);
  33. while (nv_rd32(dev, 0x400700) & 2) {}
  34. }
  35. static void
  36. nv_mthd(struct drm_device *dev, u32 class, u32 mthd, u32 data)
  37. {
  38. nv_wr32(dev, 0x40448c, data);
  39. nv_wr32(dev, 0x404488, 0x80000000 | (mthd << 14) | class);
  40. }
  41. static void
  42. nvc0_grctx_generate_9097(struct drm_device *dev)
  43. {
  44. u32 fermi = nvc0_graph_class(dev);
  45. u32 mthd;
  46. nv_mthd(dev, 0x9097, 0x0800, 0x00000000);
  47. nv_mthd(dev, 0x9097, 0x0840, 0x00000000);
  48. nv_mthd(dev, 0x9097, 0x0880, 0x00000000);
  49. nv_mthd(dev, 0x9097, 0x08c0, 0x00000000);
  50. nv_mthd(dev, 0x9097, 0x0900, 0x00000000);
  51. nv_mthd(dev, 0x9097, 0x0940, 0x00000000);
  52. nv_mthd(dev, 0x9097, 0x0980, 0x00000000);
  53. nv_mthd(dev, 0x9097, 0x09c0, 0x00000000);
  54. nv_mthd(dev, 0x9097, 0x0804, 0x00000000);
  55. nv_mthd(dev, 0x9097, 0x0844, 0x00000000);
  56. nv_mthd(dev, 0x9097, 0x0884, 0x00000000);
  57. nv_mthd(dev, 0x9097, 0x08c4, 0x00000000);
  58. nv_mthd(dev, 0x9097, 0x0904, 0x00000000);
  59. nv_mthd(dev, 0x9097, 0x0944, 0x00000000);
  60. nv_mthd(dev, 0x9097, 0x0984, 0x00000000);
  61. nv_mthd(dev, 0x9097, 0x09c4, 0x00000000);
  62. nv_mthd(dev, 0x9097, 0x0808, 0x00000400);
  63. nv_mthd(dev, 0x9097, 0x0848, 0x00000400);
  64. nv_mthd(dev, 0x9097, 0x0888, 0x00000400);
  65. nv_mthd(dev, 0x9097, 0x08c8, 0x00000400);
  66. nv_mthd(dev, 0x9097, 0x0908, 0x00000400);
  67. nv_mthd(dev, 0x9097, 0x0948, 0x00000400);
  68. nv_mthd(dev, 0x9097, 0x0988, 0x00000400);
  69. nv_mthd(dev, 0x9097, 0x09c8, 0x00000400);
  70. nv_mthd(dev, 0x9097, 0x080c, 0x00000300);
  71. nv_mthd(dev, 0x9097, 0x084c, 0x00000300);
  72. nv_mthd(dev, 0x9097, 0x088c, 0x00000300);
  73. nv_mthd(dev, 0x9097, 0x08cc, 0x00000300);
  74. nv_mthd(dev, 0x9097, 0x090c, 0x00000300);
  75. nv_mthd(dev, 0x9097, 0x094c, 0x00000300);
  76. nv_mthd(dev, 0x9097, 0x098c, 0x00000300);
  77. nv_mthd(dev, 0x9097, 0x09cc, 0x00000300);
  78. nv_mthd(dev, 0x9097, 0x0810, 0x000000cf);
  79. nv_mthd(dev, 0x9097, 0x0850, 0x00000000);
  80. nv_mthd(dev, 0x9097, 0x0890, 0x00000000);
  81. nv_mthd(dev, 0x9097, 0x08d0, 0x00000000);
  82. nv_mthd(dev, 0x9097, 0x0910, 0x00000000);
  83. nv_mthd(dev, 0x9097, 0x0950, 0x00000000);
  84. nv_mthd(dev, 0x9097, 0x0990, 0x00000000);
  85. nv_mthd(dev, 0x9097, 0x09d0, 0x00000000);
  86. nv_mthd(dev, 0x9097, 0x0814, 0x00000040);
  87. nv_mthd(dev, 0x9097, 0x0854, 0x00000040);
  88. nv_mthd(dev, 0x9097, 0x0894, 0x00000040);
  89. nv_mthd(dev, 0x9097, 0x08d4, 0x00000040);
  90. nv_mthd(dev, 0x9097, 0x0914, 0x00000040);
  91. nv_mthd(dev, 0x9097, 0x0954, 0x00000040);
  92. nv_mthd(dev, 0x9097, 0x0994, 0x00000040);
  93. nv_mthd(dev, 0x9097, 0x09d4, 0x00000040);
  94. nv_mthd(dev, 0x9097, 0x0818, 0x00000001);
  95. nv_mthd(dev, 0x9097, 0x0858, 0x00000001);
  96. nv_mthd(dev, 0x9097, 0x0898, 0x00000001);
  97. nv_mthd(dev, 0x9097, 0x08d8, 0x00000001);
  98. nv_mthd(dev, 0x9097, 0x0918, 0x00000001);
  99. nv_mthd(dev, 0x9097, 0x0958, 0x00000001);
  100. nv_mthd(dev, 0x9097, 0x0998, 0x00000001);
  101. nv_mthd(dev, 0x9097, 0x09d8, 0x00000001);
  102. nv_mthd(dev, 0x9097, 0x081c, 0x00000000);
  103. nv_mthd(dev, 0x9097, 0x085c, 0x00000000);
  104. nv_mthd(dev, 0x9097, 0x089c, 0x00000000);
  105. nv_mthd(dev, 0x9097, 0x08dc, 0x00000000);
  106. nv_mthd(dev, 0x9097, 0x091c, 0x00000000);
  107. nv_mthd(dev, 0x9097, 0x095c, 0x00000000);
  108. nv_mthd(dev, 0x9097, 0x099c, 0x00000000);
  109. nv_mthd(dev, 0x9097, 0x09dc, 0x00000000);
  110. nv_mthd(dev, 0x9097, 0x0820, 0x00000000);
  111. nv_mthd(dev, 0x9097, 0x0860, 0x00000000);
  112. nv_mthd(dev, 0x9097, 0x08a0, 0x00000000);
  113. nv_mthd(dev, 0x9097, 0x08e0, 0x00000000);
  114. nv_mthd(dev, 0x9097, 0x0920, 0x00000000);
  115. nv_mthd(dev, 0x9097, 0x0960, 0x00000000);
  116. nv_mthd(dev, 0x9097, 0x09a0, 0x00000000);
  117. nv_mthd(dev, 0x9097, 0x09e0, 0x00000000);
  118. nv_mthd(dev, 0x9097, 0x2700, 0x00000000);
  119. nv_mthd(dev, 0x9097, 0x2720, 0x00000000);
  120. nv_mthd(dev, 0x9097, 0x2740, 0x00000000);
  121. nv_mthd(dev, 0x9097, 0x2760, 0x00000000);
  122. nv_mthd(dev, 0x9097, 0x2780, 0x00000000);
  123. nv_mthd(dev, 0x9097, 0x27a0, 0x00000000);
  124. nv_mthd(dev, 0x9097, 0x27c0, 0x00000000);
  125. nv_mthd(dev, 0x9097, 0x27e0, 0x00000000);
  126. nv_mthd(dev, 0x9097, 0x2704, 0x00000000);
  127. nv_mthd(dev, 0x9097, 0x2724, 0x00000000);
  128. nv_mthd(dev, 0x9097, 0x2744, 0x00000000);
  129. nv_mthd(dev, 0x9097, 0x2764, 0x00000000);
  130. nv_mthd(dev, 0x9097, 0x2784, 0x00000000);
  131. nv_mthd(dev, 0x9097, 0x27a4, 0x00000000);
  132. nv_mthd(dev, 0x9097, 0x27c4, 0x00000000);
  133. nv_mthd(dev, 0x9097, 0x27e4, 0x00000000);
  134. nv_mthd(dev, 0x9097, 0x2708, 0x00000000);
  135. nv_mthd(dev, 0x9097, 0x2728, 0x00000000);
  136. nv_mthd(dev, 0x9097, 0x2748, 0x00000000);
  137. nv_mthd(dev, 0x9097, 0x2768, 0x00000000);
  138. nv_mthd(dev, 0x9097, 0x2788, 0x00000000);
  139. nv_mthd(dev, 0x9097, 0x27a8, 0x00000000);
  140. nv_mthd(dev, 0x9097, 0x27c8, 0x00000000);
  141. nv_mthd(dev, 0x9097, 0x27e8, 0x00000000);
  142. nv_mthd(dev, 0x9097, 0x270c, 0x00000000);
  143. nv_mthd(dev, 0x9097, 0x272c, 0x00000000);
  144. nv_mthd(dev, 0x9097, 0x274c, 0x00000000);
  145. nv_mthd(dev, 0x9097, 0x276c, 0x00000000);
  146. nv_mthd(dev, 0x9097, 0x278c, 0x00000000);
  147. nv_mthd(dev, 0x9097, 0x27ac, 0x00000000);
  148. nv_mthd(dev, 0x9097, 0x27cc, 0x00000000);
  149. nv_mthd(dev, 0x9097, 0x27ec, 0x00000000);
  150. nv_mthd(dev, 0x9097, 0x2710, 0x00014000);
  151. nv_mthd(dev, 0x9097, 0x2730, 0x00014000);
  152. nv_mthd(dev, 0x9097, 0x2750, 0x00014000);
  153. nv_mthd(dev, 0x9097, 0x2770, 0x00014000);
  154. nv_mthd(dev, 0x9097, 0x2790, 0x00014000);
  155. nv_mthd(dev, 0x9097, 0x27b0, 0x00014000);
  156. nv_mthd(dev, 0x9097, 0x27d0, 0x00014000);
  157. nv_mthd(dev, 0x9097, 0x27f0, 0x00014000);
  158. nv_mthd(dev, 0x9097, 0x2714, 0x00000040);
  159. nv_mthd(dev, 0x9097, 0x2734, 0x00000040);
  160. nv_mthd(dev, 0x9097, 0x2754, 0x00000040);
  161. nv_mthd(dev, 0x9097, 0x2774, 0x00000040);
  162. nv_mthd(dev, 0x9097, 0x2794, 0x00000040);
  163. nv_mthd(dev, 0x9097, 0x27b4, 0x00000040);
  164. nv_mthd(dev, 0x9097, 0x27d4, 0x00000040);
  165. nv_mthd(dev, 0x9097, 0x27f4, 0x00000040);
  166. nv_mthd(dev, 0x9097, 0x1c00, 0x00000000);
  167. nv_mthd(dev, 0x9097, 0x1c10, 0x00000000);
  168. nv_mthd(dev, 0x9097, 0x1c20, 0x00000000);
  169. nv_mthd(dev, 0x9097, 0x1c30, 0x00000000);
  170. nv_mthd(dev, 0x9097, 0x1c40, 0x00000000);
  171. nv_mthd(dev, 0x9097, 0x1c50, 0x00000000);
  172. nv_mthd(dev, 0x9097, 0x1c60, 0x00000000);
  173. nv_mthd(dev, 0x9097, 0x1c70, 0x00000000);
  174. nv_mthd(dev, 0x9097, 0x1c80, 0x00000000);
  175. nv_mthd(dev, 0x9097, 0x1c90, 0x00000000);
  176. nv_mthd(dev, 0x9097, 0x1ca0, 0x00000000);
  177. nv_mthd(dev, 0x9097, 0x1cb0, 0x00000000);
  178. nv_mthd(dev, 0x9097, 0x1cc0, 0x00000000);
  179. nv_mthd(dev, 0x9097, 0x1cd0, 0x00000000);
  180. nv_mthd(dev, 0x9097, 0x1ce0, 0x00000000);
  181. nv_mthd(dev, 0x9097, 0x1cf0, 0x00000000);
  182. nv_mthd(dev, 0x9097, 0x1c04, 0x00000000);
  183. nv_mthd(dev, 0x9097, 0x1c14, 0x00000000);
  184. nv_mthd(dev, 0x9097, 0x1c24, 0x00000000);
  185. nv_mthd(dev, 0x9097, 0x1c34, 0x00000000);
  186. nv_mthd(dev, 0x9097, 0x1c44, 0x00000000);
  187. nv_mthd(dev, 0x9097, 0x1c54, 0x00000000);
  188. nv_mthd(dev, 0x9097, 0x1c64, 0x00000000);
  189. nv_mthd(dev, 0x9097, 0x1c74, 0x00000000);
  190. nv_mthd(dev, 0x9097, 0x1c84, 0x00000000);
  191. nv_mthd(dev, 0x9097, 0x1c94, 0x00000000);
  192. nv_mthd(dev, 0x9097, 0x1ca4, 0x00000000);
  193. nv_mthd(dev, 0x9097, 0x1cb4, 0x00000000);
  194. nv_mthd(dev, 0x9097, 0x1cc4, 0x00000000);
  195. nv_mthd(dev, 0x9097, 0x1cd4, 0x00000000);
  196. nv_mthd(dev, 0x9097, 0x1ce4, 0x00000000);
  197. nv_mthd(dev, 0x9097, 0x1cf4, 0x00000000);
  198. nv_mthd(dev, 0x9097, 0x1c08, 0x00000000);
  199. nv_mthd(dev, 0x9097, 0x1c18, 0x00000000);
  200. nv_mthd(dev, 0x9097, 0x1c28, 0x00000000);
  201. nv_mthd(dev, 0x9097, 0x1c38, 0x00000000);
  202. nv_mthd(dev, 0x9097, 0x1c48, 0x00000000);
  203. nv_mthd(dev, 0x9097, 0x1c58, 0x00000000);
  204. nv_mthd(dev, 0x9097, 0x1c68, 0x00000000);
  205. nv_mthd(dev, 0x9097, 0x1c78, 0x00000000);
  206. nv_mthd(dev, 0x9097, 0x1c88, 0x00000000);
  207. nv_mthd(dev, 0x9097, 0x1c98, 0x00000000);
  208. nv_mthd(dev, 0x9097, 0x1ca8, 0x00000000);
  209. nv_mthd(dev, 0x9097, 0x1cb8, 0x00000000);
  210. nv_mthd(dev, 0x9097, 0x1cc8, 0x00000000);
  211. nv_mthd(dev, 0x9097, 0x1cd8, 0x00000000);
  212. nv_mthd(dev, 0x9097, 0x1ce8, 0x00000000);
  213. nv_mthd(dev, 0x9097, 0x1cf8, 0x00000000);
  214. nv_mthd(dev, 0x9097, 0x1c0c, 0x00000000);
  215. nv_mthd(dev, 0x9097, 0x1c1c, 0x00000000);
  216. nv_mthd(dev, 0x9097, 0x1c2c, 0x00000000);
  217. nv_mthd(dev, 0x9097, 0x1c3c, 0x00000000);
  218. nv_mthd(dev, 0x9097, 0x1c4c, 0x00000000);
  219. nv_mthd(dev, 0x9097, 0x1c5c, 0x00000000);
  220. nv_mthd(dev, 0x9097, 0x1c6c, 0x00000000);
  221. nv_mthd(dev, 0x9097, 0x1c7c, 0x00000000);
  222. nv_mthd(dev, 0x9097, 0x1c8c, 0x00000000);
  223. nv_mthd(dev, 0x9097, 0x1c9c, 0x00000000);
  224. nv_mthd(dev, 0x9097, 0x1cac, 0x00000000);
  225. nv_mthd(dev, 0x9097, 0x1cbc, 0x00000000);
  226. nv_mthd(dev, 0x9097, 0x1ccc, 0x00000000);
  227. nv_mthd(dev, 0x9097, 0x1cdc, 0x00000000);
  228. nv_mthd(dev, 0x9097, 0x1cec, 0x00000000);
  229. nv_mthd(dev, 0x9097, 0x1cfc, 0x00000000);
  230. nv_mthd(dev, 0x9097, 0x1d00, 0x00000000);
  231. nv_mthd(dev, 0x9097, 0x1d10, 0x00000000);
  232. nv_mthd(dev, 0x9097, 0x1d20, 0x00000000);
  233. nv_mthd(dev, 0x9097, 0x1d30, 0x00000000);
  234. nv_mthd(dev, 0x9097, 0x1d40, 0x00000000);
  235. nv_mthd(dev, 0x9097, 0x1d50, 0x00000000);
  236. nv_mthd(dev, 0x9097, 0x1d60, 0x00000000);
  237. nv_mthd(dev, 0x9097, 0x1d70, 0x00000000);
  238. nv_mthd(dev, 0x9097, 0x1d80, 0x00000000);
  239. nv_mthd(dev, 0x9097, 0x1d90, 0x00000000);
  240. nv_mthd(dev, 0x9097, 0x1da0, 0x00000000);
  241. nv_mthd(dev, 0x9097, 0x1db0, 0x00000000);
  242. nv_mthd(dev, 0x9097, 0x1dc0, 0x00000000);
  243. nv_mthd(dev, 0x9097, 0x1dd0, 0x00000000);
  244. nv_mthd(dev, 0x9097, 0x1de0, 0x00000000);
  245. nv_mthd(dev, 0x9097, 0x1df0, 0x00000000);
  246. nv_mthd(dev, 0x9097, 0x1d04, 0x00000000);
  247. nv_mthd(dev, 0x9097, 0x1d14, 0x00000000);
  248. nv_mthd(dev, 0x9097, 0x1d24, 0x00000000);
  249. nv_mthd(dev, 0x9097, 0x1d34, 0x00000000);
  250. nv_mthd(dev, 0x9097, 0x1d44, 0x00000000);
  251. nv_mthd(dev, 0x9097, 0x1d54, 0x00000000);
  252. nv_mthd(dev, 0x9097, 0x1d64, 0x00000000);
  253. nv_mthd(dev, 0x9097, 0x1d74, 0x00000000);
  254. nv_mthd(dev, 0x9097, 0x1d84, 0x00000000);
  255. nv_mthd(dev, 0x9097, 0x1d94, 0x00000000);
  256. nv_mthd(dev, 0x9097, 0x1da4, 0x00000000);
  257. nv_mthd(dev, 0x9097, 0x1db4, 0x00000000);
  258. nv_mthd(dev, 0x9097, 0x1dc4, 0x00000000);
  259. nv_mthd(dev, 0x9097, 0x1dd4, 0x00000000);
  260. nv_mthd(dev, 0x9097, 0x1de4, 0x00000000);
  261. nv_mthd(dev, 0x9097, 0x1df4, 0x00000000);
  262. nv_mthd(dev, 0x9097, 0x1d08, 0x00000000);
  263. nv_mthd(dev, 0x9097, 0x1d18, 0x00000000);
  264. nv_mthd(dev, 0x9097, 0x1d28, 0x00000000);
  265. nv_mthd(dev, 0x9097, 0x1d38, 0x00000000);
  266. nv_mthd(dev, 0x9097, 0x1d48, 0x00000000);
  267. nv_mthd(dev, 0x9097, 0x1d58, 0x00000000);
  268. nv_mthd(dev, 0x9097, 0x1d68, 0x00000000);
  269. nv_mthd(dev, 0x9097, 0x1d78, 0x00000000);
  270. nv_mthd(dev, 0x9097, 0x1d88, 0x00000000);
  271. nv_mthd(dev, 0x9097, 0x1d98, 0x00000000);
  272. nv_mthd(dev, 0x9097, 0x1da8, 0x00000000);
  273. nv_mthd(dev, 0x9097, 0x1db8, 0x00000000);
  274. nv_mthd(dev, 0x9097, 0x1dc8, 0x00000000);
  275. nv_mthd(dev, 0x9097, 0x1dd8, 0x00000000);
  276. nv_mthd(dev, 0x9097, 0x1de8, 0x00000000);
  277. nv_mthd(dev, 0x9097, 0x1df8, 0x00000000);
  278. nv_mthd(dev, 0x9097, 0x1d0c, 0x00000000);
  279. nv_mthd(dev, 0x9097, 0x1d1c, 0x00000000);
  280. nv_mthd(dev, 0x9097, 0x1d2c, 0x00000000);
  281. nv_mthd(dev, 0x9097, 0x1d3c, 0x00000000);
  282. nv_mthd(dev, 0x9097, 0x1d4c, 0x00000000);
  283. nv_mthd(dev, 0x9097, 0x1d5c, 0x00000000);
  284. nv_mthd(dev, 0x9097, 0x1d6c, 0x00000000);
  285. nv_mthd(dev, 0x9097, 0x1d7c, 0x00000000);
  286. nv_mthd(dev, 0x9097, 0x1d8c, 0x00000000);
  287. nv_mthd(dev, 0x9097, 0x1d9c, 0x00000000);
  288. nv_mthd(dev, 0x9097, 0x1dac, 0x00000000);
  289. nv_mthd(dev, 0x9097, 0x1dbc, 0x00000000);
  290. nv_mthd(dev, 0x9097, 0x1dcc, 0x00000000);
  291. nv_mthd(dev, 0x9097, 0x1ddc, 0x00000000);
  292. nv_mthd(dev, 0x9097, 0x1dec, 0x00000000);
  293. nv_mthd(dev, 0x9097, 0x1dfc, 0x00000000);
  294. nv_mthd(dev, 0x9097, 0x1f00, 0x00000000);
  295. nv_mthd(dev, 0x9097, 0x1f08, 0x00000000);
  296. nv_mthd(dev, 0x9097, 0x1f10, 0x00000000);
  297. nv_mthd(dev, 0x9097, 0x1f18, 0x00000000);
  298. nv_mthd(dev, 0x9097, 0x1f20, 0x00000000);
  299. nv_mthd(dev, 0x9097, 0x1f28, 0x00000000);
  300. nv_mthd(dev, 0x9097, 0x1f30, 0x00000000);
  301. nv_mthd(dev, 0x9097, 0x1f38, 0x00000000);
  302. nv_mthd(dev, 0x9097, 0x1f40, 0x00000000);
  303. nv_mthd(dev, 0x9097, 0x1f48, 0x00000000);
  304. nv_mthd(dev, 0x9097, 0x1f50, 0x00000000);
  305. nv_mthd(dev, 0x9097, 0x1f58, 0x00000000);
  306. nv_mthd(dev, 0x9097, 0x1f60, 0x00000000);
  307. nv_mthd(dev, 0x9097, 0x1f68, 0x00000000);
  308. nv_mthd(dev, 0x9097, 0x1f70, 0x00000000);
  309. nv_mthd(dev, 0x9097, 0x1f78, 0x00000000);
  310. nv_mthd(dev, 0x9097, 0x1f04, 0x00000000);
  311. nv_mthd(dev, 0x9097, 0x1f0c, 0x00000000);
  312. nv_mthd(dev, 0x9097, 0x1f14, 0x00000000);
  313. nv_mthd(dev, 0x9097, 0x1f1c, 0x00000000);
  314. nv_mthd(dev, 0x9097, 0x1f24, 0x00000000);
  315. nv_mthd(dev, 0x9097, 0x1f2c, 0x00000000);
  316. nv_mthd(dev, 0x9097, 0x1f34, 0x00000000);
  317. nv_mthd(dev, 0x9097, 0x1f3c, 0x00000000);
  318. nv_mthd(dev, 0x9097, 0x1f44, 0x00000000);
  319. nv_mthd(dev, 0x9097, 0x1f4c, 0x00000000);
  320. nv_mthd(dev, 0x9097, 0x1f54, 0x00000000);
  321. nv_mthd(dev, 0x9097, 0x1f5c, 0x00000000);
  322. nv_mthd(dev, 0x9097, 0x1f64, 0x00000000);
  323. nv_mthd(dev, 0x9097, 0x1f6c, 0x00000000);
  324. nv_mthd(dev, 0x9097, 0x1f74, 0x00000000);
  325. nv_mthd(dev, 0x9097, 0x1f7c, 0x00000000);
  326. nv_mthd(dev, 0x9097, 0x1f80, 0x00000000);
  327. nv_mthd(dev, 0x9097, 0x1f88, 0x00000000);
  328. nv_mthd(dev, 0x9097, 0x1f90, 0x00000000);
  329. nv_mthd(dev, 0x9097, 0x1f98, 0x00000000);
  330. nv_mthd(dev, 0x9097, 0x1fa0, 0x00000000);
  331. nv_mthd(dev, 0x9097, 0x1fa8, 0x00000000);
  332. nv_mthd(dev, 0x9097, 0x1fb0, 0x00000000);
  333. nv_mthd(dev, 0x9097, 0x1fb8, 0x00000000);
  334. nv_mthd(dev, 0x9097, 0x1fc0, 0x00000000);
  335. nv_mthd(dev, 0x9097, 0x1fc8, 0x00000000);
  336. nv_mthd(dev, 0x9097, 0x1fd0, 0x00000000);
  337. nv_mthd(dev, 0x9097, 0x1fd8, 0x00000000);
  338. nv_mthd(dev, 0x9097, 0x1fe0, 0x00000000);
  339. nv_mthd(dev, 0x9097, 0x1fe8, 0x00000000);
  340. nv_mthd(dev, 0x9097, 0x1ff0, 0x00000000);
  341. nv_mthd(dev, 0x9097, 0x1ff8, 0x00000000);
  342. nv_mthd(dev, 0x9097, 0x1f84, 0x00000000);
  343. nv_mthd(dev, 0x9097, 0x1f8c, 0x00000000);
  344. nv_mthd(dev, 0x9097, 0x1f94, 0x00000000);
  345. nv_mthd(dev, 0x9097, 0x1f9c, 0x00000000);
  346. nv_mthd(dev, 0x9097, 0x1fa4, 0x00000000);
  347. nv_mthd(dev, 0x9097, 0x1fac, 0x00000000);
  348. nv_mthd(dev, 0x9097, 0x1fb4, 0x00000000);
  349. nv_mthd(dev, 0x9097, 0x1fbc, 0x00000000);
  350. nv_mthd(dev, 0x9097, 0x1fc4, 0x00000000);
  351. nv_mthd(dev, 0x9097, 0x1fcc, 0x00000000);
  352. nv_mthd(dev, 0x9097, 0x1fd4, 0x00000000);
  353. nv_mthd(dev, 0x9097, 0x1fdc, 0x00000000);
  354. nv_mthd(dev, 0x9097, 0x1fe4, 0x00000000);
  355. nv_mthd(dev, 0x9097, 0x1fec, 0x00000000);
  356. nv_mthd(dev, 0x9097, 0x1ff4, 0x00000000);
  357. nv_mthd(dev, 0x9097, 0x1ffc, 0x00000000);
  358. nv_mthd(dev, 0x9097, 0x2200, 0x00000022);
  359. nv_mthd(dev, 0x9097, 0x2210, 0x00000022);
  360. nv_mthd(dev, 0x9097, 0x2220, 0x00000022);
  361. nv_mthd(dev, 0x9097, 0x2230, 0x00000022);
  362. nv_mthd(dev, 0x9097, 0x2240, 0x00000022);
  363. nv_mthd(dev, 0x9097, 0x2000, 0x00000000);
  364. nv_mthd(dev, 0x9097, 0x2040, 0x00000011);
  365. nv_mthd(dev, 0x9097, 0x2080, 0x00000020);
  366. nv_mthd(dev, 0x9097, 0x20c0, 0x00000030);
  367. nv_mthd(dev, 0x9097, 0x2100, 0x00000040);
  368. nv_mthd(dev, 0x9097, 0x2140, 0x00000051);
  369. nv_mthd(dev, 0x9097, 0x200c, 0x00000001);
  370. nv_mthd(dev, 0x9097, 0x204c, 0x00000001);
  371. nv_mthd(dev, 0x9097, 0x208c, 0x00000001);
  372. nv_mthd(dev, 0x9097, 0x20cc, 0x00000001);
  373. nv_mthd(dev, 0x9097, 0x210c, 0x00000001);
  374. nv_mthd(dev, 0x9097, 0x214c, 0x00000001);
  375. nv_mthd(dev, 0x9097, 0x2010, 0x00000000);
  376. nv_mthd(dev, 0x9097, 0x2050, 0x00000000);
  377. nv_mthd(dev, 0x9097, 0x2090, 0x00000001);
  378. nv_mthd(dev, 0x9097, 0x20d0, 0x00000002);
  379. nv_mthd(dev, 0x9097, 0x2110, 0x00000003);
  380. nv_mthd(dev, 0x9097, 0x2150, 0x00000004);
  381. nv_mthd(dev, 0x9097, 0x0380, 0x00000000);
  382. nv_mthd(dev, 0x9097, 0x03a0, 0x00000000);
  383. nv_mthd(dev, 0x9097, 0x03c0, 0x00000000);
  384. nv_mthd(dev, 0x9097, 0x03e0, 0x00000000);
  385. nv_mthd(dev, 0x9097, 0x0384, 0x00000000);
  386. nv_mthd(dev, 0x9097, 0x03a4, 0x00000000);
  387. nv_mthd(dev, 0x9097, 0x03c4, 0x00000000);
  388. nv_mthd(dev, 0x9097, 0x03e4, 0x00000000);
  389. nv_mthd(dev, 0x9097, 0x0388, 0x00000000);
  390. nv_mthd(dev, 0x9097, 0x03a8, 0x00000000);
  391. nv_mthd(dev, 0x9097, 0x03c8, 0x00000000);
  392. nv_mthd(dev, 0x9097, 0x03e8, 0x00000000);
  393. nv_mthd(dev, 0x9097, 0x038c, 0x00000000);
  394. nv_mthd(dev, 0x9097, 0x03ac, 0x00000000);
  395. nv_mthd(dev, 0x9097, 0x03cc, 0x00000000);
  396. nv_mthd(dev, 0x9097, 0x03ec, 0x00000000);
  397. nv_mthd(dev, 0x9097, 0x0700, 0x00000000);
  398. nv_mthd(dev, 0x9097, 0x0710, 0x00000000);
  399. nv_mthd(dev, 0x9097, 0x0720, 0x00000000);
  400. nv_mthd(dev, 0x9097, 0x0730, 0x00000000);
  401. nv_mthd(dev, 0x9097, 0x0704, 0x00000000);
  402. nv_mthd(dev, 0x9097, 0x0714, 0x00000000);
  403. nv_mthd(dev, 0x9097, 0x0724, 0x00000000);
  404. nv_mthd(dev, 0x9097, 0x0734, 0x00000000);
  405. nv_mthd(dev, 0x9097, 0x0708, 0x00000000);
  406. nv_mthd(dev, 0x9097, 0x0718, 0x00000000);
  407. nv_mthd(dev, 0x9097, 0x0728, 0x00000000);
  408. nv_mthd(dev, 0x9097, 0x0738, 0x00000000);
  409. nv_mthd(dev, 0x9097, 0x2800, 0x00000000);
  410. nv_mthd(dev, 0x9097, 0x2804, 0x00000000);
  411. nv_mthd(dev, 0x9097, 0x2808, 0x00000000);
  412. nv_mthd(dev, 0x9097, 0x280c, 0x00000000);
  413. nv_mthd(dev, 0x9097, 0x2810, 0x00000000);
  414. nv_mthd(dev, 0x9097, 0x2814, 0x00000000);
  415. nv_mthd(dev, 0x9097, 0x2818, 0x00000000);
  416. nv_mthd(dev, 0x9097, 0x281c, 0x00000000);
  417. nv_mthd(dev, 0x9097, 0x2820, 0x00000000);
  418. nv_mthd(dev, 0x9097, 0x2824, 0x00000000);
  419. nv_mthd(dev, 0x9097, 0x2828, 0x00000000);
  420. nv_mthd(dev, 0x9097, 0x282c, 0x00000000);
  421. nv_mthd(dev, 0x9097, 0x2830, 0x00000000);
  422. nv_mthd(dev, 0x9097, 0x2834, 0x00000000);
  423. nv_mthd(dev, 0x9097, 0x2838, 0x00000000);
  424. nv_mthd(dev, 0x9097, 0x283c, 0x00000000);
  425. nv_mthd(dev, 0x9097, 0x2840, 0x00000000);
  426. nv_mthd(dev, 0x9097, 0x2844, 0x00000000);
  427. nv_mthd(dev, 0x9097, 0x2848, 0x00000000);
  428. nv_mthd(dev, 0x9097, 0x284c, 0x00000000);
  429. nv_mthd(dev, 0x9097, 0x2850, 0x00000000);
  430. nv_mthd(dev, 0x9097, 0x2854, 0x00000000);
  431. nv_mthd(dev, 0x9097, 0x2858, 0x00000000);
  432. nv_mthd(dev, 0x9097, 0x285c, 0x00000000);
  433. nv_mthd(dev, 0x9097, 0x2860, 0x00000000);
  434. nv_mthd(dev, 0x9097, 0x2864, 0x00000000);
  435. nv_mthd(dev, 0x9097, 0x2868, 0x00000000);
  436. nv_mthd(dev, 0x9097, 0x286c, 0x00000000);
  437. nv_mthd(dev, 0x9097, 0x2870, 0x00000000);
  438. nv_mthd(dev, 0x9097, 0x2874, 0x00000000);
  439. nv_mthd(dev, 0x9097, 0x2878, 0x00000000);
  440. nv_mthd(dev, 0x9097, 0x287c, 0x00000000);
  441. nv_mthd(dev, 0x9097, 0x2880, 0x00000000);
  442. nv_mthd(dev, 0x9097, 0x2884, 0x00000000);
  443. nv_mthd(dev, 0x9097, 0x2888, 0x00000000);
  444. nv_mthd(dev, 0x9097, 0x288c, 0x00000000);
  445. nv_mthd(dev, 0x9097, 0x2890, 0x00000000);
  446. nv_mthd(dev, 0x9097, 0x2894, 0x00000000);
  447. nv_mthd(dev, 0x9097, 0x2898, 0x00000000);
  448. nv_mthd(dev, 0x9097, 0x289c, 0x00000000);
  449. nv_mthd(dev, 0x9097, 0x28a0, 0x00000000);
  450. nv_mthd(dev, 0x9097, 0x28a4, 0x00000000);
  451. nv_mthd(dev, 0x9097, 0x28a8, 0x00000000);
  452. nv_mthd(dev, 0x9097, 0x28ac, 0x00000000);
  453. nv_mthd(dev, 0x9097, 0x28b0, 0x00000000);
  454. nv_mthd(dev, 0x9097, 0x28b4, 0x00000000);
  455. nv_mthd(dev, 0x9097, 0x28b8, 0x00000000);
  456. nv_mthd(dev, 0x9097, 0x28bc, 0x00000000);
  457. nv_mthd(dev, 0x9097, 0x28c0, 0x00000000);
  458. nv_mthd(dev, 0x9097, 0x28c4, 0x00000000);
  459. nv_mthd(dev, 0x9097, 0x28c8, 0x00000000);
  460. nv_mthd(dev, 0x9097, 0x28cc, 0x00000000);
  461. nv_mthd(dev, 0x9097, 0x28d0, 0x00000000);
  462. nv_mthd(dev, 0x9097, 0x28d4, 0x00000000);
  463. nv_mthd(dev, 0x9097, 0x28d8, 0x00000000);
  464. nv_mthd(dev, 0x9097, 0x28dc, 0x00000000);
  465. nv_mthd(dev, 0x9097, 0x28e0, 0x00000000);
  466. nv_mthd(dev, 0x9097, 0x28e4, 0x00000000);
  467. nv_mthd(dev, 0x9097, 0x28e8, 0x00000000);
  468. nv_mthd(dev, 0x9097, 0x28ec, 0x00000000);
  469. nv_mthd(dev, 0x9097, 0x28f0, 0x00000000);
  470. nv_mthd(dev, 0x9097, 0x28f4, 0x00000000);
  471. nv_mthd(dev, 0x9097, 0x28f8, 0x00000000);
  472. nv_mthd(dev, 0x9097, 0x28fc, 0x00000000);
  473. nv_mthd(dev, 0x9097, 0x2900, 0x00000000);
  474. nv_mthd(dev, 0x9097, 0x2904, 0x00000000);
  475. nv_mthd(dev, 0x9097, 0x2908, 0x00000000);
  476. nv_mthd(dev, 0x9097, 0x290c, 0x00000000);
  477. nv_mthd(dev, 0x9097, 0x2910, 0x00000000);
  478. nv_mthd(dev, 0x9097, 0x2914, 0x00000000);
  479. nv_mthd(dev, 0x9097, 0x2918, 0x00000000);
  480. nv_mthd(dev, 0x9097, 0x291c, 0x00000000);
  481. nv_mthd(dev, 0x9097, 0x2920, 0x00000000);
  482. nv_mthd(dev, 0x9097, 0x2924, 0x00000000);
  483. nv_mthd(dev, 0x9097, 0x2928, 0x00000000);
  484. nv_mthd(dev, 0x9097, 0x292c, 0x00000000);
  485. nv_mthd(dev, 0x9097, 0x2930, 0x00000000);
  486. nv_mthd(dev, 0x9097, 0x2934, 0x00000000);
  487. nv_mthd(dev, 0x9097, 0x2938, 0x00000000);
  488. nv_mthd(dev, 0x9097, 0x293c, 0x00000000);
  489. nv_mthd(dev, 0x9097, 0x2940, 0x00000000);
  490. nv_mthd(dev, 0x9097, 0x2944, 0x00000000);
  491. nv_mthd(dev, 0x9097, 0x2948, 0x00000000);
  492. nv_mthd(dev, 0x9097, 0x294c, 0x00000000);
  493. nv_mthd(dev, 0x9097, 0x2950, 0x00000000);
  494. nv_mthd(dev, 0x9097, 0x2954, 0x00000000);
  495. nv_mthd(dev, 0x9097, 0x2958, 0x00000000);
  496. nv_mthd(dev, 0x9097, 0x295c, 0x00000000);
  497. nv_mthd(dev, 0x9097, 0x2960, 0x00000000);
  498. nv_mthd(dev, 0x9097, 0x2964, 0x00000000);
  499. nv_mthd(dev, 0x9097, 0x2968, 0x00000000);
  500. nv_mthd(dev, 0x9097, 0x296c, 0x00000000);
  501. nv_mthd(dev, 0x9097, 0x2970, 0x00000000);
  502. nv_mthd(dev, 0x9097, 0x2974, 0x00000000);
  503. nv_mthd(dev, 0x9097, 0x2978, 0x00000000);
  504. nv_mthd(dev, 0x9097, 0x297c, 0x00000000);
  505. nv_mthd(dev, 0x9097, 0x2980, 0x00000000);
  506. nv_mthd(dev, 0x9097, 0x2984, 0x00000000);
  507. nv_mthd(dev, 0x9097, 0x2988, 0x00000000);
  508. nv_mthd(dev, 0x9097, 0x298c, 0x00000000);
  509. nv_mthd(dev, 0x9097, 0x2990, 0x00000000);
  510. nv_mthd(dev, 0x9097, 0x2994, 0x00000000);
  511. nv_mthd(dev, 0x9097, 0x2998, 0x00000000);
  512. nv_mthd(dev, 0x9097, 0x299c, 0x00000000);
  513. nv_mthd(dev, 0x9097, 0x29a0, 0x00000000);
  514. nv_mthd(dev, 0x9097, 0x29a4, 0x00000000);
  515. nv_mthd(dev, 0x9097, 0x29a8, 0x00000000);
  516. nv_mthd(dev, 0x9097, 0x29ac, 0x00000000);
  517. nv_mthd(dev, 0x9097, 0x29b0, 0x00000000);
  518. nv_mthd(dev, 0x9097, 0x29b4, 0x00000000);
  519. nv_mthd(dev, 0x9097, 0x29b8, 0x00000000);
  520. nv_mthd(dev, 0x9097, 0x29bc, 0x00000000);
  521. nv_mthd(dev, 0x9097, 0x29c0, 0x00000000);
  522. nv_mthd(dev, 0x9097, 0x29c4, 0x00000000);
  523. nv_mthd(dev, 0x9097, 0x29c8, 0x00000000);
  524. nv_mthd(dev, 0x9097, 0x29cc, 0x00000000);
  525. nv_mthd(dev, 0x9097, 0x29d0, 0x00000000);
  526. nv_mthd(dev, 0x9097, 0x29d4, 0x00000000);
  527. nv_mthd(dev, 0x9097, 0x29d8, 0x00000000);
  528. nv_mthd(dev, 0x9097, 0x29dc, 0x00000000);
  529. nv_mthd(dev, 0x9097, 0x29e0, 0x00000000);
  530. nv_mthd(dev, 0x9097, 0x29e4, 0x00000000);
  531. nv_mthd(dev, 0x9097, 0x29e8, 0x00000000);
  532. nv_mthd(dev, 0x9097, 0x29ec, 0x00000000);
  533. nv_mthd(dev, 0x9097, 0x29f0, 0x00000000);
  534. nv_mthd(dev, 0x9097, 0x29f4, 0x00000000);
  535. nv_mthd(dev, 0x9097, 0x29f8, 0x00000000);
  536. nv_mthd(dev, 0x9097, 0x29fc, 0x00000000);
  537. nv_mthd(dev, 0x9097, 0x0a00, 0x00000000);
  538. nv_mthd(dev, 0x9097, 0x0a20, 0x00000000);
  539. nv_mthd(dev, 0x9097, 0x0a40, 0x00000000);
  540. nv_mthd(dev, 0x9097, 0x0a60, 0x00000000);
  541. nv_mthd(dev, 0x9097, 0x0a80, 0x00000000);
  542. nv_mthd(dev, 0x9097, 0x0aa0, 0x00000000);
  543. nv_mthd(dev, 0x9097, 0x0ac0, 0x00000000);
  544. nv_mthd(dev, 0x9097, 0x0ae0, 0x00000000);
  545. nv_mthd(dev, 0x9097, 0x0b00, 0x00000000);
  546. nv_mthd(dev, 0x9097, 0x0b20, 0x00000000);
  547. nv_mthd(dev, 0x9097, 0x0b40, 0x00000000);
  548. nv_mthd(dev, 0x9097, 0x0b60, 0x00000000);
  549. nv_mthd(dev, 0x9097, 0x0b80, 0x00000000);
  550. nv_mthd(dev, 0x9097, 0x0ba0, 0x00000000);
  551. nv_mthd(dev, 0x9097, 0x0bc0, 0x00000000);
  552. nv_mthd(dev, 0x9097, 0x0be0, 0x00000000);
  553. nv_mthd(dev, 0x9097, 0x0a04, 0x00000000);
  554. nv_mthd(dev, 0x9097, 0x0a24, 0x00000000);
  555. nv_mthd(dev, 0x9097, 0x0a44, 0x00000000);
  556. nv_mthd(dev, 0x9097, 0x0a64, 0x00000000);
  557. nv_mthd(dev, 0x9097, 0x0a84, 0x00000000);
  558. nv_mthd(dev, 0x9097, 0x0aa4, 0x00000000);
  559. nv_mthd(dev, 0x9097, 0x0ac4, 0x00000000);
  560. nv_mthd(dev, 0x9097, 0x0ae4, 0x00000000);
  561. nv_mthd(dev, 0x9097, 0x0b04, 0x00000000);
  562. nv_mthd(dev, 0x9097, 0x0b24, 0x00000000);
  563. nv_mthd(dev, 0x9097, 0x0b44, 0x00000000);
  564. nv_mthd(dev, 0x9097, 0x0b64, 0x00000000);
  565. nv_mthd(dev, 0x9097, 0x0b84, 0x00000000);
  566. nv_mthd(dev, 0x9097, 0x0ba4, 0x00000000);
  567. nv_mthd(dev, 0x9097, 0x0bc4, 0x00000000);
  568. nv_mthd(dev, 0x9097, 0x0be4, 0x00000000);
  569. nv_mthd(dev, 0x9097, 0x0a08, 0x00000000);
  570. nv_mthd(dev, 0x9097, 0x0a28, 0x00000000);
  571. nv_mthd(dev, 0x9097, 0x0a48, 0x00000000);
  572. nv_mthd(dev, 0x9097, 0x0a68, 0x00000000);
  573. nv_mthd(dev, 0x9097, 0x0a88, 0x00000000);
  574. nv_mthd(dev, 0x9097, 0x0aa8, 0x00000000);
  575. nv_mthd(dev, 0x9097, 0x0ac8, 0x00000000);
  576. nv_mthd(dev, 0x9097, 0x0ae8, 0x00000000);
  577. nv_mthd(dev, 0x9097, 0x0b08, 0x00000000);
  578. nv_mthd(dev, 0x9097, 0x0b28, 0x00000000);
  579. nv_mthd(dev, 0x9097, 0x0b48, 0x00000000);
  580. nv_mthd(dev, 0x9097, 0x0b68, 0x00000000);
  581. nv_mthd(dev, 0x9097, 0x0b88, 0x00000000);
  582. nv_mthd(dev, 0x9097, 0x0ba8, 0x00000000);
  583. nv_mthd(dev, 0x9097, 0x0bc8, 0x00000000);
  584. nv_mthd(dev, 0x9097, 0x0be8, 0x00000000);
  585. nv_mthd(dev, 0x9097, 0x0a0c, 0x00000000);
  586. nv_mthd(dev, 0x9097, 0x0a2c, 0x00000000);
  587. nv_mthd(dev, 0x9097, 0x0a4c, 0x00000000);
  588. nv_mthd(dev, 0x9097, 0x0a6c, 0x00000000);
  589. nv_mthd(dev, 0x9097, 0x0a8c, 0x00000000);
  590. nv_mthd(dev, 0x9097, 0x0aac, 0x00000000);
  591. nv_mthd(dev, 0x9097, 0x0acc, 0x00000000);
  592. nv_mthd(dev, 0x9097, 0x0aec, 0x00000000);
  593. nv_mthd(dev, 0x9097, 0x0b0c, 0x00000000);
  594. nv_mthd(dev, 0x9097, 0x0b2c, 0x00000000);
  595. nv_mthd(dev, 0x9097, 0x0b4c, 0x00000000);
  596. nv_mthd(dev, 0x9097, 0x0b6c, 0x00000000);
  597. nv_mthd(dev, 0x9097, 0x0b8c, 0x00000000);
  598. nv_mthd(dev, 0x9097, 0x0bac, 0x00000000);
  599. nv_mthd(dev, 0x9097, 0x0bcc, 0x00000000);
  600. nv_mthd(dev, 0x9097, 0x0bec, 0x00000000);
  601. nv_mthd(dev, 0x9097, 0x0a10, 0x00000000);
  602. nv_mthd(dev, 0x9097, 0x0a30, 0x00000000);
  603. nv_mthd(dev, 0x9097, 0x0a50, 0x00000000);
  604. nv_mthd(dev, 0x9097, 0x0a70, 0x00000000);
  605. nv_mthd(dev, 0x9097, 0x0a90, 0x00000000);
  606. nv_mthd(dev, 0x9097, 0x0ab0, 0x00000000);
  607. nv_mthd(dev, 0x9097, 0x0ad0, 0x00000000);
  608. nv_mthd(dev, 0x9097, 0x0af0, 0x00000000);
  609. nv_mthd(dev, 0x9097, 0x0b10, 0x00000000);
  610. nv_mthd(dev, 0x9097, 0x0b30, 0x00000000);
  611. nv_mthd(dev, 0x9097, 0x0b50, 0x00000000);
  612. nv_mthd(dev, 0x9097, 0x0b70, 0x00000000);
  613. nv_mthd(dev, 0x9097, 0x0b90, 0x00000000);
  614. nv_mthd(dev, 0x9097, 0x0bb0, 0x00000000);
  615. nv_mthd(dev, 0x9097, 0x0bd0, 0x00000000);
  616. nv_mthd(dev, 0x9097, 0x0bf0, 0x00000000);
  617. nv_mthd(dev, 0x9097, 0x0a14, 0x00000000);
  618. nv_mthd(dev, 0x9097, 0x0a34, 0x00000000);
  619. nv_mthd(dev, 0x9097, 0x0a54, 0x00000000);
  620. nv_mthd(dev, 0x9097, 0x0a74, 0x00000000);
  621. nv_mthd(dev, 0x9097, 0x0a94, 0x00000000);
  622. nv_mthd(dev, 0x9097, 0x0ab4, 0x00000000);
  623. nv_mthd(dev, 0x9097, 0x0ad4, 0x00000000);
  624. nv_mthd(dev, 0x9097, 0x0af4, 0x00000000);
  625. nv_mthd(dev, 0x9097, 0x0b14, 0x00000000);
  626. nv_mthd(dev, 0x9097, 0x0b34, 0x00000000);
  627. nv_mthd(dev, 0x9097, 0x0b54, 0x00000000);
  628. nv_mthd(dev, 0x9097, 0x0b74, 0x00000000);
  629. nv_mthd(dev, 0x9097, 0x0b94, 0x00000000);
  630. nv_mthd(dev, 0x9097, 0x0bb4, 0x00000000);
  631. nv_mthd(dev, 0x9097, 0x0bd4, 0x00000000);
  632. nv_mthd(dev, 0x9097, 0x0bf4, 0x00000000);
  633. nv_mthd(dev, 0x9097, 0x0c00, 0x00000000);
  634. nv_mthd(dev, 0x9097, 0x0c10, 0x00000000);
  635. nv_mthd(dev, 0x9097, 0x0c20, 0x00000000);
  636. nv_mthd(dev, 0x9097, 0x0c30, 0x00000000);
  637. nv_mthd(dev, 0x9097, 0x0c40, 0x00000000);
  638. nv_mthd(dev, 0x9097, 0x0c50, 0x00000000);
  639. nv_mthd(dev, 0x9097, 0x0c60, 0x00000000);
  640. nv_mthd(dev, 0x9097, 0x0c70, 0x00000000);
  641. nv_mthd(dev, 0x9097, 0x0c80, 0x00000000);
  642. nv_mthd(dev, 0x9097, 0x0c90, 0x00000000);
  643. nv_mthd(dev, 0x9097, 0x0ca0, 0x00000000);
  644. nv_mthd(dev, 0x9097, 0x0cb0, 0x00000000);
  645. nv_mthd(dev, 0x9097, 0x0cc0, 0x00000000);
  646. nv_mthd(dev, 0x9097, 0x0cd0, 0x00000000);
  647. nv_mthd(dev, 0x9097, 0x0ce0, 0x00000000);
  648. nv_mthd(dev, 0x9097, 0x0cf0, 0x00000000);
  649. nv_mthd(dev, 0x9097, 0x0c04, 0x00000000);
  650. nv_mthd(dev, 0x9097, 0x0c14, 0x00000000);
  651. nv_mthd(dev, 0x9097, 0x0c24, 0x00000000);
  652. nv_mthd(dev, 0x9097, 0x0c34, 0x00000000);
  653. nv_mthd(dev, 0x9097, 0x0c44, 0x00000000);
  654. nv_mthd(dev, 0x9097, 0x0c54, 0x00000000);
  655. nv_mthd(dev, 0x9097, 0x0c64, 0x00000000);
  656. nv_mthd(dev, 0x9097, 0x0c74, 0x00000000);
  657. nv_mthd(dev, 0x9097, 0x0c84, 0x00000000);
  658. nv_mthd(dev, 0x9097, 0x0c94, 0x00000000);
  659. nv_mthd(dev, 0x9097, 0x0ca4, 0x00000000);
  660. nv_mthd(dev, 0x9097, 0x0cb4, 0x00000000);
  661. nv_mthd(dev, 0x9097, 0x0cc4, 0x00000000);
  662. nv_mthd(dev, 0x9097, 0x0cd4, 0x00000000);
  663. nv_mthd(dev, 0x9097, 0x0ce4, 0x00000000);
  664. nv_mthd(dev, 0x9097, 0x0cf4, 0x00000000);
  665. nv_mthd(dev, 0x9097, 0x0c08, 0x00000000);
  666. nv_mthd(dev, 0x9097, 0x0c18, 0x00000000);
  667. nv_mthd(dev, 0x9097, 0x0c28, 0x00000000);
  668. nv_mthd(dev, 0x9097, 0x0c38, 0x00000000);
  669. nv_mthd(dev, 0x9097, 0x0c48, 0x00000000);
  670. nv_mthd(dev, 0x9097, 0x0c58, 0x00000000);
  671. nv_mthd(dev, 0x9097, 0x0c68, 0x00000000);
  672. nv_mthd(dev, 0x9097, 0x0c78, 0x00000000);
  673. nv_mthd(dev, 0x9097, 0x0c88, 0x00000000);
  674. nv_mthd(dev, 0x9097, 0x0c98, 0x00000000);
  675. nv_mthd(dev, 0x9097, 0x0ca8, 0x00000000);
  676. nv_mthd(dev, 0x9097, 0x0cb8, 0x00000000);
  677. nv_mthd(dev, 0x9097, 0x0cc8, 0x00000000);
  678. nv_mthd(dev, 0x9097, 0x0cd8, 0x00000000);
  679. nv_mthd(dev, 0x9097, 0x0ce8, 0x00000000);
  680. nv_mthd(dev, 0x9097, 0x0cf8, 0x00000000);
  681. nv_mthd(dev, 0x9097, 0x0c0c, 0x3f800000);
  682. nv_mthd(dev, 0x9097, 0x0c1c, 0x3f800000);
  683. nv_mthd(dev, 0x9097, 0x0c2c, 0x3f800000);
  684. nv_mthd(dev, 0x9097, 0x0c3c, 0x3f800000);
  685. nv_mthd(dev, 0x9097, 0x0c4c, 0x3f800000);
  686. nv_mthd(dev, 0x9097, 0x0c5c, 0x3f800000);
  687. nv_mthd(dev, 0x9097, 0x0c6c, 0x3f800000);
  688. nv_mthd(dev, 0x9097, 0x0c7c, 0x3f800000);
  689. nv_mthd(dev, 0x9097, 0x0c8c, 0x3f800000);
  690. nv_mthd(dev, 0x9097, 0x0c9c, 0x3f800000);
  691. nv_mthd(dev, 0x9097, 0x0cac, 0x3f800000);
  692. nv_mthd(dev, 0x9097, 0x0cbc, 0x3f800000);
  693. nv_mthd(dev, 0x9097, 0x0ccc, 0x3f800000);
  694. nv_mthd(dev, 0x9097, 0x0cdc, 0x3f800000);
  695. nv_mthd(dev, 0x9097, 0x0cec, 0x3f800000);
  696. nv_mthd(dev, 0x9097, 0x0cfc, 0x3f800000);
  697. nv_mthd(dev, 0x9097, 0x0d00, 0xffff0000);
  698. nv_mthd(dev, 0x9097, 0x0d08, 0xffff0000);
  699. nv_mthd(dev, 0x9097, 0x0d10, 0xffff0000);
  700. nv_mthd(dev, 0x9097, 0x0d18, 0xffff0000);
  701. nv_mthd(dev, 0x9097, 0x0d20, 0xffff0000);
  702. nv_mthd(dev, 0x9097, 0x0d28, 0xffff0000);
  703. nv_mthd(dev, 0x9097, 0x0d30, 0xffff0000);
  704. nv_mthd(dev, 0x9097, 0x0d38, 0xffff0000);
  705. nv_mthd(dev, 0x9097, 0x0d04, 0xffff0000);
  706. nv_mthd(dev, 0x9097, 0x0d0c, 0xffff0000);
  707. nv_mthd(dev, 0x9097, 0x0d14, 0xffff0000);
  708. nv_mthd(dev, 0x9097, 0x0d1c, 0xffff0000);
  709. nv_mthd(dev, 0x9097, 0x0d24, 0xffff0000);
  710. nv_mthd(dev, 0x9097, 0x0d2c, 0xffff0000);
  711. nv_mthd(dev, 0x9097, 0x0d34, 0xffff0000);
  712. nv_mthd(dev, 0x9097, 0x0d3c, 0xffff0000);
  713. nv_mthd(dev, 0x9097, 0x0e00, 0x00000000);
  714. nv_mthd(dev, 0x9097, 0x0e10, 0x00000000);
  715. nv_mthd(dev, 0x9097, 0x0e20, 0x00000000);
  716. nv_mthd(dev, 0x9097, 0x0e30, 0x00000000);
  717. nv_mthd(dev, 0x9097, 0x0e40, 0x00000000);
  718. nv_mthd(dev, 0x9097, 0x0e50, 0x00000000);
  719. nv_mthd(dev, 0x9097, 0x0e60, 0x00000000);
  720. nv_mthd(dev, 0x9097, 0x0e70, 0x00000000);
  721. nv_mthd(dev, 0x9097, 0x0e80, 0x00000000);
  722. nv_mthd(dev, 0x9097, 0x0e90, 0x00000000);
  723. nv_mthd(dev, 0x9097, 0x0ea0, 0x00000000);
  724. nv_mthd(dev, 0x9097, 0x0eb0, 0x00000000);
  725. nv_mthd(dev, 0x9097, 0x0ec0, 0x00000000);
  726. nv_mthd(dev, 0x9097, 0x0ed0, 0x00000000);
  727. nv_mthd(dev, 0x9097, 0x0ee0, 0x00000000);
  728. nv_mthd(dev, 0x9097, 0x0ef0, 0x00000000);
  729. nv_mthd(dev, 0x9097, 0x0e04, 0xffff0000);
  730. nv_mthd(dev, 0x9097, 0x0e14, 0xffff0000);
  731. nv_mthd(dev, 0x9097, 0x0e24, 0xffff0000);
  732. nv_mthd(dev, 0x9097, 0x0e34, 0xffff0000);
  733. nv_mthd(dev, 0x9097, 0x0e44, 0xffff0000);
  734. nv_mthd(dev, 0x9097, 0x0e54, 0xffff0000);
  735. nv_mthd(dev, 0x9097, 0x0e64, 0xffff0000);
  736. nv_mthd(dev, 0x9097, 0x0e74, 0xffff0000);
  737. nv_mthd(dev, 0x9097, 0x0e84, 0xffff0000);
  738. nv_mthd(dev, 0x9097, 0x0e94, 0xffff0000);
  739. nv_mthd(dev, 0x9097, 0x0ea4, 0xffff0000);
  740. nv_mthd(dev, 0x9097, 0x0eb4, 0xffff0000);
  741. nv_mthd(dev, 0x9097, 0x0ec4, 0xffff0000);
  742. nv_mthd(dev, 0x9097, 0x0ed4, 0xffff0000);
  743. nv_mthd(dev, 0x9097, 0x0ee4, 0xffff0000);
  744. nv_mthd(dev, 0x9097, 0x0ef4, 0xffff0000);
  745. nv_mthd(dev, 0x9097, 0x0e08, 0xffff0000);
  746. nv_mthd(dev, 0x9097, 0x0e18, 0xffff0000);
  747. nv_mthd(dev, 0x9097, 0x0e28, 0xffff0000);
  748. nv_mthd(dev, 0x9097, 0x0e38, 0xffff0000);
  749. nv_mthd(dev, 0x9097, 0x0e48, 0xffff0000);
  750. nv_mthd(dev, 0x9097, 0x0e58, 0xffff0000);
  751. nv_mthd(dev, 0x9097, 0x0e68, 0xffff0000);
  752. nv_mthd(dev, 0x9097, 0x0e78, 0xffff0000);
  753. nv_mthd(dev, 0x9097, 0x0e88, 0xffff0000);
  754. nv_mthd(dev, 0x9097, 0x0e98, 0xffff0000);
  755. nv_mthd(dev, 0x9097, 0x0ea8, 0xffff0000);
  756. nv_mthd(dev, 0x9097, 0x0eb8, 0xffff0000);
  757. nv_mthd(dev, 0x9097, 0x0ec8, 0xffff0000);
  758. nv_mthd(dev, 0x9097, 0x0ed8, 0xffff0000);
  759. nv_mthd(dev, 0x9097, 0x0ee8, 0xffff0000);
  760. nv_mthd(dev, 0x9097, 0x0ef8, 0xffff0000);
  761. nv_mthd(dev, 0x9097, 0x0d40, 0x00000000);
  762. nv_mthd(dev, 0x9097, 0x0d48, 0x00000000);
  763. nv_mthd(dev, 0x9097, 0x0d50, 0x00000000);
  764. nv_mthd(dev, 0x9097, 0x0d58, 0x00000000);
  765. nv_mthd(dev, 0x9097, 0x0d44, 0x00000000);
  766. nv_mthd(dev, 0x9097, 0x0d4c, 0x00000000);
  767. nv_mthd(dev, 0x9097, 0x0d54, 0x00000000);
  768. nv_mthd(dev, 0x9097, 0x0d5c, 0x00000000);
  769. nv_mthd(dev, 0x9097, 0x1e00, 0x00000001);
  770. nv_mthd(dev, 0x9097, 0x1e20, 0x00000001);
  771. nv_mthd(dev, 0x9097, 0x1e40, 0x00000001);
  772. nv_mthd(dev, 0x9097, 0x1e60, 0x00000001);
  773. nv_mthd(dev, 0x9097, 0x1e80, 0x00000001);
  774. nv_mthd(dev, 0x9097, 0x1ea0, 0x00000001);
  775. nv_mthd(dev, 0x9097, 0x1ec0, 0x00000001);
  776. nv_mthd(dev, 0x9097, 0x1ee0, 0x00000001);
  777. nv_mthd(dev, 0x9097, 0x1e04, 0x00000001);
  778. nv_mthd(dev, 0x9097, 0x1e24, 0x00000001);
  779. nv_mthd(dev, 0x9097, 0x1e44, 0x00000001);
  780. nv_mthd(dev, 0x9097, 0x1e64, 0x00000001);
  781. nv_mthd(dev, 0x9097, 0x1e84, 0x00000001);
  782. nv_mthd(dev, 0x9097, 0x1ea4, 0x00000001);
  783. nv_mthd(dev, 0x9097, 0x1ec4, 0x00000001);
  784. nv_mthd(dev, 0x9097, 0x1ee4, 0x00000001);
  785. nv_mthd(dev, 0x9097, 0x1e08, 0x00000002);
  786. nv_mthd(dev, 0x9097, 0x1e28, 0x00000002);
  787. nv_mthd(dev, 0x9097, 0x1e48, 0x00000002);
  788. nv_mthd(dev, 0x9097, 0x1e68, 0x00000002);
  789. nv_mthd(dev, 0x9097, 0x1e88, 0x00000002);
  790. nv_mthd(dev, 0x9097, 0x1ea8, 0x00000002);
  791. nv_mthd(dev, 0x9097, 0x1ec8, 0x00000002);
  792. nv_mthd(dev, 0x9097, 0x1ee8, 0x00000002);
  793. nv_mthd(dev, 0x9097, 0x1e0c, 0x00000001);
  794. nv_mthd(dev, 0x9097, 0x1e2c, 0x00000001);
  795. nv_mthd(dev, 0x9097, 0x1e4c, 0x00000001);
  796. nv_mthd(dev, 0x9097, 0x1e6c, 0x00000001);
  797. nv_mthd(dev, 0x9097, 0x1e8c, 0x00000001);
  798. nv_mthd(dev, 0x9097, 0x1eac, 0x00000001);
  799. nv_mthd(dev, 0x9097, 0x1ecc, 0x00000001);
  800. nv_mthd(dev, 0x9097, 0x1eec, 0x00000001);
  801. nv_mthd(dev, 0x9097, 0x1e10, 0x00000001);
  802. nv_mthd(dev, 0x9097, 0x1e30, 0x00000001);
  803. nv_mthd(dev, 0x9097, 0x1e50, 0x00000001);
  804. nv_mthd(dev, 0x9097, 0x1e70, 0x00000001);
  805. nv_mthd(dev, 0x9097, 0x1e90, 0x00000001);
  806. nv_mthd(dev, 0x9097, 0x1eb0, 0x00000001);
  807. nv_mthd(dev, 0x9097, 0x1ed0, 0x00000001);
  808. nv_mthd(dev, 0x9097, 0x1ef0, 0x00000001);
  809. nv_mthd(dev, 0x9097, 0x1e14, 0x00000002);
  810. nv_mthd(dev, 0x9097, 0x1e34, 0x00000002);
  811. nv_mthd(dev, 0x9097, 0x1e54, 0x00000002);
  812. nv_mthd(dev, 0x9097, 0x1e74, 0x00000002);
  813. nv_mthd(dev, 0x9097, 0x1e94, 0x00000002);
  814. nv_mthd(dev, 0x9097, 0x1eb4, 0x00000002);
  815. nv_mthd(dev, 0x9097, 0x1ed4, 0x00000002);
  816. nv_mthd(dev, 0x9097, 0x1ef4, 0x00000002);
  817. nv_mthd(dev, 0x9097, 0x1e18, 0x00000001);
  818. nv_mthd(dev, 0x9097, 0x1e38, 0x00000001);
  819. nv_mthd(dev, 0x9097, 0x1e58, 0x00000001);
  820. nv_mthd(dev, 0x9097, 0x1e78, 0x00000001);
  821. nv_mthd(dev, 0x9097, 0x1e98, 0x00000001);
  822. nv_mthd(dev, 0x9097, 0x1eb8, 0x00000001);
  823. nv_mthd(dev, 0x9097, 0x1ed8, 0x00000001);
  824. nv_mthd(dev, 0x9097, 0x1ef8, 0x00000001);
  825. if (fermi == 0x9097) {
  826. for (mthd = 0x3400; mthd <= 0x35fc; mthd += 4)
  827. nv_mthd(dev, 0x9097, mthd, 0x00000000);
  828. }
  829. nv_mthd(dev, 0x9097, 0x030c, 0x00000001);
  830. nv_mthd(dev, 0x9097, 0x1944, 0x00000000);
  831. nv_mthd(dev, 0x9097, 0x1514, 0x00000000);
  832. nv_mthd(dev, 0x9097, 0x0d68, 0x0000ffff);
  833. nv_mthd(dev, 0x9097, 0x121c, 0x0fac6881);
  834. nv_mthd(dev, 0x9097, 0x0fac, 0x00000001);
  835. nv_mthd(dev, 0x9097, 0x1538, 0x00000001);
  836. nv_mthd(dev, 0x9097, 0x0fe0, 0x00000000);
  837. nv_mthd(dev, 0x9097, 0x0fe4, 0x00000000);
  838. nv_mthd(dev, 0x9097, 0x0fe8, 0x00000014);
  839. nv_mthd(dev, 0x9097, 0x0fec, 0x00000040);
  840. nv_mthd(dev, 0x9097, 0x0ff0, 0x00000000);
  841. nv_mthd(dev, 0x9097, 0x179c, 0x00000000);
  842. nv_mthd(dev, 0x9097, 0x1228, 0x00000400);
  843. nv_mthd(dev, 0x9097, 0x122c, 0x00000300);
  844. nv_mthd(dev, 0x9097, 0x1230, 0x00010001);
  845. nv_mthd(dev, 0x9097, 0x07f8, 0x00000000);
  846. nv_mthd(dev, 0x9097, 0x15b4, 0x00000001);
  847. nv_mthd(dev, 0x9097, 0x15cc, 0x00000000);
  848. nv_mthd(dev, 0x9097, 0x1534, 0x00000000);
  849. nv_mthd(dev, 0x9097, 0x0fb0, 0x00000000);
  850. nv_mthd(dev, 0x9097, 0x15d0, 0x00000000);
  851. nv_mthd(dev, 0x9097, 0x153c, 0x00000000);
  852. nv_mthd(dev, 0x9097, 0x16b4, 0x00000003);
  853. nv_mthd(dev, 0x9097, 0x0fbc, 0x0000ffff);
  854. nv_mthd(dev, 0x9097, 0x0fc0, 0x0000ffff);
  855. nv_mthd(dev, 0x9097, 0x0fc4, 0x0000ffff);
  856. nv_mthd(dev, 0x9097, 0x0fc8, 0x0000ffff);
  857. nv_mthd(dev, 0x9097, 0x0df8, 0x00000000);
  858. nv_mthd(dev, 0x9097, 0x0dfc, 0x00000000);
  859. nv_mthd(dev, 0x9097, 0x1948, 0x00000000);
  860. nv_mthd(dev, 0x9097, 0x1970, 0x00000001);
  861. nv_mthd(dev, 0x9097, 0x161c, 0x000009f0);
  862. nv_mthd(dev, 0x9097, 0x0dcc, 0x00000010);
  863. nv_mthd(dev, 0x9097, 0x163c, 0x00000000);
  864. nv_mthd(dev, 0x9097, 0x15e4, 0x00000000);
  865. nv_mthd(dev, 0x9097, 0x1160, 0x25e00040);
  866. nv_mthd(dev, 0x9097, 0x1164, 0x25e00040);
  867. nv_mthd(dev, 0x9097, 0x1168, 0x25e00040);
  868. nv_mthd(dev, 0x9097, 0x116c, 0x25e00040);
  869. nv_mthd(dev, 0x9097, 0x1170, 0x25e00040);
  870. nv_mthd(dev, 0x9097, 0x1174, 0x25e00040);
  871. nv_mthd(dev, 0x9097, 0x1178, 0x25e00040);
  872. nv_mthd(dev, 0x9097, 0x117c, 0x25e00040);
  873. nv_mthd(dev, 0x9097, 0x1180, 0x25e00040);
  874. nv_mthd(dev, 0x9097, 0x1184, 0x25e00040);
  875. nv_mthd(dev, 0x9097, 0x1188, 0x25e00040);
  876. nv_mthd(dev, 0x9097, 0x118c, 0x25e00040);
  877. nv_mthd(dev, 0x9097, 0x1190, 0x25e00040);
  878. nv_mthd(dev, 0x9097, 0x1194, 0x25e00040);
  879. nv_mthd(dev, 0x9097, 0x1198, 0x25e00040);
  880. nv_mthd(dev, 0x9097, 0x119c, 0x25e00040);
  881. nv_mthd(dev, 0x9097, 0x11a0, 0x25e00040);
  882. nv_mthd(dev, 0x9097, 0x11a4, 0x25e00040);
  883. nv_mthd(dev, 0x9097, 0x11a8, 0x25e00040);
  884. nv_mthd(dev, 0x9097, 0x11ac, 0x25e00040);
  885. nv_mthd(dev, 0x9097, 0x11b0, 0x25e00040);
  886. nv_mthd(dev, 0x9097, 0x11b4, 0x25e00040);
  887. nv_mthd(dev, 0x9097, 0x11b8, 0x25e00040);
  888. nv_mthd(dev, 0x9097, 0x11bc, 0x25e00040);
  889. nv_mthd(dev, 0x9097, 0x11c0, 0x25e00040);
  890. nv_mthd(dev, 0x9097, 0x11c4, 0x25e00040);
  891. nv_mthd(dev, 0x9097, 0x11c8, 0x25e00040);
  892. nv_mthd(dev, 0x9097, 0x11cc, 0x25e00040);
  893. nv_mthd(dev, 0x9097, 0x11d0, 0x25e00040);
  894. nv_mthd(dev, 0x9097, 0x11d4, 0x25e00040);
  895. nv_mthd(dev, 0x9097, 0x11d8, 0x25e00040);
  896. nv_mthd(dev, 0x9097, 0x11dc, 0x25e00040);
  897. nv_mthd(dev, 0x9097, 0x1880, 0x00000000);
  898. nv_mthd(dev, 0x9097, 0x1884, 0x00000000);
  899. nv_mthd(dev, 0x9097, 0x1888, 0x00000000);
  900. nv_mthd(dev, 0x9097, 0x188c, 0x00000000);
  901. nv_mthd(dev, 0x9097, 0x1890, 0x00000000);
  902. nv_mthd(dev, 0x9097, 0x1894, 0x00000000);
  903. nv_mthd(dev, 0x9097, 0x1898, 0x00000000);
  904. nv_mthd(dev, 0x9097, 0x189c, 0x00000000);
  905. nv_mthd(dev, 0x9097, 0x18a0, 0x00000000);
  906. nv_mthd(dev, 0x9097, 0x18a4, 0x00000000);
  907. nv_mthd(dev, 0x9097, 0x18a8, 0x00000000);
  908. nv_mthd(dev, 0x9097, 0x18ac, 0x00000000);
  909. nv_mthd(dev, 0x9097, 0x18b0, 0x00000000);
  910. nv_mthd(dev, 0x9097, 0x18b4, 0x00000000);
  911. nv_mthd(dev, 0x9097, 0x18b8, 0x00000000);
  912. nv_mthd(dev, 0x9097, 0x18bc, 0x00000000);
  913. nv_mthd(dev, 0x9097, 0x18c0, 0x00000000);
  914. nv_mthd(dev, 0x9097, 0x18c4, 0x00000000);
  915. nv_mthd(dev, 0x9097, 0x18c8, 0x00000000);
  916. nv_mthd(dev, 0x9097, 0x18cc, 0x00000000);
  917. nv_mthd(dev, 0x9097, 0x18d0, 0x00000000);
  918. nv_mthd(dev, 0x9097, 0x18d4, 0x00000000);
  919. nv_mthd(dev, 0x9097, 0x18d8, 0x00000000);
  920. nv_mthd(dev, 0x9097, 0x18dc, 0x00000000);
  921. nv_mthd(dev, 0x9097, 0x18e0, 0x00000000);
  922. nv_mthd(dev, 0x9097, 0x18e4, 0x00000000);
  923. nv_mthd(dev, 0x9097, 0x18e8, 0x00000000);
  924. nv_mthd(dev, 0x9097, 0x18ec, 0x00000000);
  925. nv_mthd(dev, 0x9097, 0x18f0, 0x00000000);
  926. nv_mthd(dev, 0x9097, 0x18f4, 0x00000000);
  927. nv_mthd(dev, 0x9097, 0x18f8, 0x00000000);
  928. nv_mthd(dev, 0x9097, 0x18fc, 0x00000000);
  929. nv_mthd(dev, 0x9097, 0x0f84, 0x00000000);
  930. nv_mthd(dev, 0x9097, 0x0f88, 0x00000000);
  931. nv_mthd(dev, 0x9097, 0x17c8, 0x00000000);
  932. nv_mthd(dev, 0x9097, 0x17cc, 0x00000000);
  933. nv_mthd(dev, 0x9097, 0x17d0, 0x000000ff);
  934. nv_mthd(dev, 0x9097, 0x17d4, 0xffffffff);
  935. nv_mthd(dev, 0x9097, 0x17d8, 0x00000002);
  936. nv_mthd(dev, 0x9097, 0x17dc, 0x00000000);
  937. nv_mthd(dev, 0x9097, 0x15f4, 0x00000000);
  938. nv_mthd(dev, 0x9097, 0x15f8, 0x00000000);
  939. nv_mthd(dev, 0x9097, 0x1434, 0x00000000);
  940. nv_mthd(dev, 0x9097, 0x1438, 0x00000000);
  941. nv_mthd(dev, 0x9097, 0x0d74, 0x00000000);
  942. nv_mthd(dev, 0x9097, 0x0dec, 0x00000001);
  943. nv_mthd(dev, 0x9097, 0x13a4, 0x00000000);
  944. nv_mthd(dev, 0x9097, 0x1318, 0x00000001);
  945. nv_mthd(dev, 0x9097, 0x1644, 0x00000000);
  946. nv_mthd(dev, 0x9097, 0x0748, 0x00000000);
  947. nv_mthd(dev, 0x9097, 0x0de8, 0x00000000);
  948. nv_mthd(dev, 0x9097, 0x1648, 0x00000000);
  949. nv_mthd(dev, 0x9097, 0x12a4, 0x00000000);
  950. nv_mthd(dev, 0x9097, 0x1120, 0x00000000);
  951. nv_mthd(dev, 0x9097, 0x1124, 0x00000000);
  952. nv_mthd(dev, 0x9097, 0x1128, 0x00000000);
  953. nv_mthd(dev, 0x9097, 0x112c, 0x00000000);
  954. nv_mthd(dev, 0x9097, 0x1118, 0x00000000);
  955. nv_mthd(dev, 0x9097, 0x164c, 0x00000000);
  956. nv_mthd(dev, 0x9097, 0x1658, 0x00000000);
  957. nv_mthd(dev, 0x9097, 0x1910, 0x00000290);
  958. nv_mthd(dev, 0x9097, 0x1518, 0x00000000);
  959. nv_mthd(dev, 0x9097, 0x165c, 0x00000001);
  960. nv_mthd(dev, 0x9097, 0x1520, 0x00000000);
  961. nv_mthd(dev, 0x9097, 0x1604, 0x00000000);
  962. nv_mthd(dev, 0x9097, 0x1570, 0x00000000);
  963. nv_mthd(dev, 0x9097, 0x13b0, 0x3f800000);
  964. nv_mthd(dev, 0x9097, 0x13b4, 0x3f800000);
  965. nv_mthd(dev, 0x9097, 0x020c, 0x00000000);
  966. nv_mthd(dev, 0x9097, 0x1670, 0x30201000);
  967. nv_mthd(dev, 0x9097, 0x1674, 0x70605040);
  968. nv_mthd(dev, 0x9097, 0x1678, 0xb8a89888);
  969. nv_mthd(dev, 0x9097, 0x167c, 0xf8e8d8c8);
  970. nv_mthd(dev, 0x9097, 0x166c, 0x00000000);
  971. nv_mthd(dev, 0x9097, 0x1680, 0x00ffff00);
  972. nv_mthd(dev, 0x9097, 0x12d0, 0x00000003);
  973. nv_mthd(dev, 0x9097, 0x12d4, 0x00000002);
  974. nv_mthd(dev, 0x9097, 0x1684, 0x00000000);
  975. nv_mthd(dev, 0x9097, 0x1688, 0x00000000);
  976. nv_mthd(dev, 0x9097, 0x0dac, 0x00001b02);
  977. nv_mthd(dev, 0x9097, 0x0db0, 0x00001b02);
  978. nv_mthd(dev, 0x9097, 0x0db4, 0x00000000);
  979. nv_mthd(dev, 0x9097, 0x168c, 0x00000000);
  980. nv_mthd(dev, 0x9097, 0x15bc, 0x00000000);
  981. nv_mthd(dev, 0x9097, 0x156c, 0x00000000);
  982. nv_mthd(dev, 0x9097, 0x187c, 0x00000000);
  983. nv_mthd(dev, 0x9097, 0x1110, 0x00000001);
  984. nv_mthd(dev, 0x9097, 0x0dc0, 0x00000000);
  985. nv_mthd(dev, 0x9097, 0x0dc4, 0x00000000);
  986. nv_mthd(dev, 0x9097, 0x0dc8, 0x00000000);
  987. nv_mthd(dev, 0x9097, 0x1234, 0x00000000);
  988. nv_mthd(dev, 0x9097, 0x1690, 0x00000000);
  989. nv_mthd(dev, 0x9097, 0x12ac, 0x00000001);
  990. nv_mthd(dev, 0x9097, 0x02c4, 0x00000000);
  991. nv_mthd(dev, 0x9097, 0x0790, 0x00000000);
  992. nv_mthd(dev, 0x9097, 0x0794, 0x00000000);
  993. nv_mthd(dev, 0x9097, 0x0798, 0x00000000);
  994. nv_mthd(dev, 0x9097, 0x079c, 0x00000000);
  995. nv_mthd(dev, 0x9097, 0x07a0, 0x00000000);
  996. nv_mthd(dev, 0x9097, 0x077c, 0x00000000);
  997. nv_mthd(dev, 0x9097, 0x1000, 0x00000010);
  998. nv_mthd(dev, 0x9097, 0x10fc, 0x00000000);
  999. nv_mthd(dev, 0x9097, 0x1290, 0x00000000);
  1000. nv_mthd(dev, 0x9097, 0x0218, 0x00000010);
  1001. nv_mthd(dev, 0x9097, 0x12d8, 0x00000000);
  1002. nv_mthd(dev, 0x9097, 0x12dc, 0x00000010);
  1003. nv_mthd(dev, 0x9097, 0x0d94, 0x00000001);
  1004. nv_mthd(dev, 0x9097, 0x155c, 0x00000000);
  1005. nv_mthd(dev, 0x9097, 0x1560, 0x00000000);
  1006. nv_mthd(dev, 0x9097, 0x1564, 0x00001fff);
  1007. nv_mthd(dev, 0x9097, 0x1574, 0x00000000);
  1008. nv_mthd(dev, 0x9097, 0x1578, 0x00000000);
  1009. nv_mthd(dev, 0x9097, 0x157c, 0x003fffff);
  1010. nv_mthd(dev, 0x9097, 0x1354, 0x00000000);
  1011. nv_mthd(dev, 0x9097, 0x1664, 0x00000000);
  1012. nv_mthd(dev, 0x9097, 0x1610, 0x00000012);
  1013. nv_mthd(dev, 0x9097, 0x1608, 0x00000000);
  1014. nv_mthd(dev, 0x9097, 0x160c, 0x00000000);
  1015. nv_mthd(dev, 0x9097, 0x162c, 0x00000003);
  1016. nv_mthd(dev, 0x9097, 0x0210, 0x00000000);
  1017. nv_mthd(dev, 0x9097, 0x0320, 0x00000000);
  1018. nv_mthd(dev, 0x9097, 0x0324, 0x3f800000);
  1019. nv_mthd(dev, 0x9097, 0x0328, 0x3f800000);
  1020. nv_mthd(dev, 0x9097, 0x032c, 0x3f800000);
  1021. nv_mthd(dev, 0x9097, 0x0330, 0x3f800000);
  1022. nv_mthd(dev, 0x9097, 0x0334, 0x3f800000);
  1023. nv_mthd(dev, 0x9097, 0x0338, 0x3f800000);
  1024. nv_mthd(dev, 0x9097, 0x0750, 0x00000000);
  1025. nv_mthd(dev, 0x9097, 0x0760, 0x39291909);
  1026. nv_mthd(dev, 0x9097, 0x0764, 0x79695949);
  1027. nv_mthd(dev, 0x9097, 0x0768, 0xb9a99989);
  1028. nv_mthd(dev, 0x9097, 0x076c, 0xf9e9d9c9);
  1029. nv_mthd(dev, 0x9097, 0x0770, 0x30201000);
  1030. nv_mthd(dev, 0x9097, 0x0774, 0x70605040);
  1031. nv_mthd(dev, 0x9097, 0x0778, 0x00009080);
  1032. nv_mthd(dev, 0x9097, 0x0780, 0x39291909);
  1033. nv_mthd(dev, 0x9097, 0x0784, 0x79695949);
  1034. nv_mthd(dev, 0x9097, 0x0788, 0xb9a99989);
  1035. nv_mthd(dev, 0x9097, 0x078c, 0xf9e9d9c9);
  1036. nv_mthd(dev, 0x9097, 0x07d0, 0x30201000);
  1037. nv_mthd(dev, 0x9097, 0x07d4, 0x70605040);
  1038. nv_mthd(dev, 0x9097, 0x07d8, 0x00009080);
  1039. nv_mthd(dev, 0x9097, 0x037c, 0x00000001);
  1040. nv_mthd(dev, 0x9097, 0x0740, 0x00000000);
  1041. nv_mthd(dev, 0x9097, 0x0744, 0x00000000);
  1042. nv_mthd(dev, 0x9097, 0x2600, 0x00000000);
  1043. nv_mthd(dev, 0x9097, 0x1918, 0x00000000);
  1044. nv_mthd(dev, 0x9097, 0x191c, 0x00000900);
  1045. nv_mthd(dev, 0x9097, 0x1920, 0x00000405);
  1046. nv_mthd(dev, 0x9097, 0x1308, 0x00000001);
  1047. nv_mthd(dev, 0x9097, 0x1924, 0x00000000);
  1048. nv_mthd(dev, 0x9097, 0x13ac, 0x00000000);
  1049. nv_mthd(dev, 0x9097, 0x192c, 0x00000001);
  1050. nv_mthd(dev, 0x9097, 0x193c, 0x00002c1c);
  1051. nv_mthd(dev, 0x9097, 0x0d7c, 0x00000000);
  1052. nv_mthd(dev, 0x9097, 0x0f8c, 0x00000000);
  1053. nv_mthd(dev, 0x9097, 0x02c0, 0x00000001);
  1054. nv_mthd(dev, 0x9097, 0x1510, 0x00000000);
  1055. nv_mthd(dev, 0x9097, 0x1940, 0x00000000);
  1056. nv_mthd(dev, 0x9097, 0x0ff4, 0x00000000);
  1057. nv_mthd(dev, 0x9097, 0x0ff8, 0x00000000);
  1058. nv_mthd(dev, 0x9097, 0x194c, 0x00000000);
  1059. nv_mthd(dev, 0x9097, 0x1950, 0x00000000);
  1060. nv_mthd(dev, 0x9097, 0x1968, 0x00000000);
  1061. nv_mthd(dev, 0x9097, 0x1590, 0x0000003f);
  1062. nv_mthd(dev, 0x9097, 0x07e8, 0x00000000);
  1063. nv_mthd(dev, 0x9097, 0x07ec, 0x00000000);
  1064. nv_mthd(dev, 0x9097, 0x07f0, 0x00000000);
  1065. nv_mthd(dev, 0x9097, 0x07f4, 0x00000000);
  1066. nv_mthd(dev, 0x9097, 0x196c, 0x00000011);
  1067. nv_mthd(dev, 0x9097, 0x197c, 0x00000000);
  1068. nv_mthd(dev, 0x9097, 0x0fcc, 0x00000000);
  1069. nv_mthd(dev, 0x9097, 0x0fd0, 0x00000000);
  1070. nv_mthd(dev, 0x9097, 0x02d8, 0x00000040);
  1071. nv_mthd(dev, 0x9097, 0x1980, 0x00000080);
  1072. nv_mthd(dev, 0x9097, 0x1504, 0x00000080);
  1073. nv_mthd(dev, 0x9097, 0x1984, 0x00000000);
  1074. nv_mthd(dev, 0x9097, 0x0300, 0x00000001);
  1075. nv_mthd(dev, 0x9097, 0x13a8, 0x00000000);
  1076. nv_mthd(dev, 0x9097, 0x12ec, 0x00000000);
  1077. nv_mthd(dev, 0x9097, 0x1310, 0x00000000);
  1078. nv_mthd(dev, 0x9097, 0x1314, 0x00000001);
  1079. nv_mthd(dev, 0x9097, 0x1380, 0x00000000);
  1080. nv_mthd(dev, 0x9097, 0x1384, 0x00000001);
  1081. nv_mthd(dev, 0x9097, 0x1388, 0x00000001);
  1082. nv_mthd(dev, 0x9097, 0x138c, 0x00000001);
  1083. nv_mthd(dev, 0x9097, 0x1390, 0x00000001);
  1084. nv_mthd(dev, 0x9097, 0x1394, 0x00000000);
  1085. nv_mthd(dev, 0x9097, 0x139c, 0x00000000);
  1086. nv_mthd(dev, 0x9097, 0x1398, 0x00000000);
  1087. nv_mthd(dev, 0x9097, 0x1594, 0x00000000);
  1088. nv_mthd(dev, 0x9097, 0x1598, 0x00000001);
  1089. nv_mthd(dev, 0x9097, 0x159c, 0x00000001);
  1090. nv_mthd(dev, 0x9097, 0x15a0, 0x00000001);
  1091. nv_mthd(dev, 0x9097, 0x15a4, 0x00000001);
  1092. nv_mthd(dev, 0x9097, 0x0f54, 0x00000000);
  1093. nv_mthd(dev, 0x9097, 0x0f58, 0x00000000);
  1094. nv_mthd(dev, 0x9097, 0x0f5c, 0x00000000);
  1095. nv_mthd(dev, 0x9097, 0x19bc, 0x00000000);
  1096. nv_mthd(dev, 0x9097, 0x0f9c, 0x00000000);
  1097. nv_mthd(dev, 0x9097, 0x0fa0, 0x00000000);
  1098. nv_mthd(dev, 0x9097, 0x12cc, 0x00000000);
  1099. nv_mthd(dev, 0x9097, 0x12e8, 0x00000000);
  1100. nv_mthd(dev, 0x9097, 0x130c, 0x00000001);
  1101. nv_mthd(dev, 0x9097, 0x1360, 0x00000000);
  1102. nv_mthd(dev, 0x9097, 0x1364, 0x00000000);
  1103. nv_mthd(dev, 0x9097, 0x1368, 0x00000000);
  1104. nv_mthd(dev, 0x9097, 0x136c, 0x00000000);
  1105. nv_mthd(dev, 0x9097, 0x1370, 0x00000000);
  1106. nv_mthd(dev, 0x9097, 0x1374, 0x00000000);
  1107. nv_mthd(dev, 0x9097, 0x1378, 0x00000000);
  1108. nv_mthd(dev, 0x9097, 0x137c, 0x00000000);
  1109. nv_mthd(dev, 0x9097, 0x133c, 0x00000001);
  1110. nv_mthd(dev, 0x9097, 0x1340, 0x00000001);
  1111. nv_mthd(dev, 0x9097, 0x1344, 0x00000002);
  1112. nv_mthd(dev, 0x9097, 0x1348, 0x00000001);
  1113. nv_mthd(dev, 0x9097, 0x134c, 0x00000001);
  1114. nv_mthd(dev, 0x9097, 0x1350, 0x00000002);
  1115. nv_mthd(dev, 0x9097, 0x1358, 0x00000001);
  1116. nv_mthd(dev, 0x9097, 0x12e4, 0x00000000);
  1117. nv_mthd(dev, 0x9097, 0x131c, 0x00000000);
  1118. nv_mthd(dev, 0x9097, 0x1320, 0x00000000);
  1119. nv_mthd(dev, 0x9097, 0x1324, 0x00000000);
  1120. nv_mthd(dev, 0x9097, 0x1328, 0x00000000);
  1121. nv_mthd(dev, 0x9097, 0x19c0, 0x00000000);
  1122. nv_mthd(dev, 0x9097, 0x1140, 0x00000000);
  1123. nv_mthd(dev, 0x9097, 0x19c4, 0x00000000);
  1124. nv_mthd(dev, 0x9097, 0x19c8, 0x00001500);
  1125. nv_mthd(dev, 0x9097, 0x135c, 0x00000000);
  1126. nv_mthd(dev, 0x9097, 0x0f90, 0x00000000);
  1127. nv_mthd(dev, 0x9097, 0x19e0, 0x00000001);
  1128. nv_mthd(dev, 0x9097, 0x19e4, 0x00000001);
  1129. nv_mthd(dev, 0x9097, 0x19e8, 0x00000001);
  1130. nv_mthd(dev, 0x9097, 0x19ec, 0x00000001);
  1131. nv_mthd(dev, 0x9097, 0x19f0, 0x00000001);
  1132. nv_mthd(dev, 0x9097, 0x19f4, 0x00000001);
  1133. nv_mthd(dev, 0x9097, 0x19f8, 0x00000001);
  1134. nv_mthd(dev, 0x9097, 0x19fc, 0x00000001);
  1135. nv_mthd(dev, 0x9097, 0x19cc, 0x00000001);
  1136. nv_mthd(dev, 0x9097, 0x15b8, 0x00000000);
  1137. nv_mthd(dev, 0x9097, 0x1a00, 0x00001111);
  1138. nv_mthd(dev, 0x9097, 0x1a04, 0x00000000);
  1139. nv_mthd(dev, 0x9097, 0x1a08, 0x00000000);
  1140. nv_mthd(dev, 0x9097, 0x1a0c, 0x00000000);
  1141. nv_mthd(dev, 0x9097, 0x1a10, 0x00000000);
  1142. nv_mthd(dev, 0x9097, 0x1a14, 0x00000000);
  1143. nv_mthd(dev, 0x9097, 0x1a18, 0x00000000);
  1144. nv_mthd(dev, 0x9097, 0x1a1c, 0x00000000);
  1145. nv_mthd(dev, 0x9097, 0x0d6c, 0xffff0000);
  1146. nv_mthd(dev, 0x9097, 0x0d70, 0xffff0000);
  1147. nv_mthd(dev, 0x9097, 0x10f8, 0x00001010);
  1148. nv_mthd(dev, 0x9097, 0x0d80, 0x00000000);
  1149. nv_mthd(dev, 0x9097, 0x0d84, 0x00000000);
  1150. nv_mthd(dev, 0x9097, 0x0d88, 0x00000000);
  1151. nv_mthd(dev, 0x9097, 0x0d8c, 0x00000000);
  1152. nv_mthd(dev, 0x9097, 0x0d90, 0x00000000);
  1153. nv_mthd(dev, 0x9097, 0x0da0, 0x00000000);
  1154. nv_mthd(dev, 0x9097, 0x1508, 0x80000000);
  1155. nv_mthd(dev, 0x9097, 0x150c, 0x40000000);
  1156. nv_mthd(dev, 0x9097, 0x1668, 0x00000000);
  1157. nv_mthd(dev, 0x9097, 0x0318, 0x00000008);
  1158. nv_mthd(dev, 0x9097, 0x031c, 0x00000008);
  1159. nv_mthd(dev, 0x9097, 0x0d9c, 0x00000001);
  1160. nv_mthd(dev, 0x9097, 0x07dc, 0x00000000);
  1161. nv_mthd(dev, 0x9097, 0x074c, 0x00000055);
  1162. nv_mthd(dev, 0x9097, 0x1420, 0x00000003);
  1163. nv_mthd(dev, 0x9097, 0x17bc, 0x00000000);
  1164. nv_mthd(dev, 0x9097, 0x17c0, 0x00000000);
  1165. nv_mthd(dev, 0x9097, 0x17c4, 0x00000001);
  1166. nv_mthd(dev, 0x9097, 0x1008, 0x00000008);
  1167. nv_mthd(dev, 0x9097, 0x100c, 0x00000040);
  1168. nv_mthd(dev, 0x9097, 0x1010, 0x0000012c);
  1169. nv_mthd(dev, 0x9097, 0x0d60, 0x00000040);
  1170. nv_mthd(dev, 0x9097, 0x075c, 0x00000003);
  1171. nv_mthd(dev, 0x9097, 0x1018, 0x00000020);
  1172. nv_mthd(dev, 0x9097, 0x101c, 0x00000001);
  1173. nv_mthd(dev, 0x9097, 0x1020, 0x00000020);
  1174. nv_mthd(dev, 0x9097, 0x1024, 0x00000001);
  1175. nv_mthd(dev, 0x9097, 0x1444, 0x00000000);
  1176. nv_mthd(dev, 0x9097, 0x1448, 0x00000000);
  1177. nv_mthd(dev, 0x9097, 0x144c, 0x00000000);
  1178. nv_mthd(dev, 0x9097, 0x0360, 0x20164010);
  1179. nv_mthd(dev, 0x9097, 0x0364, 0x00000020);
  1180. nv_mthd(dev, 0x9097, 0x0368, 0x00000000);
  1181. nv_mthd(dev, 0x9097, 0x0de4, 0x00000000);
  1182. nv_mthd(dev, 0x9097, 0x0204, 0x00000006);
  1183. nv_mthd(dev, 0x9097, 0x0208, 0x00000000);
  1184. nv_mthd(dev, 0x9097, 0x02cc, 0x003fffff);
  1185. nv_mthd(dev, 0x9097, 0x02d0, 0x00000c48);
  1186. nv_mthd(dev, 0x9097, 0x1220, 0x00000005);
  1187. nv_mthd(dev, 0x9097, 0x0fdc, 0x00000000);
  1188. nv_mthd(dev, 0x9097, 0x0f98, 0x00300008);
  1189. nv_mthd(dev, 0x9097, 0x1284, 0x04000080);
  1190. nv_mthd(dev, 0x9097, 0x1450, 0x00300008);
  1191. nv_mthd(dev, 0x9097, 0x1454, 0x04000080);
  1192. nv_mthd(dev, 0x9097, 0x0214, 0x00000000);
  1193. /* in trace, right after 0x90c0, not here */
  1194. nv_mthd(dev, 0x9097, 0x3410, 0x80002006);
  1195. }
  1196. static void
  1197. nvc0_grctx_generate_9197(struct drm_device *dev)
  1198. {
  1199. u32 fermi = nvc0_graph_class(dev);
  1200. u32 mthd;
  1201. if (fermi == 0x9197) {
  1202. for (mthd = 0x3400; mthd <= 0x35fc; mthd += 4)
  1203. nv_mthd(dev, 0x9197, mthd, 0x00000000);
  1204. }
  1205. nv_mthd(dev, 0x9197, 0x02e4, 0x0000b001);
  1206. }
  1207. static void
  1208. nvc0_grctx_generate_9297(struct drm_device *dev)
  1209. {
  1210. u32 fermi = nvc0_graph_class(dev);
  1211. u32 mthd;
  1212. if (fermi == 0x9297) {
  1213. for (mthd = 0x3400; mthd <= 0x35fc; mthd += 4)
  1214. nv_mthd(dev, 0x9297, mthd, 0x00000000);
  1215. }
  1216. nv_mthd(dev, 0x9297, 0x036c, 0x00000000);
  1217. nv_mthd(dev, 0x9297, 0x0370, 0x00000000);
  1218. nv_mthd(dev, 0x9297, 0x07a4, 0x00000000);
  1219. nv_mthd(dev, 0x9297, 0x07a8, 0x00000000);
  1220. nv_mthd(dev, 0x9297, 0x0374, 0x00000000);
  1221. nv_mthd(dev, 0x9297, 0x0378, 0x00000020);
  1222. }
  1223. static void
  1224. nvc0_grctx_generate_902d(struct drm_device *dev)
  1225. {
  1226. nv_mthd(dev, 0x902d, 0x0200, 0x000000cf);
  1227. nv_mthd(dev, 0x902d, 0x0204, 0x00000001);
  1228. nv_mthd(dev, 0x902d, 0x0208, 0x00000020);
  1229. nv_mthd(dev, 0x902d, 0x020c, 0x00000001);
  1230. nv_mthd(dev, 0x902d, 0x0210, 0x00000000);
  1231. nv_mthd(dev, 0x902d, 0x0214, 0x00000080);
  1232. nv_mthd(dev, 0x902d, 0x0218, 0x00000100);
  1233. nv_mthd(dev, 0x902d, 0x021c, 0x00000100);
  1234. nv_mthd(dev, 0x902d, 0x0220, 0x00000000);
  1235. nv_mthd(dev, 0x902d, 0x0224, 0x00000000);
  1236. nv_mthd(dev, 0x902d, 0x0230, 0x000000cf);
  1237. nv_mthd(dev, 0x902d, 0x0234, 0x00000001);
  1238. nv_mthd(dev, 0x902d, 0x0238, 0x00000020);
  1239. nv_mthd(dev, 0x902d, 0x023c, 0x00000001);
  1240. nv_mthd(dev, 0x902d, 0x0244, 0x00000080);
  1241. nv_mthd(dev, 0x902d, 0x0248, 0x00000100);
  1242. nv_mthd(dev, 0x902d, 0x024c, 0x00000100);
  1243. }
  1244. static void
  1245. nvc0_grctx_generate_9039(struct drm_device *dev)
  1246. {
  1247. nv_mthd(dev, 0x9039, 0x030c, 0x00000000);
  1248. nv_mthd(dev, 0x9039, 0x0310, 0x00000000);
  1249. nv_mthd(dev, 0x9039, 0x0314, 0x00000000);
  1250. nv_mthd(dev, 0x9039, 0x0320, 0x00000000);
  1251. nv_mthd(dev, 0x9039, 0x0238, 0x00000000);
  1252. nv_mthd(dev, 0x9039, 0x023c, 0x00000000);
  1253. nv_mthd(dev, 0x9039, 0x0318, 0x00000000);
  1254. nv_mthd(dev, 0x9039, 0x031c, 0x00000000);
  1255. }
  1256. static void
  1257. nvc0_grctx_generate_90c0(struct drm_device *dev)
  1258. {
  1259. struct drm_nouveau_private *dev_priv = dev->dev_private;
  1260. int i;
  1261. for (i = 0; dev_priv->chipset == 0xd9 && i < 4; i++) {
  1262. nv_mthd(dev, 0x90c0, 0x2700 + (i * 0x40), 0x00000000);
  1263. nv_mthd(dev, 0x90c0, 0x2720 + (i * 0x40), 0x00000000);
  1264. nv_mthd(dev, 0x90c0, 0x2704 + (i * 0x40), 0x00000000);
  1265. nv_mthd(dev, 0x90c0, 0x2724 + (i * 0x40), 0x00000000);
  1266. nv_mthd(dev, 0x90c0, 0x2708 + (i * 0x40), 0x00000000);
  1267. nv_mthd(dev, 0x90c0, 0x2728 + (i * 0x40), 0x00000000);
  1268. }
  1269. nv_mthd(dev, 0x90c0, 0x270c, 0x00000000);
  1270. nv_mthd(dev, 0x90c0, 0x272c, 0x00000000);
  1271. nv_mthd(dev, 0x90c0, 0x274c, 0x00000000);
  1272. nv_mthd(dev, 0x90c0, 0x276c, 0x00000000);
  1273. nv_mthd(dev, 0x90c0, 0x278c, 0x00000000);
  1274. nv_mthd(dev, 0x90c0, 0x27ac, 0x00000000);
  1275. nv_mthd(dev, 0x90c0, 0x27cc, 0x00000000);
  1276. nv_mthd(dev, 0x90c0, 0x27ec, 0x00000000);
  1277. for (i = 0; dev_priv->chipset == 0xd9 && i < 4; i++) {
  1278. nv_mthd(dev, 0x90c0, 0x2710 + (i * 0x40), 0x00014000);
  1279. nv_mthd(dev, 0x90c0, 0x2730 + (i * 0x40), 0x00014000);
  1280. nv_mthd(dev, 0x90c0, 0x2714 + (i * 0x40), 0x00000040);
  1281. nv_mthd(dev, 0x90c0, 0x2734 + (i * 0x40), 0x00000040);
  1282. }
  1283. nv_mthd(dev, 0x90c0, 0x030c, 0x00000001);
  1284. nv_mthd(dev, 0x90c0, 0x1944, 0x00000000);
  1285. nv_mthd(dev, 0x90c0, 0x0758, 0x00000100);
  1286. nv_mthd(dev, 0x90c0, 0x02c4, 0x00000000);
  1287. nv_mthd(dev, 0x90c0, 0x0790, 0x00000000);
  1288. nv_mthd(dev, 0x90c0, 0x0794, 0x00000000);
  1289. nv_mthd(dev, 0x90c0, 0x0798, 0x00000000);
  1290. nv_mthd(dev, 0x90c0, 0x079c, 0x00000000);
  1291. nv_mthd(dev, 0x90c0, 0x07a0, 0x00000000);
  1292. nv_mthd(dev, 0x90c0, 0x077c, 0x00000000);
  1293. nv_mthd(dev, 0x90c0, 0x0204, 0x00000000);
  1294. nv_mthd(dev, 0x90c0, 0x0208, 0x00000000);
  1295. nv_mthd(dev, 0x90c0, 0x020c, 0x00000000);
  1296. nv_mthd(dev, 0x90c0, 0x0214, 0x00000000);
  1297. nv_mthd(dev, 0x90c0, 0x024c, 0x00000000);
  1298. nv_mthd(dev, 0x90c0, 0x0d94, 0x00000001);
  1299. nv_mthd(dev, 0x90c0, 0x1608, 0x00000000);
  1300. nv_mthd(dev, 0x90c0, 0x160c, 0x00000000);
  1301. nv_mthd(dev, 0x90c0, 0x1664, 0x00000000);
  1302. }
  1303. static void
  1304. nvc0_grctx_generate_dispatch(struct drm_device *dev)
  1305. {
  1306. int i;
  1307. nv_wr32(dev, 0x404004, 0x00000000);
  1308. nv_wr32(dev, 0x404008, 0x00000000);
  1309. nv_wr32(dev, 0x40400c, 0x00000000);
  1310. nv_wr32(dev, 0x404010, 0x00000000);
  1311. nv_wr32(dev, 0x404014, 0x00000000);
  1312. nv_wr32(dev, 0x404018, 0x00000000);
  1313. nv_wr32(dev, 0x40401c, 0x00000000);
  1314. nv_wr32(dev, 0x404020, 0x00000000);
  1315. nv_wr32(dev, 0x404024, 0x00000000);
  1316. nv_wr32(dev, 0x404028, 0x00000000);
  1317. nv_wr32(dev, 0x40402c, 0x00000000);
  1318. nv_wr32(dev, 0x404044, 0x00000000);
  1319. nv_wr32(dev, 0x404094, 0x00000000);
  1320. nv_wr32(dev, 0x404098, 0x00000000);
  1321. nv_wr32(dev, 0x40409c, 0x00000000);
  1322. nv_wr32(dev, 0x4040a0, 0x00000000);
  1323. nv_wr32(dev, 0x4040a4, 0x00000000);
  1324. nv_wr32(dev, 0x4040a8, 0x00000000);
  1325. nv_wr32(dev, 0x4040ac, 0x00000000);
  1326. nv_wr32(dev, 0x4040b0, 0x00000000);
  1327. nv_wr32(dev, 0x4040b4, 0x00000000);
  1328. nv_wr32(dev, 0x4040b8, 0x00000000);
  1329. nv_wr32(dev, 0x4040bc, 0x00000000);
  1330. nv_wr32(dev, 0x4040c0, 0x00000000);
  1331. nv_wr32(dev, 0x4040c4, 0x00000000);
  1332. nv_wr32(dev, 0x4040c8, 0xf0000087);
  1333. nv_wr32(dev, 0x4040d4, 0x00000000);
  1334. nv_wr32(dev, 0x4040d8, 0x00000000);
  1335. nv_wr32(dev, 0x4040dc, 0x00000000);
  1336. nv_wr32(dev, 0x4040e0, 0x00000000);
  1337. nv_wr32(dev, 0x4040e4, 0x00000000);
  1338. nv_wr32(dev, 0x4040e8, 0x00001000);
  1339. nv_wr32(dev, 0x4040f8, 0x00000000);
  1340. nv_wr32(dev, 0x404130, 0x00000000);
  1341. nv_wr32(dev, 0x404134, 0x00000000);
  1342. nv_wr32(dev, 0x404138, 0x20000040);
  1343. nv_wr32(dev, 0x404150, 0x0000002e);
  1344. nv_wr32(dev, 0x404154, 0x00000400);
  1345. nv_wr32(dev, 0x404158, 0x00000200);
  1346. nv_wr32(dev, 0x404164, 0x00000055);
  1347. nv_wr32(dev, 0x404168, 0x00000000);
  1348. nv_wr32(dev, 0x404174, 0x00000000);
  1349. nv_wr32(dev, 0x404178, 0x00000000);
  1350. nv_wr32(dev, 0x40417c, 0x00000000);
  1351. for (i = 0; i < 8; i++)
  1352. nv_wr32(dev, 0x404200 + (i * 4), 0x00000000); /* subc */
  1353. }
  1354. static void
  1355. nvc0_grctx_generate_macro(struct drm_device *dev)
  1356. {
  1357. nv_wr32(dev, 0x404404, 0x00000000);
  1358. nv_wr32(dev, 0x404408, 0x00000000);
  1359. nv_wr32(dev, 0x40440c, 0x00000000);
  1360. nv_wr32(dev, 0x404410, 0x00000000);
  1361. nv_wr32(dev, 0x404414, 0x00000000);
  1362. nv_wr32(dev, 0x404418, 0x00000000);
  1363. nv_wr32(dev, 0x40441c, 0x00000000);
  1364. nv_wr32(dev, 0x404420, 0x00000000);
  1365. nv_wr32(dev, 0x404424, 0x00000000);
  1366. nv_wr32(dev, 0x404428, 0x00000000);
  1367. nv_wr32(dev, 0x40442c, 0x00000000);
  1368. nv_wr32(dev, 0x404430, 0x00000000);
  1369. nv_wr32(dev, 0x404434, 0x00000000);
  1370. nv_wr32(dev, 0x404438, 0x00000000);
  1371. nv_wr32(dev, 0x404460, 0x00000000);
  1372. nv_wr32(dev, 0x404464, 0x00000000);
  1373. nv_wr32(dev, 0x404468, 0x00ffffff);
  1374. nv_wr32(dev, 0x40446c, 0x00000000);
  1375. nv_wr32(dev, 0x404480, 0x00000001);
  1376. nv_wr32(dev, 0x404498, 0x00000001);
  1377. }
  1378. static void
  1379. nvc0_grctx_generate_m2mf(struct drm_device *dev)
  1380. {
  1381. nv_wr32(dev, 0x404604, 0x00000015);
  1382. nv_wr32(dev, 0x404608, 0x00000000);
  1383. nv_wr32(dev, 0x40460c, 0x00002e00);
  1384. nv_wr32(dev, 0x404610, 0x00000100);
  1385. nv_wr32(dev, 0x404618, 0x00000000);
  1386. nv_wr32(dev, 0x40461c, 0x00000000);
  1387. nv_wr32(dev, 0x404620, 0x00000000);
  1388. nv_wr32(dev, 0x404624, 0x00000000);
  1389. nv_wr32(dev, 0x404628, 0x00000000);
  1390. nv_wr32(dev, 0x40462c, 0x00000000);
  1391. nv_wr32(dev, 0x404630, 0x00000000);
  1392. nv_wr32(dev, 0x404634, 0x00000000);
  1393. nv_wr32(dev, 0x404638, 0x00000004);
  1394. nv_wr32(dev, 0x40463c, 0x00000000);
  1395. nv_wr32(dev, 0x404640, 0x00000000);
  1396. nv_wr32(dev, 0x404644, 0x00000000);
  1397. nv_wr32(dev, 0x404648, 0x00000000);
  1398. nv_wr32(dev, 0x40464c, 0x00000000);
  1399. nv_wr32(dev, 0x404650, 0x00000000);
  1400. nv_wr32(dev, 0x404654, 0x00000000);
  1401. nv_wr32(dev, 0x404658, 0x00000000);
  1402. nv_wr32(dev, 0x40465c, 0x007f0100);
  1403. nv_wr32(dev, 0x404660, 0x00000000);
  1404. nv_wr32(dev, 0x404664, 0x00000000);
  1405. nv_wr32(dev, 0x404668, 0x00000000);
  1406. nv_wr32(dev, 0x40466c, 0x00000000);
  1407. nv_wr32(dev, 0x404670, 0x00000000);
  1408. nv_wr32(dev, 0x404674, 0x00000000);
  1409. nv_wr32(dev, 0x404678, 0x00000000);
  1410. nv_wr32(dev, 0x40467c, 0x00000002);
  1411. nv_wr32(dev, 0x404680, 0x00000000);
  1412. nv_wr32(dev, 0x404684, 0x00000000);
  1413. nv_wr32(dev, 0x404688, 0x00000000);
  1414. nv_wr32(dev, 0x40468c, 0x00000000);
  1415. nv_wr32(dev, 0x404690, 0x00000000);
  1416. nv_wr32(dev, 0x404694, 0x00000000);
  1417. nv_wr32(dev, 0x404698, 0x00000000);
  1418. nv_wr32(dev, 0x40469c, 0x00000000);
  1419. nv_wr32(dev, 0x4046a0, 0x007f0080);
  1420. nv_wr32(dev, 0x4046a4, 0x00000000);
  1421. nv_wr32(dev, 0x4046a8, 0x00000000);
  1422. nv_wr32(dev, 0x4046ac, 0x00000000);
  1423. nv_wr32(dev, 0x4046b0, 0x00000000);
  1424. nv_wr32(dev, 0x4046b4, 0x00000000);
  1425. nv_wr32(dev, 0x4046b8, 0x00000000);
  1426. nv_wr32(dev, 0x4046bc, 0x00000000);
  1427. nv_wr32(dev, 0x4046c0, 0x00000000);
  1428. nv_wr32(dev, 0x4046c4, 0x00000000);
  1429. nv_wr32(dev, 0x4046c8, 0x00000000);
  1430. nv_wr32(dev, 0x4046cc, 0x00000000);
  1431. nv_wr32(dev, 0x4046d0, 0x00000000);
  1432. nv_wr32(dev, 0x4046d4, 0x00000000);
  1433. nv_wr32(dev, 0x4046d8, 0x00000000);
  1434. nv_wr32(dev, 0x4046dc, 0x00000000);
  1435. nv_wr32(dev, 0x4046e0, 0x00000000);
  1436. nv_wr32(dev, 0x4046e4, 0x00000000);
  1437. nv_wr32(dev, 0x4046e8, 0x00000000);
  1438. nv_wr32(dev, 0x4046f0, 0x00000000);
  1439. nv_wr32(dev, 0x4046f4, 0x00000000);
  1440. }
  1441. static void
  1442. nvc0_grctx_generate_unk47xx(struct drm_device *dev)
  1443. {
  1444. nv_wr32(dev, 0x404700, 0x00000000);
  1445. nv_wr32(dev, 0x404704, 0x00000000);
  1446. nv_wr32(dev, 0x404708, 0x00000000);
  1447. nv_wr32(dev, 0x40470c, 0x00000000);
  1448. nv_wr32(dev, 0x404710, 0x00000000);
  1449. nv_wr32(dev, 0x404714, 0x00000000);
  1450. nv_wr32(dev, 0x404718, 0x00000000);
  1451. nv_wr32(dev, 0x40471c, 0x00000000);
  1452. nv_wr32(dev, 0x404720, 0x00000000);
  1453. nv_wr32(dev, 0x404724, 0x00000000);
  1454. nv_wr32(dev, 0x404728, 0x00000000);
  1455. nv_wr32(dev, 0x40472c, 0x00000000);
  1456. nv_wr32(dev, 0x404730, 0x00000000);
  1457. nv_wr32(dev, 0x404734, 0x00000100);
  1458. nv_wr32(dev, 0x404738, 0x00000000);
  1459. nv_wr32(dev, 0x40473c, 0x00000000);
  1460. nv_wr32(dev, 0x404740, 0x00000000);
  1461. nv_wr32(dev, 0x404744, 0x00000000);
  1462. nv_wr32(dev, 0x404748, 0x00000000);
  1463. nv_wr32(dev, 0x40474c, 0x00000000);
  1464. nv_wr32(dev, 0x404750, 0x00000000);
  1465. nv_wr32(dev, 0x404754, 0x00000000);
  1466. }
  1467. static void
  1468. nvc0_grctx_generate_shaders(struct drm_device *dev)
  1469. {
  1470. struct drm_nouveau_private *dev_priv = dev->dev_private;
  1471. if (dev_priv->chipset == 0xd9) {
  1472. nv_wr32(dev, 0x405800, 0x0f8000bf);
  1473. nv_wr32(dev, 0x405830, 0x02180218);
  1474. nv_wr32(dev, 0x405834, 0x08000000);
  1475. } else
  1476. if (dev_priv->chipset == 0xc1) {
  1477. nv_wr32(dev, 0x405800, 0x0f8000bf);
  1478. nv_wr32(dev, 0x405830, 0x02180218);
  1479. nv_wr32(dev, 0x405834, 0x00000000);
  1480. } else {
  1481. nv_wr32(dev, 0x405800, 0x078000bf);
  1482. nv_wr32(dev, 0x405830, 0x02180000);
  1483. nv_wr32(dev, 0x405834, 0x00000000);
  1484. }
  1485. nv_wr32(dev, 0x405838, 0x00000000);
  1486. nv_wr32(dev, 0x405854, 0x00000000);
  1487. nv_wr32(dev, 0x405870, 0x00000001);
  1488. nv_wr32(dev, 0x405874, 0x00000001);
  1489. nv_wr32(dev, 0x405878, 0x00000001);
  1490. nv_wr32(dev, 0x40587c, 0x00000001);
  1491. nv_wr32(dev, 0x405a00, 0x00000000);
  1492. nv_wr32(dev, 0x405a04, 0x00000000);
  1493. nv_wr32(dev, 0x405a18, 0x00000000);
  1494. }
  1495. static void
  1496. nvc0_grctx_generate_unk60xx(struct drm_device *dev)
  1497. {
  1498. nv_wr32(dev, 0x406020, 0x000103c1);
  1499. nv_wr32(dev, 0x406028, 0x00000001);
  1500. nv_wr32(dev, 0x40602c, 0x00000001);
  1501. nv_wr32(dev, 0x406030, 0x00000001);
  1502. nv_wr32(dev, 0x406034, 0x00000001);
  1503. }
  1504. static void
  1505. nvc0_grctx_generate_unk64xx(struct drm_device *dev)
  1506. {
  1507. struct drm_nouveau_private *dev_priv = dev->dev_private;
  1508. nv_wr32(dev, 0x4064a8, 0x00000000);
  1509. nv_wr32(dev, 0x4064ac, 0x00003fff);
  1510. nv_wr32(dev, 0x4064b4, 0x00000000);
  1511. nv_wr32(dev, 0x4064b8, 0x00000000);
  1512. if (dev_priv->chipset == 0xd9)
  1513. nv_wr32(dev, 0x4064bc, 0x00000000);
  1514. if (dev_priv->chipset == 0xc1 ||
  1515. dev_priv->chipset == 0xd9) {
  1516. nv_wr32(dev, 0x4064c0, 0x80140078);
  1517. nv_wr32(dev, 0x4064c4, 0x0086ffff);
  1518. }
  1519. }
  1520. static void
  1521. nvc0_grctx_generate_tpbus(struct drm_device *dev)
  1522. {
  1523. nv_wr32(dev, 0x407804, 0x00000023);
  1524. nv_wr32(dev, 0x40780c, 0x0a418820);
  1525. nv_wr32(dev, 0x407810, 0x062080e6);
  1526. nv_wr32(dev, 0x407814, 0x020398a4);
  1527. nv_wr32(dev, 0x407818, 0x0e629062);
  1528. nv_wr32(dev, 0x40781c, 0x0a418820);
  1529. nv_wr32(dev, 0x407820, 0x000000e6);
  1530. nv_wr32(dev, 0x4078bc, 0x00000103);
  1531. }
  1532. static void
  1533. nvc0_grctx_generate_ccache(struct drm_device *dev)
  1534. {
  1535. nv_wr32(dev, 0x408000, 0x00000000);
  1536. nv_wr32(dev, 0x408004, 0x00000000);
  1537. nv_wr32(dev, 0x408008, 0x00000018);
  1538. nv_wr32(dev, 0x40800c, 0x00000000);
  1539. nv_wr32(dev, 0x408010, 0x00000000);
  1540. nv_wr32(dev, 0x408014, 0x00000069);
  1541. nv_wr32(dev, 0x408018, 0xe100e100);
  1542. nv_wr32(dev, 0x408064, 0x00000000);
  1543. }
  1544. static void
  1545. nvc0_grctx_generate_rop(struct drm_device *dev)
  1546. {
  1547. struct drm_nouveau_private *dev_priv = dev->dev_private;
  1548. int chipset = dev_priv->chipset;
  1549. /* ROPC_BROADCAST */
  1550. nv_wr32(dev, 0x408800, 0x02802a3c);
  1551. nv_wr32(dev, 0x408804, 0x00000040);
  1552. if (chipset == 0xd9) {
  1553. nv_wr32(dev, 0x408808, 0x1043e005);
  1554. nv_wr32(dev, 0x408900, 0x3080b801);
  1555. nv_wr32(dev, 0x408904, 0x1043e005);
  1556. nv_wr32(dev, 0x408908, 0x00c8102f);
  1557. } else
  1558. if (chipset == 0xc1) {
  1559. nv_wr32(dev, 0x408808, 0x1003e005);
  1560. nv_wr32(dev, 0x408900, 0x3080b801);
  1561. nv_wr32(dev, 0x408904, 0x62000001);
  1562. nv_wr32(dev, 0x408908, 0x00c80929);
  1563. } else {
  1564. nv_wr32(dev, 0x408808, 0x0003e00d);
  1565. nv_wr32(dev, 0x408900, 0x3080b801);
  1566. nv_wr32(dev, 0x408904, 0x02000001);
  1567. nv_wr32(dev, 0x408908, 0x00c80929);
  1568. }
  1569. nv_wr32(dev, 0x40890c, 0x00000000);
  1570. nv_wr32(dev, 0x408980, 0x0000011d);
  1571. }
  1572. static void
  1573. nvc0_grctx_generate_gpc(struct drm_device *dev)
  1574. {
  1575. struct drm_nouveau_private *dev_priv = dev->dev_private;
  1576. int chipset = dev_priv->chipset;
  1577. int i;
  1578. /* GPC_BROADCAST */
  1579. nv_wr32(dev, 0x418380, 0x00000016);
  1580. nv_wr32(dev, 0x418400, 0x38004e00);
  1581. nv_wr32(dev, 0x418404, 0x71e0ffff);
  1582. nv_wr32(dev, 0x418408, 0x00000000);
  1583. nv_wr32(dev, 0x41840c, 0x00001008);
  1584. nv_wr32(dev, 0x418410, 0x0fff0fff);
  1585. nv_wr32(dev, 0x418414, chipset != 0xd9 ? 0x00200fff : 0x02200fff);
  1586. nv_wr32(dev, 0x418450, 0x00000000);
  1587. nv_wr32(dev, 0x418454, 0x00000000);
  1588. nv_wr32(dev, 0x418458, 0x00000000);
  1589. nv_wr32(dev, 0x41845c, 0x00000000);
  1590. nv_wr32(dev, 0x418460, 0x00000000);
  1591. nv_wr32(dev, 0x418464, 0x00000000);
  1592. nv_wr32(dev, 0x418468, 0x00000001);
  1593. nv_wr32(dev, 0x41846c, 0x00000000);
  1594. nv_wr32(dev, 0x418470, 0x00000000);
  1595. nv_wr32(dev, 0x418600, 0x0000001f);
  1596. nv_wr32(dev, 0x418684, 0x0000000f);
  1597. nv_wr32(dev, 0x418700, 0x00000002);
  1598. nv_wr32(dev, 0x418704, 0x00000080);
  1599. nv_wr32(dev, 0x418708, 0x00000000);
  1600. nv_wr32(dev, 0x41870c, chipset != 0xd9 ? 0x07c80000 : 0x00000000);
  1601. nv_wr32(dev, 0x418710, 0x00000000);
  1602. nv_wr32(dev, 0x418800, chipset != 0xd9 ? 0x0006860a : 0x7006860a);
  1603. nv_wr32(dev, 0x418808, 0x00000000);
  1604. nv_wr32(dev, 0x41880c, 0x00000000);
  1605. nv_wr32(dev, 0x418810, 0x00000000);
  1606. nv_wr32(dev, 0x418828, 0x00008442);
  1607. if (chipset == 0xc1 || chipset == 0xd9)
  1608. nv_wr32(dev, 0x418830, 0x10000001);
  1609. else
  1610. nv_wr32(dev, 0x418830, 0x00000001);
  1611. nv_wr32(dev, 0x4188d8, 0x00000008);
  1612. nv_wr32(dev, 0x4188e0, 0x01000000);
  1613. nv_wr32(dev, 0x4188e8, 0x00000000);
  1614. nv_wr32(dev, 0x4188ec, 0x00000000);
  1615. nv_wr32(dev, 0x4188f0, 0x00000000);
  1616. nv_wr32(dev, 0x4188f4, 0x00000000);
  1617. nv_wr32(dev, 0x4188f8, 0x00000000);
  1618. if (chipset == 0xd9)
  1619. nv_wr32(dev, 0x4188fc, 0x20100008);
  1620. else if (chipset == 0xc1)
  1621. nv_wr32(dev, 0x4188fc, 0x00100018);
  1622. else
  1623. nv_wr32(dev, 0x4188fc, 0x00100000);
  1624. nv_wr32(dev, 0x41891c, 0x00ff00ff);
  1625. nv_wr32(dev, 0x418924, 0x00000000);
  1626. nv_wr32(dev, 0x418928, 0x00ffff00);
  1627. nv_wr32(dev, 0x41892c, 0x0000ff00);
  1628. for (i = 0; i < 8; i++) {
  1629. nv_wr32(dev, 0x418a00 + (i * 0x20), 0x00000000);
  1630. nv_wr32(dev, 0x418a04 + (i * 0x20), 0x00000000);
  1631. nv_wr32(dev, 0x418a08 + (i * 0x20), 0x00000000);
  1632. nv_wr32(dev, 0x418a0c + (i * 0x20), 0x00010000);
  1633. nv_wr32(dev, 0x418a10 + (i * 0x20), 0x00000000);
  1634. nv_wr32(dev, 0x418a14 + (i * 0x20), 0x00000000);
  1635. nv_wr32(dev, 0x418a18 + (i * 0x20), 0x00000000);
  1636. }
  1637. nv_wr32(dev, 0x418b00, chipset != 0xd9 ? 0x00000000 : 0x00000006);
  1638. nv_wr32(dev, 0x418b08, 0x0a418820);
  1639. nv_wr32(dev, 0x418b0c, 0x062080e6);
  1640. nv_wr32(dev, 0x418b10, 0x020398a4);
  1641. nv_wr32(dev, 0x418b14, 0x0e629062);
  1642. nv_wr32(dev, 0x418b18, 0x0a418820);
  1643. nv_wr32(dev, 0x418b1c, 0x000000e6);
  1644. nv_wr32(dev, 0x418bb8, 0x00000103);
  1645. nv_wr32(dev, 0x418c08, 0x00000001);
  1646. nv_wr32(dev, 0x418c10, 0x00000000);
  1647. nv_wr32(dev, 0x418c14, 0x00000000);
  1648. nv_wr32(dev, 0x418c18, 0x00000000);
  1649. nv_wr32(dev, 0x418c1c, 0x00000000);
  1650. nv_wr32(dev, 0x418c20, 0x00000000);
  1651. nv_wr32(dev, 0x418c24, 0x00000000);
  1652. nv_wr32(dev, 0x418c28, 0x00000000);
  1653. nv_wr32(dev, 0x418c2c, 0x00000000);
  1654. if (chipset == 0xc1 || chipset == 0xd9)
  1655. nv_wr32(dev, 0x418c6c, 0x00000001);
  1656. nv_wr32(dev, 0x418c80, 0x20200004);
  1657. nv_wr32(dev, 0x418c8c, 0x00000001);
  1658. nv_wr32(dev, 0x419000, 0x00000780);
  1659. nv_wr32(dev, 0x419004, 0x00000000);
  1660. nv_wr32(dev, 0x419008, 0x00000000);
  1661. nv_wr32(dev, 0x419014, 0x00000004);
  1662. }
  1663. static void
  1664. nvc0_grctx_generate_tp(struct drm_device *dev)
  1665. {
  1666. struct drm_nouveau_private *dev_priv = dev->dev_private;
  1667. int chipset = dev_priv->chipset;
  1668. /* GPC_BROADCAST.TP_BROADCAST */
  1669. nv_wr32(dev, 0x419818, 0x00000000);
  1670. nv_wr32(dev, 0x41983c, 0x00038bc7);
  1671. nv_wr32(dev, 0x419848, 0x00000000);
  1672. if (chipset == 0xc1 || chipset == 0xd9)
  1673. nv_wr32(dev, 0x419864, 0x00000129);
  1674. else
  1675. nv_wr32(dev, 0x419864, 0x0000012a);
  1676. nv_wr32(dev, 0x419888, 0x00000000);
  1677. nv_wr32(dev, 0x419a00, 0x000001f0);
  1678. nv_wr32(dev, 0x419a04, 0x00000001);
  1679. nv_wr32(dev, 0x419a08, 0x00000023);
  1680. nv_wr32(dev, 0x419a0c, 0x00020000);
  1681. nv_wr32(dev, 0x419a10, 0x00000000);
  1682. nv_wr32(dev, 0x419a14, 0x00000200);
  1683. nv_wr32(dev, 0x419a1c, 0x00000000);
  1684. nv_wr32(dev, 0x419a20, 0x00000800);
  1685. if (chipset == 0xd9)
  1686. nv_wr32(dev, 0x00419ac4, 0x0017f440);
  1687. else if (chipset != 0xc0 && chipset != 0xc8)
  1688. nv_wr32(dev, 0x00419ac4, 0x0007f440);
  1689. nv_wr32(dev, 0x419b00, 0x0a418820);
  1690. nv_wr32(dev, 0x419b04, 0x062080e6);
  1691. nv_wr32(dev, 0x419b08, 0x020398a4);
  1692. nv_wr32(dev, 0x419b0c, 0x0e629062);
  1693. nv_wr32(dev, 0x419b10, 0x0a418820);
  1694. nv_wr32(dev, 0x419b14, 0x000000e6);
  1695. nv_wr32(dev, 0x419bd0, 0x00900103);
  1696. if (chipset == 0xc1 || chipset == 0xd9)
  1697. nv_wr32(dev, 0x419be0, 0x00400001);
  1698. else
  1699. nv_wr32(dev, 0x419be0, 0x00000001);
  1700. nv_wr32(dev, 0x419be4, 0x00000000);
  1701. nv_wr32(dev, 0x419c00, chipset != 0xd9 ? 0x00000002 : 0x0000000a);
  1702. nv_wr32(dev, 0x419c04, 0x00000006);
  1703. nv_wr32(dev, 0x419c08, 0x00000002);
  1704. nv_wr32(dev, 0x419c20, 0x00000000);
  1705. if (dev_priv->chipset == 0xd9) {
  1706. nv_wr32(dev, 0x419c24, 0x00084210);
  1707. nv_wr32(dev, 0x419c28, 0x3cf3cf3c);
  1708. nv_wr32(dev, 0x419cb0, 0x00020048);
  1709. } else
  1710. if (chipset == 0xce || chipset == 0xcf) {
  1711. nv_wr32(dev, 0x419cb0, 0x00020048);
  1712. } else {
  1713. nv_wr32(dev, 0x419cb0, 0x00060048);
  1714. }
  1715. nv_wr32(dev, 0x419ce8, 0x00000000);
  1716. nv_wr32(dev, 0x419cf4, 0x00000183);
  1717. if (chipset == 0xc1 || chipset == 0xd9)
  1718. nv_wr32(dev, 0x419d20, 0x12180000);
  1719. else
  1720. nv_wr32(dev, 0x419d20, 0x02180000);
  1721. nv_wr32(dev, 0x419d24, 0x00001fff);
  1722. if (chipset == 0xc1 || chipset == 0xd9)
  1723. nv_wr32(dev, 0x419d44, 0x02180218);
  1724. nv_wr32(dev, 0x419e04, 0x00000000);
  1725. nv_wr32(dev, 0x419e08, 0x00000000);
  1726. nv_wr32(dev, 0x419e0c, 0x00000000);
  1727. nv_wr32(dev, 0x419e10, 0x00000002);
  1728. nv_wr32(dev, 0x419e44, 0x001beff2);
  1729. nv_wr32(dev, 0x419e48, 0x00000000);
  1730. nv_wr32(dev, 0x419e4c, 0x0000000f);
  1731. nv_wr32(dev, 0x419e50, 0x00000000);
  1732. nv_wr32(dev, 0x419e54, 0x00000000);
  1733. nv_wr32(dev, 0x419e58, 0x00000000);
  1734. nv_wr32(dev, 0x419e5c, 0x00000000);
  1735. nv_wr32(dev, 0x419e60, 0x00000000);
  1736. nv_wr32(dev, 0x419e64, 0x00000000);
  1737. nv_wr32(dev, 0x419e68, 0x00000000);
  1738. nv_wr32(dev, 0x419e6c, 0x00000000);
  1739. nv_wr32(dev, 0x419e70, 0x00000000);
  1740. nv_wr32(dev, 0x419e74, 0x00000000);
  1741. nv_wr32(dev, 0x419e78, 0x00000000);
  1742. nv_wr32(dev, 0x419e7c, 0x00000000);
  1743. nv_wr32(dev, 0x419e80, 0x00000000);
  1744. nv_wr32(dev, 0x419e84, 0x00000000);
  1745. nv_wr32(dev, 0x419e88, 0x00000000);
  1746. nv_wr32(dev, 0x419e8c, 0x00000000);
  1747. nv_wr32(dev, 0x419e90, 0x00000000);
  1748. nv_wr32(dev, 0x419e98, 0x00000000);
  1749. if (chipset != 0xc0 && chipset != 0xc8)
  1750. nv_wr32(dev, 0x419ee0, 0x00011110);
  1751. nv_wr32(dev, 0x419f50, 0x00000000);
  1752. nv_wr32(dev, 0x419f54, 0x00000000);
  1753. if (chipset != 0xc0 && chipset != 0xc8)
  1754. nv_wr32(dev, 0x419f58, 0x00000000);
  1755. }
  1756. int
  1757. nvc0_grctx_generate(struct nouveau_channel *chan)
  1758. {
  1759. struct drm_nouveau_private *dev_priv = chan->dev->dev_private;
  1760. struct nvc0_graph_priv *priv = nv_engine(chan->dev, NVOBJ_ENGINE_GR);
  1761. struct nvc0_graph_chan *grch = chan->engctx[NVOBJ_ENGINE_GR];
  1762. struct drm_device *dev = chan->dev;
  1763. int i, gpc, tp, id;
  1764. u32 fermi = nvc0_graph_class(dev);
  1765. u32 r000260, tmp;
  1766. r000260 = nv_rd32(dev, 0x000260);
  1767. nv_wr32(dev, 0x000260, r000260 & ~1);
  1768. nv_wr32(dev, 0x400208, 0x00000000);
  1769. nvc0_grctx_generate_dispatch(dev);
  1770. nvc0_grctx_generate_macro(dev);
  1771. nvc0_grctx_generate_m2mf(dev);
  1772. nvc0_grctx_generate_unk47xx(dev);
  1773. nvc0_grctx_generate_shaders(dev);
  1774. nvc0_grctx_generate_unk60xx(dev);
  1775. nvc0_grctx_generate_unk64xx(dev);
  1776. nvc0_grctx_generate_tpbus(dev);
  1777. nvc0_grctx_generate_ccache(dev);
  1778. nvc0_grctx_generate_rop(dev);
  1779. nvc0_grctx_generate_gpc(dev);
  1780. nvc0_grctx_generate_tp(dev);
  1781. nv_wr32(dev, 0x404154, 0x00000000);
  1782. /* fuc "mmio list" writes */
  1783. for (i = 0; i < grch->mmio_nr * 8; i += 8) {
  1784. u32 reg = nv_ro32(grch->mmio, i + 0);
  1785. nv_wr32(dev, reg, nv_ro32(grch->mmio, i + 4));
  1786. }
  1787. for (tp = 0, id = 0; tp < 4; tp++) {
  1788. for (gpc = 0; gpc < priv->gpc_nr; gpc++) {
  1789. if (tp < priv->tp_nr[gpc]) {
  1790. nv_wr32(dev, TP_UNIT(gpc, tp, 0x698), id);
  1791. nv_wr32(dev, TP_UNIT(gpc, tp, 0x4e8), id);
  1792. nv_wr32(dev, GPC_UNIT(gpc, 0x0c10 + tp * 4), id);
  1793. nv_wr32(dev, TP_UNIT(gpc, tp, 0x088), id);
  1794. id++;
  1795. }
  1796. nv_wr32(dev, GPC_UNIT(gpc, 0x0c08), priv->tp_nr[gpc]);
  1797. nv_wr32(dev, GPC_UNIT(gpc, 0x0c8c), priv->tp_nr[gpc]);
  1798. }
  1799. }
  1800. tmp = 0;
  1801. for (i = 0; i < priv->gpc_nr; i++)
  1802. tmp |= priv->tp_nr[i] << (i * 4);
  1803. nv_wr32(dev, 0x406028, tmp);
  1804. nv_wr32(dev, 0x405870, tmp);
  1805. nv_wr32(dev, 0x40602c, 0x00000000);
  1806. nv_wr32(dev, 0x405874, 0x00000000);
  1807. nv_wr32(dev, 0x406030, 0x00000000);
  1808. nv_wr32(dev, 0x405878, 0x00000000);
  1809. nv_wr32(dev, 0x406034, 0x00000000);
  1810. nv_wr32(dev, 0x40587c, 0x00000000);
  1811. if (1) {
  1812. u8 tpnr[GPC_MAX], data[TP_MAX];
  1813. memcpy(tpnr, priv->tp_nr, sizeof(priv->tp_nr));
  1814. memset(data, 0x1f, sizeof(data));
  1815. gpc = -1;
  1816. for (tp = 0; tp < priv->tp_total; tp++) {
  1817. do {
  1818. gpc = (gpc + 1) % priv->gpc_nr;
  1819. } while (!tpnr[gpc]);
  1820. tpnr[gpc]--;
  1821. data[tp] = gpc;
  1822. }
  1823. for (i = 0; i < 4; i++)
  1824. nv_wr32(dev, 0x4060a8 + (i * 4), ((u32 *)data)[i]);
  1825. }
  1826. if (1) {
  1827. u32 data[6] = {}, data2[2] = {};
  1828. u8 tpnr[GPC_MAX];
  1829. u8 shift, ntpcv;
  1830. /* calculate first set of magics */
  1831. memcpy(tpnr, priv->tp_nr, sizeof(priv->tp_nr));
  1832. gpc = -1;
  1833. for (tp = 0; tp < priv->tp_total; tp++) {
  1834. do {
  1835. gpc = (gpc + 1) % priv->gpc_nr;
  1836. } while (!tpnr[gpc]);
  1837. tpnr[gpc]--;
  1838. data[tp / 6] |= gpc << ((tp % 6) * 5);
  1839. }
  1840. for (; tp < 32; tp++)
  1841. data[tp / 6] |= 7 << ((tp % 6) * 5);
  1842. /* and the second... */
  1843. shift = 0;
  1844. ntpcv = priv->tp_total;
  1845. while (!(ntpcv & (1 << 4))) {
  1846. ntpcv <<= 1;
  1847. shift++;
  1848. }
  1849. data2[0] = (ntpcv << 16);
  1850. data2[0] |= (shift << 21);
  1851. data2[0] |= (((1 << (0 + 5)) % ntpcv) << 24);
  1852. for (i = 1; i < 7; i++)
  1853. data2[1] |= ((1 << (i + 5)) % ntpcv) << ((i - 1) * 5);
  1854. /* GPC_BROADCAST */
  1855. nv_wr32(dev, 0x418bb8, (priv->tp_total << 8) |
  1856. priv->magic_not_rop_nr);
  1857. for (i = 0; i < 6; i++)
  1858. nv_wr32(dev, 0x418b08 + (i * 4), data[i]);
  1859. /* GPC_BROADCAST.TP_BROADCAST */
  1860. nv_wr32(dev, 0x419bd0, (priv->tp_total << 8) |
  1861. priv->magic_not_rop_nr |
  1862. data2[0]);
  1863. nv_wr32(dev, 0x419be4, data2[1]);
  1864. for (i = 0; i < 6; i++)
  1865. nv_wr32(dev, 0x419b00 + (i * 4), data[i]);
  1866. /* UNK78xx */
  1867. nv_wr32(dev, 0x4078bc, (priv->tp_total << 8) |
  1868. priv->magic_not_rop_nr);
  1869. for (i = 0; i < 6; i++)
  1870. nv_wr32(dev, 0x40780c + (i * 4), data[i]);
  1871. }
  1872. if (1) {
  1873. u32 tp_mask = 0, tp_set = 0;
  1874. u8 tpnr[GPC_MAX], a, b;
  1875. memcpy(tpnr, priv->tp_nr, sizeof(priv->tp_nr));
  1876. for (gpc = 0; gpc < priv->gpc_nr; gpc++)
  1877. tp_mask |= ((1 << priv->tp_nr[gpc]) - 1) << (gpc * 8);
  1878. for (i = 0, gpc = -1, b = -1; i < 32; i++) {
  1879. a = (i * (priv->tp_total - 1)) / 32;
  1880. if (a != b) {
  1881. b = a;
  1882. do {
  1883. gpc = (gpc + 1) % priv->gpc_nr;
  1884. } while (!tpnr[gpc]);
  1885. tp = priv->tp_nr[gpc] - tpnr[gpc]--;
  1886. tp_set |= 1 << ((gpc * 8) + tp);
  1887. }
  1888. nv_wr32(dev, 0x406800 + (i * 0x20), tp_set);
  1889. nv_wr32(dev, 0x406c00 + (i * 0x20), tp_set ^ tp_mask);
  1890. }
  1891. }
  1892. nv_wr32(dev, 0x400208, 0x80000000);
  1893. nv_icmd(dev, 0x00001000, 0x00000004);
  1894. nv_icmd(dev, 0x000000a9, 0x0000ffff);
  1895. nv_icmd(dev, 0x00000038, 0x0fac6881);
  1896. nv_icmd(dev, 0x0000003d, 0x00000001);
  1897. nv_icmd(dev, 0x000000e8, 0x00000400);
  1898. nv_icmd(dev, 0x000000e9, 0x00000400);
  1899. nv_icmd(dev, 0x000000ea, 0x00000400);
  1900. nv_icmd(dev, 0x000000eb, 0x00000400);
  1901. nv_icmd(dev, 0x000000ec, 0x00000400);
  1902. nv_icmd(dev, 0x000000ed, 0x00000400);
  1903. nv_icmd(dev, 0x000000ee, 0x00000400);
  1904. nv_icmd(dev, 0x000000ef, 0x00000400);
  1905. nv_icmd(dev, 0x00000078, 0x00000300);
  1906. nv_icmd(dev, 0x00000079, 0x00000300);
  1907. nv_icmd(dev, 0x0000007a, 0x00000300);
  1908. nv_icmd(dev, 0x0000007b, 0x00000300);
  1909. nv_icmd(dev, 0x0000007c, 0x00000300);
  1910. nv_icmd(dev, 0x0000007d, 0x00000300);
  1911. nv_icmd(dev, 0x0000007e, 0x00000300);
  1912. nv_icmd(dev, 0x0000007f, 0x00000300);
  1913. nv_icmd(dev, 0x00000050, 0x00000011);
  1914. nv_icmd(dev, 0x00000058, 0x00000008);
  1915. nv_icmd(dev, 0x00000059, 0x00000008);
  1916. nv_icmd(dev, 0x0000005a, 0x00000008);
  1917. nv_icmd(dev, 0x0000005b, 0x00000008);
  1918. nv_icmd(dev, 0x0000005c, 0x00000008);
  1919. nv_icmd(dev, 0x0000005d, 0x00000008);
  1920. nv_icmd(dev, 0x0000005e, 0x00000008);
  1921. nv_icmd(dev, 0x0000005f, 0x00000008);
  1922. nv_icmd(dev, 0x00000208, 0x00000001);
  1923. nv_icmd(dev, 0x00000209, 0x00000001);
  1924. nv_icmd(dev, 0x0000020a, 0x00000001);
  1925. nv_icmd(dev, 0x0000020b, 0x00000001);
  1926. nv_icmd(dev, 0x0000020c, 0x00000001);
  1927. nv_icmd(dev, 0x0000020d, 0x00000001);
  1928. nv_icmd(dev, 0x0000020e, 0x00000001);
  1929. nv_icmd(dev, 0x0000020f, 0x00000001);
  1930. nv_icmd(dev, 0x00000081, 0x00000001);
  1931. nv_icmd(dev, 0x00000085, 0x00000004);
  1932. nv_icmd(dev, 0x00000088, 0x00000400);
  1933. nv_icmd(dev, 0x00000090, 0x00000300);
  1934. nv_icmd(dev, 0x00000098, 0x00001001);
  1935. nv_icmd(dev, 0x000000e3, 0x00000001);
  1936. nv_icmd(dev, 0x000000da, 0x00000001);
  1937. nv_icmd(dev, 0x000000f8, 0x00000003);
  1938. nv_icmd(dev, 0x000000fa, 0x00000001);
  1939. nv_icmd(dev, 0x0000009f, 0x0000ffff);
  1940. nv_icmd(dev, 0x000000a0, 0x0000ffff);
  1941. nv_icmd(dev, 0x000000a1, 0x0000ffff);
  1942. nv_icmd(dev, 0x000000a2, 0x0000ffff);
  1943. nv_icmd(dev, 0x000000b1, 0x00000001);
  1944. nv_icmd(dev, 0x000000b2, 0x00000000);
  1945. nv_icmd(dev, 0x000000b3, 0x00000000);
  1946. nv_icmd(dev, 0x000000b4, 0x00000000);
  1947. nv_icmd(dev, 0x000000b5, 0x00000000);
  1948. nv_icmd(dev, 0x000000b6, 0x00000000);
  1949. nv_icmd(dev, 0x000000b7, 0x00000000);
  1950. nv_icmd(dev, 0x000000b8, 0x00000000);
  1951. nv_icmd(dev, 0x000000b9, 0x00000000);
  1952. nv_icmd(dev, 0x000000ba, 0x00000000);
  1953. nv_icmd(dev, 0x000000bb, 0x00000000);
  1954. nv_icmd(dev, 0x000000bc, 0x00000000);
  1955. nv_icmd(dev, 0x000000bd, 0x00000000);
  1956. nv_icmd(dev, 0x000000be, 0x00000000);
  1957. nv_icmd(dev, 0x000000bf, 0x00000000);
  1958. nv_icmd(dev, 0x000000c0, 0x00000000);
  1959. nv_icmd(dev, 0x000000c1, 0x00000000);
  1960. nv_icmd(dev, 0x000000c2, 0x00000000);
  1961. nv_icmd(dev, 0x000000c3, 0x00000000);
  1962. nv_icmd(dev, 0x000000c4, 0x00000000);
  1963. nv_icmd(dev, 0x000000c5, 0x00000000);
  1964. nv_icmd(dev, 0x000000c6, 0x00000000);
  1965. nv_icmd(dev, 0x000000c7, 0x00000000);
  1966. nv_icmd(dev, 0x000000c8, 0x00000000);
  1967. nv_icmd(dev, 0x000000c9, 0x00000000);
  1968. nv_icmd(dev, 0x000000ca, 0x00000000);
  1969. nv_icmd(dev, 0x000000cb, 0x00000000);
  1970. nv_icmd(dev, 0x000000cc, 0x00000000);
  1971. nv_icmd(dev, 0x000000cd, 0x00000000);
  1972. nv_icmd(dev, 0x000000ce, 0x00000000);
  1973. nv_icmd(dev, 0x000000cf, 0x00000000);
  1974. nv_icmd(dev, 0x000000d0, 0x00000000);
  1975. nv_icmd(dev, 0x000000d1, 0x00000000);
  1976. nv_icmd(dev, 0x000000d2, 0x00000000);
  1977. nv_icmd(dev, 0x000000d3, 0x00000000);
  1978. nv_icmd(dev, 0x000000d4, 0x00000000);
  1979. nv_icmd(dev, 0x000000d5, 0x00000000);
  1980. nv_icmd(dev, 0x000000d6, 0x00000000);
  1981. nv_icmd(dev, 0x000000d7, 0x00000000);
  1982. nv_icmd(dev, 0x000000d8, 0x00000000);
  1983. nv_icmd(dev, 0x000000d9, 0x00000000);
  1984. nv_icmd(dev, 0x00000210, 0x00000040);
  1985. nv_icmd(dev, 0x00000211, 0x00000040);
  1986. nv_icmd(dev, 0x00000212, 0x00000040);
  1987. nv_icmd(dev, 0x00000213, 0x00000040);
  1988. nv_icmd(dev, 0x00000214, 0x00000040);
  1989. nv_icmd(dev, 0x00000215, 0x00000040);
  1990. nv_icmd(dev, 0x00000216, 0x00000040);
  1991. nv_icmd(dev, 0x00000217, 0x00000040);
  1992. if (dev_priv->chipset == 0xd9) {
  1993. for (i = 0x0400; i <= 0x0417; i++)
  1994. nv_icmd(dev, i, 0x00000040);
  1995. }
  1996. nv_icmd(dev, 0x00000218, 0x0000c080);
  1997. nv_icmd(dev, 0x00000219, 0x0000c080);
  1998. nv_icmd(dev, 0x0000021a, 0x0000c080);
  1999. nv_icmd(dev, 0x0000021b, 0x0000c080);
  2000. nv_icmd(dev, 0x0000021c, 0x0000c080);
  2001. nv_icmd(dev, 0x0000021d, 0x0000c080);
  2002. nv_icmd(dev, 0x0000021e, 0x0000c080);
  2003. nv_icmd(dev, 0x0000021f, 0x0000c080);
  2004. if (dev_priv->chipset == 0xd9) {
  2005. for (i = 0x0440; i <= 0x0457; i++)
  2006. nv_icmd(dev, i, 0x0000c080);
  2007. }
  2008. nv_icmd(dev, 0x000000ad, 0x0000013e);
  2009. nv_icmd(dev, 0x000000e1, 0x00000010);
  2010. nv_icmd(dev, 0x00000290, 0x00000000);
  2011. nv_icmd(dev, 0x00000291, 0x00000000);
  2012. nv_icmd(dev, 0x00000292, 0x00000000);
  2013. nv_icmd(dev, 0x00000293, 0x00000000);
  2014. nv_icmd(dev, 0x00000294, 0x00000000);
  2015. nv_icmd(dev, 0x00000295, 0x00000000);
  2016. nv_icmd(dev, 0x00000296, 0x00000000);
  2017. nv_icmd(dev, 0x00000297, 0x00000000);
  2018. nv_icmd(dev, 0x00000298, 0x00000000);
  2019. nv_icmd(dev, 0x00000299, 0x00000000);
  2020. nv_icmd(dev, 0x0000029a, 0x00000000);
  2021. nv_icmd(dev, 0x0000029b, 0x00000000);
  2022. nv_icmd(dev, 0x0000029c, 0x00000000);
  2023. nv_icmd(dev, 0x0000029d, 0x00000000);
  2024. nv_icmd(dev, 0x0000029e, 0x00000000);
  2025. nv_icmd(dev, 0x0000029f, 0x00000000);
  2026. nv_icmd(dev, 0x000003b0, 0x00000000);
  2027. nv_icmd(dev, 0x000003b1, 0x00000000);
  2028. nv_icmd(dev, 0x000003b2, 0x00000000);
  2029. nv_icmd(dev, 0x000003b3, 0x00000000);
  2030. nv_icmd(dev, 0x000003b4, 0x00000000);
  2031. nv_icmd(dev, 0x000003b5, 0x00000000);
  2032. nv_icmd(dev, 0x000003b6, 0x00000000);
  2033. nv_icmd(dev, 0x000003b7, 0x00000000);
  2034. nv_icmd(dev, 0x000003b8, 0x00000000);
  2035. nv_icmd(dev, 0x000003b9, 0x00000000);
  2036. nv_icmd(dev, 0x000003ba, 0x00000000);
  2037. nv_icmd(dev, 0x000003bb, 0x00000000);
  2038. nv_icmd(dev, 0x000003bc, 0x00000000);
  2039. nv_icmd(dev, 0x000003bd, 0x00000000);
  2040. nv_icmd(dev, 0x000003be, 0x00000000);
  2041. nv_icmd(dev, 0x000003bf, 0x00000000);
  2042. nv_icmd(dev, 0x000002a0, 0x00000000);
  2043. nv_icmd(dev, 0x000002a1, 0x00000000);
  2044. nv_icmd(dev, 0x000002a2, 0x00000000);
  2045. nv_icmd(dev, 0x000002a3, 0x00000000);
  2046. nv_icmd(dev, 0x000002a4, 0x00000000);
  2047. nv_icmd(dev, 0x000002a5, 0x00000000);
  2048. nv_icmd(dev, 0x000002a6, 0x00000000);
  2049. nv_icmd(dev, 0x000002a7, 0x00000000);
  2050. nv_icmd(dev, 0x000002a8, 0x00000000);
  2051. nv_icmd(dev, 0x000002a9, 0x00000000);
  2052. nv_icmd(dev, 0x000002aa, 0x00000000);
  2053. nv_icmd(dev, 0x000002ab, 0x00000000);
  2054. nv_icmd(dev, 0x000002ac, 0x00000000);
  2055. nv_icmd(dev, 0x000002ad, 0x00000000);
  2056. nv_icmd(dev, 0x000002ae, 0x00000000);
  2057. nv_icmd(dev, 0x000002af, 0x00000000);
  2058. nv_icmd(dev, 0x00000420, 0x00000000);
  2059. nv_icmd(dev, 0x00000421, 0x00000000);
  2060. nv_icmd(dev, 0x00000422, 0x00000000);
  2061. nv_icmd(dev, 0x00000423, 0x00000000);
  2062. nv_icmd(dev, 0x00000424, 0x00000000);
  2063. nv_icmd(dev, 0x00000425, 0x00000000);
  2064. nv_icmd(dev, 0x00000426, 0x00000000);
  2065. nv_icmd(dev, 0x00000427, 0x00000000);
  2066. nv_icmd(dev, 0x00000428, 0x00000000);
  2067. nv_icmd(dev, 0x00000429, 0x00000000);
  2068. nv_icmd(dev, 0x0000042a, 0x00000000);
  2069. nv_icmd(dev, 0x0000042b, 0x00000000);
  2070. nv_icmd(dev, 0x0000042c, 0x00000000);
  2071. nv_icmd(dev, 0x0000042d, 0x00000000);
  2072. nv_icmd(dev, 0x0000042e, 0x00000000);
  2073. nv_icmd(dev, 0x0000042f, 0x00000000);
  2074. nv_icmd(dev, 0x000002b0, 0x00000000);
  2075. nv_icmd(dev, 0x000002b1, 0x00000000);
  2076. nv_icmd(dev, 0x000002b2, 0x00000000);
  2077. nv_icmd(dev, 0x000002b3, 0x00000000);
  2078. nv_icmd(dev, 0x000002b4, 0x00000000);
  2079. nv_icmd(dev, 0x000002b5, 0x00000000);
  2080. nv_icmd(dev, 0x000002b6, 0x00000000);
  2081. nv_icmd(dev, 0x000002b7, 0x00000000);
  2082. nv_icmd(dev, 0x000002b8, 0x00000000);
  2083. nv_icmd(dev, 0x000002b9, 0x00000000);
  2084. nv_icmd(dev, 0x000002ba, 0x00000000);
  2085. nv_icmd(dev, 0x000002bb, 0x00000000);
  2086. nv_icmd(dev, 0x000002bc, 0x00000000);
  2087. nv_icmd(dev, 0x000002bd, 0x00000000);
  2088. nv_icmd(dev, 0x000002be, 0x00000000);
  2089. nv_icmd(dev, 0x000002bf, 0x00000000);
  2090. nv_icmd(dev, 0x00000430, 0x00000000);
  2091. nv_icmd(dev, 0x00000431, 0x00000000);
  2092. nv_icmd(dev, 0x00000432, 0x00000000);
  2093. nv_icmd(dev, 0x00000433, 0x00000000);
  2094. nv_icmd(dev, 0x00000434, 0x00000000);
  2095. nv_icmd(dev, 0x00000435, 0x00000000);
  2096. nv_icmd(dev, 0x00000436, 0x00000000);
  2097. nv_icmd(dev, 0x00000437, 0x00000000);
  2098. nv_icmd(dev, 0x00000438, 0x00000000);
  2099. nv_icmd(dev, 0x00000439, 0x00000000);
  2100. nv_icmd(dev, 0x0000043a, 0x00000000);
  2101. nv_icmd(dev, 0x0000043b, 0x00000000);
  2102. nv_icmd(dev, 0x0000043c, 0x00000000);
  2103. nv_icmd(dev, 0x0000043d, 0x00000000);
  2104. nv_icmd(dev, 0x0000043e, 0x00000000);
  2105. nv_icmd(dev, 0x0000043f, 0x00000000);
  2106. nv_icmd(dev, 0x000002c0, 0x00000000);
  2107. nv_icmd(dev, 0x000002c1, 0x00000000);
  2108. nv_icmd(dev, 0x000002c2, 0x00000000);
  2109. nv_icmd(dev, 0x000002c3, 0x00000000);
  2110. nv_icmd(dev, 0x000002c4, 0x00000000);
  2111. nv_icmd(dev, 0x000002c5, 0x00000000);
  2112. nv_icmd(dev, 0x000002c6, 0x00000000);
  2113. nv_icmd(dev, 0x000002c7, 0x00000000);
  2114. nv_icmd(dev, 0x000002c8, 0x00000000);
  2115. nv_icmd(dev, 0x000002c9, 0x00000000);
  2116. nv_icmd(dev, 0x000002ca, 0x00000000);
  2117. nv_icmd(dev, 0x000002cb, 0x00000000);
  2118. nv_icmd(dev, 0x000002cc, 0x00000000);
  2119. nv_icmd(dev, 0x000002cd, 0x00000000);
  2120. nv_icmd(dev, 0x000002ce, 0x00000000);
  2121. nv_icmd(dev, 0x000002cf, 0x00000000);
  2122. nv_icmd(dev, 0x000004d0, 0x00000000);
  2123. nv_icmd(dev, 0x000004d1, 0x00000000);
  2124. nv_icmd(dev, 0x000004d2, 0x00000000);
  2125. nv_icmd(dev, 0x000004d3, 0x00000000);
  2126. nv_icmd(dev, 0x000004d4, 0x00000000);
  2127. nv_icmd(dev, 0x000004d5, 0x00000000);
  2128. nv_icmd(dev, 0x000004d6, 0x00000000);
  2129. nv_icmd(dev, 0x000004d7, 0x00000000);
  2130. nv_icmd(dev, 0x000004d8, 0x00000000);
  2131. nv_icmd(dev, 0x000004d9, 0x00000000);
  2132. nv_icmd(dev, 0x000004da, 0x00000000);
  2133. nv_icmd(dev, 0x000004db, 0x00000000);
  2134. nv_icmd(dev, 0x000004dc, 0x00000000);
  2135. nv_icmd(dev, 0x000004dd, 0x00000000);
  2136. nv_icmd(dev, 0x000004de, 0x00000000);
  2137. nv_icmd(dev, 0x000004df, 0x00000000);
  2138. nv_icmd(dev, 0x00000720, 0x00000000);
  2139. nv_icmd(dev, 0x00000721, 0x00000000);
  2140. nv_icmd(dev, 0x00000722, 0x00000000);
  2141. nv_icmd(dev, 0x00000723, 0x00000000);
  2142. nv_icmd(dev, 0x00000724, 0x00000000);
  2143. nv_icmd(dev, 0x00000725, 0x00000000);
  2144. nv_icmd(dev, 0x00000726, 0x00000000);
  2145. nv_icmd(dev, 0x00000727, 0x00000000);
  2146. nv_icmd(dev, 0x00000728, 0x00000000);
  2147. nv_icmd(dev, 0x00000729, 0x00000000);
  2148. nv_icmd(dev, 0x0000072a, 0x00000000);
  2149. nv_icmd(dev, 0x0000072b, 0x00000000);
  2150. nv_icmd(dev, 0x0000072c, 0x00000000);
  2151. nv_icmd(dev, 0x0000072d, 0x00000000);
  2152. nv_icmd(dev, 0x0000072e, 0x00000000);
  2153. nv_icmd(dev, 0x0000072f, 0x00000000);
  2154. nv_icmd(dev, 0x000008c0, 0x00000000);
  2155. nv_icmd(dev, 0x000008c1, 0x00000000);
  2156. nv_icmd(dev, 0x000008c2, 0x00000000);
  2157. nv_icmd(dev, 0x000008c3, 0x00000000);
  2158. nv_icmd(dev, 0x000008c4, 0x00000000);
  2159. nv_icmd(dev, 0x000008c5, 0x00000000);
  2160. nv_icmd(dev, 0x000008c6, 0x00000000);
  2161. nv_icmd(dev, 0x000008c7, 0x00000000);
  2162. nv_icmd(dev, 0x000008c8, 0x00000000);
  2163. nv_icmd(dev, 0x000008c9, 0x00000000);
  2164. nv_icmd(dev, 0x000008ca, 0x00000000);
  2165. nv_icmd(dev, 0x000008cb, 0x00000000);
  2166. nv_icmd(dev, 0x000008cc, 0x00000000);
  2167. nv_icmd(dev, 0x000008cd, 0x00000000);
  2168. nv_icmd(dev, 0x000008ce, 0x00000000);
  2169. nv_icmd(dev, 0x000008cf, 0x00000000);
  2170. nv_icmd(dev, 0x00000890, 0x00000000);
  2171. nv_icmd(dev, 0x00000891, 0x00000000);
  2172. nv_icmd(dev, 0x00000892, 0x00000000);
  2173. nv_icmd(dev, 0x00000893, 0x00000000);
  2174. nv_icmd(dev, 0x00000894, 0x00000000);
  2175. nv_icmd(dev, 0x00000895, 0x00000000);
  2176. nv_icmd(dev, 0x00000896, 0x00000000);
  2177. nv_icmd(dev, 0x00000897, 0x00000000);
  2178. nv_icmd(dev, 0x00000898, 0x00000000);
  2179. nv_icmd(dev, 0x00000899, 0x00000000);
  2180. nv_icmd(dev, 0x0000089a, 0x00000000);
  2181. nv_icmd(dev, 0x0000089b, 0x00000000);
  2182. nv_icmd(dev, 0x0000089c, 0x00000000);
  2183. nv_icmd(dev, 0x0000089d, 0x00000000);
  2184. nv_icmd(dev, 0x0000089e, 0x00000000);
  2185. nv_icmd(dev, 0x0000089f, 0x00000000);
  2186. nv_icmd(dev, 0x000008e0, 0x00000000);
  2187. nv_icmd(dev, 0x000008e1, 0x00000000);
  2188. nv_icmd(dev, 0x000008e2, 0x00000000);
  2189. nv_icmd(dev, 0x000008e3, 0x00000000);
  2190. nv_icmd(dev, 0x000008e4, 0x00000000);
  2191. nv_icmd(dev, 0x000008e5, 0x00000000);
  2192. nv_icmd(dev, 0x000008e6, 0x00000000);
  2193. nv_icmd(dev, 0x000008e7, 0x00000000);
  2194. nv_icmd(dev, 0x000008e8, 0x00000000);
  2195. nv_icmd(dev, 0x000008e9, 0x00000000);
  2196. nv_icmd(dev, 0x000008ea, 0x00000000);
  2197. nv_icmd(dev, 0x000008eb, 0x00000000);
  2198. nv_icmd(dev, 0x000008ec, 0x00000000);
  2199. nv_icmd(dev, 0x000008ed, 0x00000000);
  2200. nv_icmd(dev, 0x000008ee, 0x00000000);
  2201. nv_icmd(dev, 0x000008ef, 0x00000000);
  2202. nv_icmd(dev, 0x000008a0, 0x00000000);
  2203. nv_icmd(dev, 0x000008a1, 0x00000000);
  2204. nv_icmd(dev, 0x000008a2, 0x00000000);
  2205. nv_icmd(dev, 0x000008a3, 0x00000000);
  2206. nv_icmd(dev, 0x000008a4, 0x00000000);
  2207. nv_icmd(dev, 0x000008a5, 0x00000000);
  2208. nv_icmd(dev, 0x000008a6, 0x00000000);
  2209. nv_icmd(dev, 0x000008a7, 0x00000000);
  2210. nv_icmd(dev, 0x000008a8, 0x00000000);
  2211. nv_icmd(dev, 0x000008a9, 0x00000000);
  2212. nv_icmd(dev, 0x000008aa, 0x00000000);
  2213. nv_icmd(dev, 0x000008ab, 0x00000000);
  2214. nv_icmd(dev, 0x000008ac, 0x00000000);
  2215. nv_icmd(dev, 0x000008ad, 0x00000000);
  2216. nv_icmd(dev, 0x000008ae, 0x00000000);
  2217. nv_icmd(dev, 0x000008af, 0x00000000);
  2218. nv_icmd(dev, 0x000008f0, 0x00000000);
  2219. nv_icmd(dev, 0x000008f1, 0x00000000);
  2220. nv_icmd(dev, 0x000008f2, 0x00000000);
  2221. nv_icmd(dev, 0x000008f3, 0x00000000);
  2222. nv_icmd(dev, 0x000008f4, 0x00000000);
  2223. nv_icmd(dev, 0x000008f5, 0x00000000);
  2224. nv_icmd(dev, 0x000008f6, 0x00000000);
  2225. nv_icmd(dev, 0x000008f7, 0x00000000);
  2226. nv_icmd(dev, 0x000008f8, 0x00000000);
  2227. nv_icmd(dev, 0x000008f9, 0x00000000);
  2228. nv_icmd(dev, 0x000008fa, 0x00000000);
  2229. nv_icmd(dev, 0x000008fb, 0x00000000);
  2230. nv_icmd(dev, 0x000008fc, 0x00000000);
  2231. nv_icmd(dev, 0x000008fd, 0x00000000);
  2232. nv_icmd(dev, 0x000008fe, 0x00000000);
  2233. nv_icmd(dev, 0x000008ff, 0x00000000);
  2234. nv_icmd(dev, 0x0000094c, 0x000000ff);
  2235. nv_icmd(dev, 0x0000094d, 0xffffffff);
  2236. nv_icmd(dev, 0x0000094e, 0x00000002);
  2237. nv_icmd(dev, 0x000002ec, 0x00000001);
  2238. nv_icmd(dev, 0x00000303, 0x00000001);
  2239. nv_icmd(dev, 0x000002e6, 0x00000001);
  2240. nv_icmd(dev, 0x00000466, 0x00000052);
  2241. nv_icmd(dev, 0x00000301, 0x3f800000);
  2242. nv_icmd(dev, 0x00000304, 0x30201000);
  2243. nv_icmd(dev, 0x00000305, 0x70605040);
  2244. nv_icmd(dev, 0x00000306, 0xb8a89888);
  2245. nv_icmd(dev, 0x00000307, 0xf8e8d8c8);
  2246. nv_icmd(dev, 0x0000030a, 0x00ffff00);
  2247. nv_icmd(dev, 0x0000030b, 0x0000001a);
  2248. nv_icmd(dev, 0x0000030c, 0x00000001);
  2249. nv_icmd(dev, 0x00000318, 0x00000001);
  2250. nv_icmd(dev, 0x00000340, 0x00000000);
  2251. nv_icmd(dev, 0x00000375, 0x00000001);
  2252. nv_icmd(dev, 0x00000351, 0x00000100);
  2253. nv_icmd(dev, 0x0000037d, 0x00000006);
  2254. nv_icmd(dev, 0x000003a0, 0x00000002);
  2255. nv_icmd(dev, 0x000003aa, 0x00000001);
  2256. nv_icmd(dev, 0x000003a9, 0x00000001);
  2257. nv_icmd(dev, 0x00000380, 0x00000001);
  2258. nv_icmd(dev, 0x00000360, 0x00000040);
  2259. nv_icmd(dev, 0x00000366, 0x00000000);
  2260. nv_icmd(dev, 0x00000367, 0x00000000);
  2261. nv_icmd(dev, 0x00000368, 0x00001fff);
  2262. nv_icmd(dev, 0x00000370, 0x00000000);
  2263. nv_icmd(dev, 0x00000371, 0x00000000);
  2264. nv_icmd(dev, 0x00000372, 0x003fffff);
  2265. nv_icmd(dev, 0x0000037a, 0x00000012);
  2266. nv_icmd(dev, 0x000005e0, 0x00000022);
  2267. nv_icmd(dev, 0x000005e1, 0x00000022);
  2268. nv_icmd(dev, 0x000005e2, 0x00000022);
  2269. nv_icmd(dev, 0x000005e3, 0x00000022);
  2270. nv_icmd(dev, 0x000005e4, 0x00000022);
  2271. nv_icmd(dev, 0x00000619, 0x00000003);
  2272. nv_icmd(dev, 0x00000811, 0x00000003);
  2273. nv_icmd(dev, 0x00000812, 0x00000004);
  2274. nv_icmd(dev, 0x00000813, 0x00000006);
  2275. nv_icmd(dev, 0x00000814, 0x00000008);
  2276. nv_icmd(dev, 0x00000815, 0x0000000b);
  2277. nv_icmd(dev, 0x00000800, 0x00000001);
  2278. nv_icmd(dev, 0x00000801, 0x00000001);
  2279. nv_icmd(dev, 0x00000802, 0x00000001);
  2280. nv_icmd(dev, 0x00000803, 0x00000001);
  2281. nv_icmd(dev, 0x00000804, 0x00000001);
  2282. nv_icmd(dev, 0x00000805, 0x00000001);
  2283. nv_icmd(dev, 0x00000632, 0x00000001);
  2284. nv_icmd(dev, 0x00000633, 0x00000002);
  2285. nv_icmd(dev, 0x00000634, 0x00000003);
  2286. nv_icmd(dev, 0x00000635, 0x00000004);
  2287. nv_icmd(dev, 0x00000654, 0x3f800000);
  2288. nv_icmd(dev, 0x00000657, 0x3f800000);
  2289. nv_icmd(dev, 0x00000655, 0x3f800000);
  2290. nv_icmd(dev, 0x00000656, 0x3f800000);
  2291. nv_icmd(dev, 0x000006cd, 0x3f800000);
  2292. nv_icmd(dev, 0x000007f5, 0x3f800000);
  2293. nv_icmd(dev, 0x000007dc, 0x39291909);
  2294. nv_icmd(dev, 0x000007dd, 0x79695949);
  2295. nv_icmd(dev, 0x000007de, 0xb9a99989);
  2296. nv_icmd(dev, 0x000007df, 0xf9e9d9c9);
  2297. nv_icmd(dev, 0x000007e8, 0x00003210);
  2298. nv_icmd(dev, 0x000007e9, 0x00007654);
  2299. nv_icmd(dev, 0x000007ea, 0x00000098);
  2300. nv_icmd(dev, 0x000007ec, 0x39291909);
  2301. nv_icmd(dev, 0x000007ed, 0x79695949);
  2302. nv_icmd(dev, 0x000007ee, 0xb9a99989);
  2303. nv_icmd(dev, 0x000007ef, 0xf9e9d9c9);
  2304. nv_icmd(dev, 0x000007f0, 0x00003210);
  2305. nv_icmd(dev, 0x000007f1, 0x00007654);
  2306. nv_icmd(dev, 0x000007f2, 0x00000098);
  2307. nv_icmd(dev, 0x000005a5, 0x00000001);
  2308. nv_icmd(dev, 0x00000980, 0x00000000);
  2309. nv_icmd(dev, 0x00000981, 0x00000000);
  2310. nv_icmd(dev, 0x00000982, 0x00000000);
  2311. nv_icmd(dev, 0x00000983, 0x00000000);
  2312. nv_icmd(dev, 0x00000984, 0x00000000);
  2313. nv_icmd(dev, 0x00000985, 0x00000000);
  2314. nv_icmd(dev, 0x00000986, 0x00000000);
  2315. nv_icmd(dev, 0x00000987, 0x00000000);
  2316. nv_icmd(dev, 0x00000988, 0x00000000);
  2317. nv_icmd(dev, 0x00000989, 0x00000000);
  2318. nv_icmd(dev, 0x0000098a, 0x00000000);
  2319. nv_icmd(dev, 0x0000098b, 0x00000000);
  2320. nv_icmd(dev, 0x0000098c, 0x00000000);
  2321. nv_icmd(dev, 0x0000098d, 0x00000000);
  2322. nv_icmd(dev, 0x0000098e, 0x00000000);
  2323. nv_icmd(dev, 0x0000098f, 0x00000000);
  2324. nv_icmd(dev, 0x00000990, 0x00000000);
  2325. nv_icmd(dev, 0x00000991, 0x00000000);
  2326. nv_icmd(dev, 0x00000992, 0x00000000);
  2327. nv_icmd(dev, 0x00000993, 0x00000000);
  2328. nv_icmd(dev, 0x00000994, 0x00000000);
  2329. nv_icmd(dev, 0x00000995, 0x00000000);
  2330. nv_icmd(dev, 0x00000996, 0x00000000);
  2331. nv_icmd(dev, 0x00000997, 0x00000000);
  2332. nv_icmd(dev, 0x00000998, 0x00000000);
  2333. nv_icmd(dev, 0x00000999, 0x00000000);
  2334. nv_icmd(dev, 0x0000099a, 0x00000000);
  2335. nv_icmd(dev, 0x0000099b, 0x00000000);
  2336. nv_icmd(dev, 0x0000099c, 0x00000000);
  2337. nv_icmd(dev, 0x0000099d, 0x00000000);
  2338. nv_icmd(dev, 0x0000099e, 0x00000000);
  2339. nv_icmd(dev, 0x0000099f, 0x00000000);
  2340. nv_icmd(dev, 0x000009a0, 0x00000000);
  2341. nv_icmd(dev, 0x000009a1, 0x00000000);
  2342. nv_icmd(dev, 0x000009a2, 0x00000000);
  2343. nv_icmd(dev, 0x000009a3, 0x00000000);
  2344. nv_icmd(dev, 0x000009a4, 0x00000000);
  2345. nv_icmd(dev, 0x000009a5, 0x00000000);
  2346. nv_icmd(dev, 0x000009a6, 0x00000000);
  2347. nv_icmd(dev, 0x000009a7, 0x00000000);
  2348. nv_icmd(dev, 0x000009a8, 0x00000000);
  2349. nv_icmd(dev, 0x000009a9, 0x00000000);
  2350. nv_icmd(dev, 0x000009aa, 0x00000000);
  2351. nv_icmd(dev, 0x000009ab, 0x00000000);
  2352. nv_icmd(dev, 0x000009ac, 0x00000000);
  2353. nv_icmd(dev, 0x000009ad, 0x00000000);
  2354. nv_icmd(dev, 0x000009ae, 0x00000000);
  2355. nv_icmd(dev, 0x000009af, 0x00000000);
  2356. nv_icmd(dev, 0x000009b0, 0x00000000);
  2357. nv_icmd(dev, 0x000009b1, 0x00000000);
  2358. nv_icmd(dev, 0x000009b2, 0x00000000);
  2359. nv_icmd(dev, 0x000009b3, 0x00000000);
  2360. nv_icmd(dev, 0x000009b4, 0x00000000);
  2361. nv_icmd(dev, 0x000009b5, 0x00000000);
  2362. nv_icmd(dev, 0x000009b6, 0x00000000);
  2363. nv_icmd(dev, 0x000009b7, 0x00000000);
  2364. nv_icmd(dev, 0x000009b8, 0x00000000);
  2365. nv_icmd(dev, 0x000009b9, 0x00000000);
  2366. nv_icmd(dev, 0x000009ba, 0x00000000);
  2367. nv_icmd(dev, 0x000009bb, 0x00000000);
  2368. nv_icmd(dev, 0x000009bc, 0x00000000);
  2369. nv_icmd(dev, 0x000009bd, 0x00000000);
  2370. nv_icmd(dev, 0x000009be, 0x00000000);
  2371. nv_icmd(dev, 0x000009bf, 0x00000000);
  2372. nv_icmd(dev, 0x000009c0, 0x00000000);
  2373. nv_icmd(dev, 0x000009c1, 0x00000000);
  2374. nv_icmd(dev, 0x000009c2, 0x00000000);
  2375. nv_icmd(dev, 0x000009c3, 0x00000000);
  2376. nv_icmd(dev, 0x000009c4, 0x00000000);
  2377. nv_icmd(dev, 0x000009c5, 0x00000000);
  2378. nv_icmd(dev, 0x000009c6, 0x00000000);
  2379. nv_icmd(dev, 0x000009c7, 0x00000000);
  2380. nv_icmd(dev, 0x000009c8, 0x00000000);
  2381. nv_icmd(dev, 0x000009c9, 0x00000000);
  2382. nv_icmd(dev, 0x000009ca, 0x00000000);
  2383. nv_icmd(dev, 0x000009cb, 0x00000000);
  2384. nv_icmd(dev, 0x000009cc, 0x00000000);
  2385. nv_icmd(dev, 0x000009cd, 0x00000000);
  2386. nv_icmd(dev, 0x000009ce, 0x00000000);
  2387. nv_icmd(dev, 0x000009cf, 0x00000000);
  2388. nv_icmd(dev, 0x000009d0, 0x00000000);
  2389. nv_icmd(dev, 0x000009d1, 0x00000000);
  2390. nv_icmd(dev, 0x000009d2, 0x00000000);
  2391. nv_icmd(dev, 0x000009d3, 0x00000000);
  2392. nv_icmd(dev, 0x000009d4, 0x00000000);
  2393. nv_icmd(dev, 0x000009d5, 0x00000000);
  2394. nv_icmd(dev, 0x000009d6, 0x00000000);
  2395. nv_icmd(dev, 0x000009d7, 0x00000000);
  2396. nv_icmd(dev, 0x000009d8, 0x00000000);
  2397. nv_icmd(dev, 0x000009d9, 0x00000000);
  2398. nv_icmd(dev, 0x000009da, 0x00000000);
  2399. nv_icmd(dev, 0x000009db, 0x00000000);
  2400. nv_icmd(dev, 0x000009dc, 0x00000000);
  2401. nv_icmd(dev, 0x000009dd, 0x00000000);
  2402. nv_icmd(dev, 0x000009de, 0x00000000);
  2403. nv_icmd(dev, 0x000009df, 0x00000000);
  2404. nv_icmd(dev, 0x000009e0, 0x00000000);
  2405. nv_icmd(dev, 0x000009e1, 0x00000000);
  2406. nv_icmd(dev, 0x000009e2, 0x00000000);
  2407. nv_icmd(dev, 0x000009e3, 0x00000000);
  2408. nv_icmd(dev, 0x000009e4, 0x00000000);
  2409. nv_icmd(dev, 0x000009e5, 0x00000000);
  2410. nv_icmd(dev, 0x000009e6, 0x00000000);
  2411. nv_icmd(dev, 0x000009e7, 0x00000000);
  2412. nv_icmd(dev, 0x000009e8, 0x00000000);
  2413. nv_icmd(dev, 0x000009e9, 0x00000000);
  2414. nv_icmd(dev, 0x000009ea, 0x00000000);
  2415. nv_icmd(dev, 0x000009eb, 0x00000000);
  2416. nv_icmd(dev, 0x000009ec, 0x00000000);
  2417. nv_icmd(dev, 0x000009ed, 0x00000000);
  2418. nv_icmd(dev, 0x000009ee, 0x00000000);
  2419. nv_icmd(dev, 0x000009ef, 0x00000000);
  2420. nv_icmd(dev, 0x000009f0, 0x00000000);
  2421. nv_icmd(dev, 0x000009f1, 0x00000000);
  2422. nv_icmd(dev, 0x000009f2, 0x00000000);
  2423. nv_icmd(dev, 0x000009f3, 0x00000000);
  2424. nv_icmd(dev, 0x000009f4, 0x00000000);
  2425. nv_icmd(dev, 0x000009f5, 0x00000000);
  2426. nv_icmd(dev, 0x000009f6, 0x00000000);
  2427. nv_icmd(dev, 0x000009f7, 0x00000000);
  2428. nv_icmd(dev, 0x000009f8, 0x00000000);
  2429. nv_icmd(dev, 0x000009f9, 0x00000000);
  2430. nv_icmd(dev, 0x000009fa, 0x00000000);
  2431. nv_icmd(dev, 0x000009fb, 0x00000000);
  2432. nv_icmd(dev, 0x000009fc, 0x00000000);
  2433. nv_icmd(dev, 0x000009fd, 0x00000000);
  2434. nv_icmd(dev, 0x000009fe, 0x00000000);
  2435. nv_icmd(dev, 0x000009ff, 0x00000000);
  2436. nv_icmd(dev, 0x00000468, 0x00000004);
  2437. nv_icmd(dev, 0x0000046c, 0x00000001);
  2438. nv_icmd(dev, 0x00000470, 0x00000000);
  2439. nv_icmd(dev, 0x00000471, 0x00000000);
  2440. nv_icmd(dev, 0x00000472, 0x00000000);
  2441. nv_icmd(dev, 0x00000473, 0x00000000);
  2442. nv_icmd(dev, 0x00000474, 0x00000000);
  2443. nv_icmd(dev, 0x00000475, 0x00000000);
  2444. nv_icmd(dev, 0x00000476, 0x00000000);
  2445. nv_icmd(dev, 0x00000477, 0x00000000);
  2446. nv_icmd(dev, 0x00000478, 0x00000000);
  2447. nv_icmd(dev, 0x00000479, 0x00000000);
  2448. nv_icmd(dev, 0x0000047a, 0x00000000);
  2449. nv_icmd(dev, 0x0000047b, 0x00000000);
  2450. nv_icmd(dev, 0x0000047c, 0x00000000);
  2451. nv_icmd(dev, 0x0000047d, 0x00000000);
  2452. nv_icmd(dev, 0x0000047e, 0x00000000);
  2453. nv_icmd(dev, 0x0000047f, 0x00000000);
  2454. nv_icmd(dev, 0x00000480, 0x00000000);
  2455. nv_icmd(dev, 0x00000481, 0x00000000);
  2456. nv_icmd(dev, 0x00000482, 0x00000000);
  2457. nv_icmd(dev, 0x00000483, 0x00000000);
  2458. nv_icmd(dev, 0x00000484, 0x00000000);
  2459. nv_icmd(dev, 0x00000485, 0x00000000);
  2460. nv_icmd(dev, 0x00000486, 0x00000000);
  2461. nv_icmd(dev, 0x00000487, 0x00000000);
  2462. nv_icmd(dev, 0x00000488, 0x00000000);
  2463. nv_icmd(dev, 0x00000489, 0x00000000);
  2464. nv_icmd(dev, 0x0000048a, 0x00000000);
  2465. nv_icmd(dev, 0x0000048b, 0x00000000);
  2466. nv_icmd(dev, 0x0000048c, 0x00000000);
  2467. nv_icmd(dev, 0x0000048d, 0x00000000);
  2468. nv_icmd(dev, 0x0000048e, 0x00000000);
  2469. nv_icmd(dev, 0x0000048f, 0x00000000);
  2470. nv_icmd(dev, 0x00000490, 0x00000000);
  2471. nv_icmd(dev, 0x00000491, 0x00000000);
  2472. nv_icmd(dev, 0x00000492, 0x00000000);
  2473. nv_icmd(dev, 0x00000493, 0x00000000);
  2474. nv_icmd(dev, 0x00000494, 0x00000000);
  2475. nv_icmd(dev, 0x00000495, 0x00000000);
  2476. nv_icmd(dev, 0x00000496, 0x00000000);
  2477. nv_icmd(dev, 0x00000497, 0x00000000);
  2478. nv_icmd(dev, 0x00000498, 0x00000000);
  2479. nv_icmd(dev, 0x00000499, 0x00000000);
  2480. nv_icmd(dev, 0x0000049a, 0x00000000);
  2481. nv_icmd(dev, 0x0000049b, 0x00000000);
  2482. nv_icmd(dev, 0x0000049c, 0x00000000);
  2483. nv_icmd(dev, 0x0000049d, 0x00000000);
  2484. nv_icmd(dev, 0x0000049e, 0x00000000);
  2485. nv_icmd(dev, 0x0000049f, 0x00000000);
  2486. nv_icmd(dev, 0x000004a0, 0x00000000);
  2487. nv_icmd(dev, 0x000004a1, 0x00000000);
  2488. nv_icmd(dev, 0x000004a2, 0x00000000);
  2489. nv_icmd(dev, 0x000004a3, 0x00000000);
  2490. nv_icmd(dev, 0x000004a4, 0x00000000);
  2491. nv_icmd(dev, 0x000004a5, 0x00000000);
  2492. nv_icmd(dev, 0x000004a6, 0x00000000);
  2493. nv_icmd(dev, 0x000004a7, 0x00000000);
  2494. nv_icmd(dev, 0x000004a8, 0x00000000);
  2495. nv_icmd(dev, 0x000004a9, 0x00000000);
  2496. nv_icmd(dev, 0x000004aa, 0x00000000);
  2497. nv_icmd(dev, 0x000004ab, 0x00000000);
  2498. nv_icmd(dev, 0x000004ac, 0x00000000);
  2499. nv_icmd(dev, 0x000004ad, 0x00000000);
  2500. nv_icmd(dev, 0x000004ae, 0x00000000);
  2501. nv_icmd(dev, 0x000004af, 0x00000000);
  2502. nv_icmd(dev, 0x000004b0, 0x00000000);
  2503. nv_icmd(dev, 0x000004b1, 0x00000000);
  2504. nv_icmd(dev, 0x000004b2, 0x00000000);
  2505. nv_icmd(dev, 0x000004b3, 0x00000000);
  2506. nv_icmd(dev, 0x000004b4, 0x00000000);
  2507. nv_icmd(dev, 0x000004b5, 0x00000000);
  2508. nv_icmd(dev, 0x000004b6, 0x00000000);
  2509. nv_icmd(dev, 0x000004b7, 0x00000000);
  2510. nv_icmd(dev, 0x000004b8, 0x00000000);
  2511. nv_icmd(dev, 0x000004b9, 0x00000000);
  2512. nv_icmd(dev, 0x000004ba, 0x00000000);
  2513. nv_icmd(dev, 0x000004bb, 0x00000000);
  2514. nv_icmd(dev, 0x000004bc, 0x00000000);
  2515. nv_icmd(dev, 0x000004bd, 0x00000000);
  2516. nv_icmd(dev, 0x000004be, 0x00000000);
  2517. nv_icmd(dev, 0x000004bf, 0x00000000);
  2518. nv_icmd(dev, 0x000004c0, 0x00000000);
  2519. nv_icmd(dev, 0x000004c1, 0x00000000);
  2520. nv_icmd(dev, 0x000004c2, 0x00000000);
  2521. nv_icmd(dev, 0x000004c3, 0x00000000);
  2522. nv_icmd(dev, 0x000004c4, 0x00000000);
  2523. nv_icmd(dev, 0x000004c5, 0x00000000);
  2524. nv_icmd(dev, 0x000004c6, 0x00000000);
  2525. nv_icmd(dev, 0x000004c7, 0x00000000);
  2526. nv_icmd(dev, 0x000004c8, 0x00000000);
  2527. nv_icmd(dev, 0x000004c9, 0x00000000);
  2528. nv_icmd(dev, 0x000004ca, 0x00000000);
  2529. nv_icmd(dev, 0x000004cb, 0x00000000);
  2530. nv_icmd(dev, 0x000004cc, 0x00000000);
  2531. nv_icmd(dev, 0x000004cd, 0x00000000);
  2532. nv_icmd(dev, 0x000004ce, 0x00000000);
  2533. nv_icmd(dev, 0x000004cf, 0x00000000);
  2534. nv_icmd(dev, 0x00000510, 0x3f800000);
  2535. nv_icmd(dev, 0x00000511, 0x3f800000);
  2536. nv_icmd(dev, 0x00000512, 0x3f800000);
  2537. nv_icmd(dev, 0x00000513, 0x3f800000);
  2538. nv_icmd(dev, 0x00000514, 0x3f800000);
  2539. nv_icmd(dev, 0x00000515, 0x3f800000);
  2540. nv_icmd(dev, 0x00000516, 0x3f800000);
  2541. nv_icmd(dev, 0x00000517, 0x3f800000);
  2542. nv_icmd(dev, 0x00000518, 0x3f800000);
  2543. nv_icmd(dev, 0x00000519, 0x3f800000);
  2544. nv_icmd(dev, 0x0000051a, 0x3f800000);
  2545. nv_icmd(dev, 0x0000051b, 0x3f800000);
  2546. nv_icmd(dev, 0x0000051c, 0x3f800000);
  2547. nv_icmd(dev, 0x0000051d, 0x3f800000);
  2548. nv_icmd(dev, 0x0000051e, 0x3f800000);
  2549. nv_icmd(dev, 0x0000051f, 0x3f800000);
  2550. nv_icmd(dev, 0x00000520, 0x000002b6);
  2551. nv_icmd(dev, 0x00000529, 0x00000001);
  2552. nv_icmd(dev, 0x00000530, 0xffff0000);
  2553. nv_icmd(dev, 0x00000531, 0xffff0000);
  2554. nv_icmd(dev, 0x00000532, 0xffff0000);
  2555. nv_icmd(dev, 0x00000533, 0xffff0000);
  2556. nv_icmd(dev, 0x00000534, 0xffff0000);
  2557. nv_icmd(dev, 0x00000535, 0xffff0000);
  2558. nv_icmd(dev, 0x00000536, 0xffff0000);
  2559. nv_icmd(dev, 0x00000537, 0xffff0000);
  2560. nv_icmd(dev, 0x00000538, 0xffff0000);
  2561. nv_icmd(dev, 0x00000539, 0xffff0000);
  2562. nv_icmd(dev, 0x0000053a, 0xffff0000);
  2563. nv_icmd(dev, 0x0000053b, 0xffff0000);
  2564. nv_icmd(dev, 0x0000053c, 0xffff0000);
  2565. nv_icmd(dev, 0x0000053d, 0xffff0000);
  2566. nv_icmd(dev, 0x0000053e, 0xffff0000);
  2567. nv_icmd(dev, 0x0000053f, 0xffff0000);
  2568. nv_icmd(dev, 0x00000585, 0x0000003f);
  2569. nv_icmd(dev, 0x00000576, 0x00000003);
  2570. if (dev_priv->chipset == 0xc1 ||
  2571. dev_priv->chipset == 0xd9)
  2572. nv_icmd(dev, 0x0000057b, 0x00000059);
  2573. nv_icmd(dev, 0x00000586, 0x00000040);
  2574. nv_icmd(dev, 0x00000582, 0x00000080);
  2575. nv_icmd(dev, 0x00000583, 0x00000080);
  2576. nv_icmd(dev, 0x000005c2, 0x00000001);
  2577. nv_icmd(dev, 0x00000638, 0x00000001);
  2578. nv_icmd(dev, 0x00000639, 0x00000001);
  2579. nv_icmd(dev, 0x0000063a, 0x00000002);
  2580. nv_icmd(dev, 0x0000063b, 0x00000001);
  2581. nv_icmd(dev, 0x0000063c, 0x00000001);
  2582. nv_icmd(dev, 0x0000063d, 0x00000002);
  2583. nv_icmd(dev, 0x0000063e, 0x00000001);
  2584. nv_icmd(dev, 0x000008b8, 0x00000001);
  2585. nv_icmd(dev, 0x000008b9, 0x00000001);
  2586. nv_icmd(dev, 0x000008ba, 0x00000001);
  2587. nv_icmd(dev, 0x000008bb, 0x00000001);
  2588. nv_icmd(dev, 0x000008bc, 0x00000001);
  2589. nv_icmd(dev, 0x000008bd, 0x00000001);
  2590. nv_icmd(dev, 0x000008be, 0x00000001);
  2591. nv_icmd(dev, 0x000008bf, 0x00000001);
  2592. nv_icmd(dev, 0x00000900, 0x00000001);
  2593. nv_icmd(dev, 0x00000901, 0x00000001);
  2594. nv_icmd(dev, 0x00000902, 0x00000001);
  2595. nv_icmd(dev, 0x00000903, 0x00000001);
  2596. nv_icmd(dev, 0x00000904, 0x00000001);
  2597. nv_icmd(dev, 0x00000905, 0x00000001);
  2598. nv_icmd(dev, 0x00000906, 0x00000001);
  2599. nv_icmd(dev, 0x00000907, 0x00000001);
  2600. nv_icmd(dev, 0x00000908, 0x00000002);
  2601. nv_icmd(dev, 0x00000909, 0x00000002);
  2602. nv_icmd(dev, 0x0000090a, 0x00000002);
  2603. nv_icmd(dev, 0x0000090b, 0x00000002);
  2604. nv_icmd(dev, 0x0000090c, 0x00000002);
  2605. nv_icmd(dev, 0x0000090d, 0x00000002);
  2606. nv_icmd(dev, 0x0000090e, 0x00000002);
  2607. nv_icmd(dev, 0x0000090f, 0x00000002);
  2608. nv_icmd(dev, 0x00000910, 0x00000001);
  2609. nv_icmd(dev, 0x00000911, 0x00000001);
  2610. nv_icmd(dev, 0x00000912, 0x00000001);
  2611. nv_icmd(dev, 0x00000913, 0x00000001);
  2612. nv_icmd(dev, 0x00000914, 0x00000001);
  2613. nv_icmd(dev, 0x00000915, 0x00000001);
  2614. nv_icmd(dev, 0x00000916, 0x00000001);
  2615. nv_icmd(dev, 0x00000917, 0x00000001);
  2616. nv_icmd(dev, 0x00000918, 0x00000001);
  2617. nv_icmd(dev, 0x00000919, 0x00000001);
  2618. nv_icmd(dev, 0x0000091a, 0x00000001);
  2619. nv_icmd(dev, 0x0000091b, 0x00000001);
  2620. nv_icmd(dev, 0x0000091c, 0x00000001);
  2621. nv_icmd(dev, 0x0000091d, 0x00000001);
  2622. nv_icmd(dev, 0x0000091e, 0x00000001);
  2623. nv_icmd(dev, 0x0000091f, 0x00000001);
  2624. nv_icmd(dev, 0x00000920, 0x00000002);
  2625. nv_icmd(dev, 0x00000921, 0x00000002);
  2626. nv_icmd(dev, 0x00000922, 0x00000002);
  2627. nv_icmd(dev, 0x00000923, 0x00000002);
  2628. nv_icmd(dev, 0x00000924, 0x00000002);
  2629. nv_icmd(dev, 0x00000925, 0x00000002);
  2630. nv_icmd(dev, 0x00000926, 0x00000002);
  2631. nv_icmd(dev, 0x00000927, 0x00000002);
  2632. nv_icmd(dev, 0x00000928, 0x00000001);
  2633. nv_icmd(dev, 0x00000929, 0x00000001);
  2634. nv_icmd(dev, 0x0000092a, 0x00000001);
  2635. nv_icmd(dev, 0x0000092b, 0x00000001);
  2636. nv_icmd(dev, 0x0000092c, 0x00000001);
  2637. nv_icmd(dev, 0x0000092d, 0x00000001);
  2638. nv_icmd(dev, 0x0000092e, 0x00000001);
  2639. nv_icmd(dev, 0x0000092f, 0x00000001);
  2640. nv_icmd(dev, 0x00000648, 0x00000001);
  2641. nv_icmd(dev, 0x00000649, 0x00000001);
  2642. nv_icmd(dev, 0x0000064a, 0x00000001);
  2643. nv_icmd(dev, 0x0000064b, 0x00000001);
  2644. nv_icmd(dev, 0x0000064c, 0x00000001);
  2645. nv_icmd(dev, 0x0000064d, 0x00000001);
  2646. nv_icmd(dev, 0x0000064e, 0x00000001);
  2647. nv_icmd(dev, 0x0000064f, 0x00000001);
  2648. nv_icmd(dev, 0x00000650, 0x00000001);
  2649. nv_icmd(dev, 0x00000658, 0x0000000f);
  2650. nv_icmd(dev, 0x000007ff, 0x0000000a);
  2651. nv_icmd(dev, 0x0000066a, 0x40000000);
  2652. nv_icmd(dev, 0x0000066b, 0x10000000);
  2653. nv_icmd(dev, 0x0000066c, 0xffff0000);
  2654. nv_icmd(dev, 0x0000066d, 0xffff0000);
  2655. nv_icmd(dev, 0x000007af, 0x00000008);
  2656. nv_icmd(dev, 0x000007b0, 0x00000008);
  2657. nv_icmd(dev, 0x000007f6, 0x00000001);
  2658. nv_icmd(dev, 0x000006b2, 0x00000055);
  2659. nv_icmd(dev, 0x000007ad, 0x00000003);
  2660. nv_icmd(dev, 0x00000937, 0x00000001);
  2661. nv_icmd(dev, 0x00000971, 0x00000008);
  2662. nv_icmd(dev, 0x00000972, 0x00000040);
  2663. nv_icmd(dev, 0x00000973, 0x0000012c);
  2664. nv_icmd(dev, 0x0000097c, 0x00000040);
  2665. nv_icmd(dev, 0x00000979, 0x00000003);
  2666. nv_icmd(dev, 0x00000975, 0x00000020);
  2667. nv_icmd(dev, 0x00000976, 0x00000001);
  2668. nv_icmd(dev, 0x00000977, 0x00000020);
  2669. nv_icmd(dev, 0x00000978, 0x00000001);
  2670. nv_icmd(dev, 0x00000957, 0x00000003);
  2671. nv_icmd(dev, 0x0000095e, 0x20164010);
  2672. nv_icmd(dev, 0x0000095f, 0x00000020);
  2673. if (dev_priv->chipset == 0xd9)
  2674. nv_icmd(dev, 0x0000097d, 0x00000020);
  2675. nv_icmd(dev, 0x00000683, 0x00000006);
  2676. nv_icmd(dev, 0x00000685, 0x003fffff);
  2677. nv_icmd(dev, 0x00000687, 0x00000c48);
  2678. nv_icmd(dev, 0x000006a0, 0x00000005);
  2679. nv_icmd(dev, 0x00000840, 0x00300008);
  2680. nv_icmd(dev, 0x00000841, 0x04000080);
  2681. nv_icmd(dev, 0x00000842, 0x00300008);
  2682. nv_icmd(dev, 0x00000843, 0x04000080);
  2683. nv_icmd(dev, 0x00000818, 0x00000000);
  2684. nv_icmd(dev, 0x00000819, 0x00000000);
  2685. nv_icmd(dev, 0x0000081a, 0x00000000);
  2686. nv_icmd(dev, 0x0000081b, 0x00000000);
  2687. nv_icmd(dev, 0x0000081c, 0x00000000);
  2688. nv_icmd(dev, 0x0000081d, 0x00000000);
  2689. nv_icmd(dev, 0x0000081e, 0x00000000);
  2690. nv_icmd(dev, 0x0000081f, 0x00000000);
  2691. nv_icmd(dev, 0x00000848, 0x00000000);
  2692. nv_icmd(dev, 0x00000849, 0x00000000);
  2693. nv_icmd(dev, 0x0000084a, 0x00000000);
  2694. nv_icmd(dev, 0x0000084b, 0x00000000);
  2695. nv_icmd(dev, 0x0000084c, 0x00000000);
  2696. nv_icmd(dev, 0x0000084d, 0x00000000);
  2697. nv_icmd(dev, 0x0000084e, 0x00000000);
  2698. nv_icmd(dev, 0x0000084f, 0x00000000);
  2699. nv_icmd(dev, 0x00000850, 0x00000000);
  2700. nv_icmd(dev, 0x00000851, 0x00000000);
  2701. nv_icmd(dev, 0x00000852, 0x00000000);
  2702. nv_icmd(dev, 0x00000853, 0x00000000);
  2703. nv_icmd(dev, 0x00000854, 0x00000000);
  2704. nv_icmd(dev, 0x00000855, 0x00000000);
  2705. nv_icmd(dev, 0x00000856, 0x00000000);
  2706. nv_icmd(dev, 0x00000857, 0x00000000);
  2707. nv_icmd(dev, 0x00000738, 0x00000000);
  2708. nv_icmd(dev, 0x000006aa, 0x00000001);
  2709. nv_icmd(dev, 0x000006ab, 0x00000002);
  2710. nv_icmd(dev, 0x000006ac, 0x00000080);
  2711. nv_icmd(dev, 0x000006ad, 0x00000100);
  2712. nv_icmd(dev, 0x000006ae, 0x00000100);
  2713. nv_icmd(dev, 0x000006b1, 0x00000011);
  2714. nv_icmd(dev, 0x000006bb, 0x000000cf);
  2715. nv_icmd(dev, 0x000006ce, 0x2a712488);
  2716. nv_icmd(dev, 0x00000739, 0x4085c000);
  2717. nv_icmd(dev, 0x0000073a, 0x00000080);
  2718. nv_icmd(dev, 0x00000786, 0x80000100);
  2719. nv_icmd(dev, 0x0000073c, 0x00010100);
  2720. nv_icmd(dev, 0x0000073d, 0x02800000);
  2721. nv_icmd(dev, 0x00000787, 0x000000cf);
  2722. nv_icmd(dev, 0x0000078c, 0x00000008);
  2723. nv_icmd(dev, 0x00000792, 0x00000001);
  2724. nv_icmd(dev, 0x00000794, 0x00000001);
  2725. nv_icmd(dev, 0x00000795, 0x00000001);
  2726. nv_icmd(dev, 0x00000796, 0x00000001);
  2727. nv_icmd(dev, 0x00000797, 0x000000cf);
  2728. nv_icmd(dev, 0x00000836, 0x00000001);
  2729. nv_icmd(dev, 0x0000079a, 0x00000002);
  2730. nv_icmd(dev, 0x00000833, 0x04444480);
  2731. nv_icmd(dev, 0x000007a1, 0x00000001);
  2732. nv_icmd(dev, 0x000007a3, 0x00000001);
  2733. nv_icmd(dev, 0x000007a4, 0x00000001);
  2734. nv_icmd(dev, 0x000007a5, 0x00000001);
  2735. nv_icmd(dev, 0x00000831, 0x00000004);
  2736. nv_icmd(dev, 0x0000080c, 0x00000002);
  2737. nv_icmd(dev, 0x0000080d, 0x00000100);
  2738. nv_icmd(dev, 0x0000080e, 0x00000100);
  2739. nv_icmd(dev, 0x0000080f, 0x00000001);
  2740. nv_icmd(dev, 0x00000823, 0x00000002);
  2741. nv_icmd(dev, 0x00000824, 0x00000100);
  2742. nv_icmd(dev, 0x00000825, 0x00000100);
  2743. nv_icmd(dev, 0x00000826, 0x00000001);
  2744. nv_icmd(dev, 0x0000095d, 0x00000001);
  2745. nv_icmd(dev, 0x0000082b, 0x00000004);
  2746. nv_icmd(dev, 0x00000942, 0x00010001);
  2747. nv_icmd(dev, 0x00000943, 0x00000001);
  2748. nv_icmd(dev, 0x00000944, 0x00000022);
  2749. nv_icmd(dev, 0x000007c5, 0x00010001);
  2750. nv_icmd(dev, 0x00000834, 0x00000001);
  2751. nv_icmd(dev, 0x000007c7, 0x00000001);
  2752. nv_icmd(dev, 0x0000c1b0, 0x0000000f);
  2753. nv_icmd(dev, 0x0000c1b1, 0x0000000f);
  2754. nv_icmd(dev, 0x0000c1b2, 0x0000000f);
  2755. nv_icmd(dev, 0x0000c1b3, 0x0000000f);
  2756. nv_icmd(dev, 0x0000c1b4, 0x0000000f);
  2757. nv_icmd(dev, 0x0000c1b5, 0x0000000f);
  2758. nv_icmd(dev, 0x0000c1b6, 0x0000000f);
  2759. nv_icmd(dev, 0x0000c1b7, 0x0000000f);
  2760. nv_icmd(dev, 0x0000c1b8, 0x0fac6881);
  2761. nv_icmd(dev, 0x0000c1b9, 0x00fac688);
  2762. nv_icmd(dev, 0x0001e100, 0x00000001);
  2763. nv_icmd(dev, 0x00001000, 0x00000002);
  2764. nv_icmd(dev, 0x000006aa, 0x00000001);
  2765. nv_icmd(dev, 0x000006ad, 0x00000100);
  2766. nv_icmd(dev, 0x000006ae, 0x00000100);
  2767. nv_icmd(dev, 0x000006b1, 0x00000011);
  2768. nv_icmd(dev, 0x0000078c, 0x00000008);
  2769. nv_icmd(dev, 0x00000792, 0x00000001);
  2770. nv_icmd(dev, 0x00000794, 0x00000001);
  2771. nv_icmd(dev, 0x00000795, 0x00000001);
  2772. nv_icmd(dev, 0x00000796, 0x00000001);
  2773. nv_icmd(dev, 0x00000797, 0x000000cf);
  2774. nv_icmd(dev, 0x0000079a, 0x00000002);
  2775. nv_icmd(dev, 0x00000833, 0x04444480);
  2776. nv_icmd(dev, 0x000007a1, 0x00000001);
  2777. nv_icmd(dev, 0x000007a3, 0x00000001);
  2778. nv_icmd(dev, 0x000007a4, 0x00000001);
  2779. nv_icmd(dev, 0x000007a5, 0x00000001);
  2780. nv_icmd(dev, 0x00000831, 0x00000004);
  2781. nv_icmd(dev, 0x0001e100, 0x00000001);
  2782. nv_icmd(dev, 0x00001000, 0x00000014);
  2783. nv_icmd(dev, 0x00000351, 0x00000100);
  2784. nv_icmd(dev, 0x00000957, 0x00000003);
  2785. nv_icmd(dev, 0x0000095d, 0x00000001);
  2786. nv_icmd(dev, 0x0000082b, 0x00000004);
  2787. nv_icmd(dev, 0x00000942, 0x00010001);
  2788. nv_icmd(dev, 0x00000943, 0x00000001);
  2789. nv_icmd(dev, 0x000007c5, 0x00010001);
  2790. nv_icmd(dev, 0x00000834, 0x00000001);
  2791. nv_icmd(dev, 0x000007c7, 0x00000001);
  2792. nv_icmd(dev, 0x0001e100, 0x00000001);
  2793. nv_icmd(dev, 0x00001000, 0x00000001);
  2794. nv_icmd(dev, 0x0000080c, 0x00000002);
  2795. nv_icmd(dev, 0x0000080d, 0x00000100);
  2796. nv_icmd(dev, 0x0000080e, 0x00000100);
  2797. nv_icmd(dev, 0x0000080f, 0x00000001);
  2798. nv_icmd(dev, 0x00000823, 0x00000002);
  2799. nv_icmd(dev, 0x00000824, 0x00000100);
  2800. nv_icmd(dev, 0x00000825, 0x00000100);
  2801. nv_icmd(dev, 0x00000826, 0x00000001);
  2802. nv_icmd(dev, 0x0001e100, 0x00000001);
  2803. nv_wr32(dev, 0x400208, 0x00000000);
  2804. nv_wr32(dev, 0x404154, 0x00000400);
  2805. nvc0_grctx_generate_9097(dev);
  2806. if (fermi >= 0x9197)
  2807. nvc0_grctx_generate_9197(dev);
  2808. if (fermi >= 0x9297)
  2809. nvc0_grctx_generate_9297(dev);
  2810. nvc0_grctx_generate_902d(dev);
  2811. nvc0_grctx_generate_9039(dev);
  2812. nvc0_grctx_generate_90c0(dev);
  2813. nv_wr32(dev, 0x000260, r000260);
  2814. return 0;
  2815. }