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