/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ |
H A D | ramgf100.c | 102 struct gf100_ramfuc fuc; member in struct:gf100_ram 108 gf100_ram_train(struct gf100_ramfuc *fuc, u32 magic) gf100_ram_train() argument 110 struct gf100_ram *ram = container_of(fuc, typeof(*ram), fuc); gf100_ram_train() 116 ram_wr32(fuc, 0x10f910, magic); gf100_ram_train() 117 ram_wr32(fuc, 0x10f914, magic); gf100_ram_train() 122 ram_wait(fuc, addr, 0x0000000f, 0x00000000, 500000); gf100_ram_train() 132 struct gf100_ramfuc *fuc = &ram->fuc; gf100_ram_calc() local 178 ret = ram_init(fuc, pfb); gf100_ram_calc() 183 from = !!(ram_rd32(fuc, 0x1373f0) & 0x00000002); /*XXX: ok? */ gf100_ram_calc() 186 if (!(ram_rd32(fuc, 0x137300) & 0x00000100)) gf100_ram_calc() 194 ram_mask(fuc, 0x137360, 0x00000002, 0x00000000); gf100_ram_calc() 196 if ((ram_rd32(fuc, 0x132000) & 0x00000002) || 0 /*XXX*/) { gf100_ram_calc() 197 ram_nuke(fuc, 0x132000); gf100_ram_calc() 198 ram_mask(fuc, 0x132000, 0x00000002, 0x00000002); gf100_ram_calc() 199 ram_mask(fuc, 0x132000, 0x00000002, 0x00000000); gf100_ram_calc() 203 ram_nuke(fuc, 0x10fe20); gf100_ram_calc() 204 ram_mask(fuc, 0x10fe20, 0x00000002, 0x00000002); gf100_ram_calc() 205 ram_mask(fuc, 0x10fe20, 0x00000002, 0x00000000); gf100_ram_calc() 209 ram_wr32(fuc, 0x132100, 0x00000001); gf100_ram_calc() 220 ram_wr32(fuc, 0x10fe20, 0x20010000); gf100_ram_calc() 221 ram_wr32(fuc, 0x137320, 0x00000003); gf100_ram_calc() 222 ram_wr32(fuc, 0x137330, 0x81200006); gf100_ram_calc() 223 ram_wr32(fuc, 0x10fe24, (P << 16) | (N1 << 8) | M1); gf100_ram_calc() 224 ram_wr32(fuc, 0x10fe20, 0x20010001); gf100_ram_calc() 225 ram_wait(fuc, 0x137390, 0x00020000, 0x00020000, 64000); gf100_ram_calc() 235 ram_wr32(fuc, 0x10fe20, 0x20010005); gf100_ram_calc() 236 ram_wr32(fuc, 0x132004, (P << 16) | (N1 << 8) | M1); gf100_ram_calc() 237 ram_wr32(fuc, 0x132000, 0x18010101); gf100_ram_calc() 238 ram_wait(fuc, 0x137390, 0x00000002, 0x00000002, 64000); gf100_ram_calc() 241 ram_wr32(fuc, 0x137300, 0x00000003); gf100_ram_calc() 245 ram_nuke(fuc, 0x10fb04); gf100_ram_calc() 246 ram_mask(fuc, 0x10fb04, 0x0000ffff, 0x00000000); gf100_ram_calc() 247 ram_nuke(fuc, 0x10fb08); gf100_ram_calc() 248 ram_mask(fuc, 0x10fb08, 0x0000ffff, 0x00000000); gf100_ram_calc() 249 ram_wr32(fuc, 0x10f988, 0x2004ff00); gf100_ram_calc() 250 ram_wr32(fuc, 0x10f98c, 0x003fc040); gf100_ram_calc() 251 ram_wr32(fuc, 0x10f990, 0x20012001); gf100_ram_calc() 252 ram_wr32(fuc, 0x10f998, 0x00011a00); gf100_ram_calc() 253 ram_wr32(fuc, 0x13d8f4, 0x00000000); gf100_ram_calc() 255 ram_wr32(fuc, 0x10f988, 0x20010000); gf100_ram_calc() 256 ram_wr32(fuc, 0x10f98c, 0x00000000); gf100_ram_calc() 257 ram_wr32(fuc, 0x10f990, 0x20012001); gf100_ram_calc() 258 ram_wr32(fuc, 0x10f998, 0x00010a00); gf100_ram_calc() 266 ram_wr32(fuc, 0x100b0c, 0x00080012); gf100_ram_calc() 269 ram_wr32(fuc, 0x611200, 0x00003300); gf100_ram_calc() 273 ram_mask(fuc, 0x10f200, 0x00000800, 0x00000000); gf100_ram_calc() 274 ram_wr32(fuc, 0x10f210, 0x00000000); gf100_ram_calc() 275 ram_nsec(fuc, 1000); gf100_ram_calc() 277 gf100_ram_train(fuc, 0x000c1001); gf100_ram_calc() 278 ram_wr32(fuc, 0x10f310, 0x00000001); gf100_ram_calc() 279 ram_nsec(fuc, 1000); gf100_ram_calc() 280 ram_wr32(fuc, 0x10f090, 0x00000061); gf100_ram_calc() 281 ram_wr32(fuc, 0x10f090, 0xc000007f); gf100_ram_calc() 282 ram_nsec(fuc, 1000); gf100_ram_calc() 285 ram_wr32(fuc, 0x10f824, 0x00007fd4); gf100_ram_calc() 287 ram_wr32(fuc, 0x1373ec, 0x00020404); gf100_ram_calc() 291 ram_mask(fuc, 0x10f808, 0x00080000, 0x00000000); gf100_ram_calc() 292 ram_mask(fuc, 0x10f200, 0x00008000, 0x00008000); gf100_ram_calc() 293 ram_wr32(fuc, 0x10f830, 0x41500010); gf100_ram_calc() 294 ram_mask(fuc, 0x10f830, 0x01000000, 0x00000000); gf100_ram_calc() 295 ram_mask(fuc, 0x132100, 0x00000100, 0x00000100); gf100_ram_calc() 296 ram_wr32(fuc, 0x10f050, 0xff000090); gf100_ram_calc() 297 ram_wr32(fuc, 0x1373ec, 0x00020f0f); gf100_ram_calc() 298 ram_wr32(fuc, 0x1373f0, 0x00000003); gf100_ram_calc() 299 ram_wr32(fuc, 0x137310, 0x81201616); gf100_ram_calc() 300 ram_wr32(fuc, 0x132100, 0x00000001); gf100_ram_calc() 302 ram_wr32(fuc, 0x10f830, 0x00300017); gf100_ram_calc() 303 ram_wr32(fuc, 0x1373f0, 0x00000001); gf100_ram_calc() 304 ram_wr32(fuc, 0x10f824, 0x00007e77); gf100_ram_calc() 305 ram_wr32(fuc, 0x132000, 0x18030001); gf100_ram_calc() 306 ram_wr32(fuc, 0x10f090, 0x4000007e); gf100_ram_calc() 307 ram_nsec(fuc, 2000); gf100_ram_calc() 308 ram_wr32(fuc, 0x10f314, 0x00000001); gf100_ram_calc() 309 ram_wr32(fuc, 0x10f210, 0x80000000); gf100_ram_calc() 310 ram_wr32(fuc, 0x10f338, 0x00300220); gf100_ram_calc() 311 ram_wr32(fuc, 0x10f300, 0x0000011d); gf100_ram_calc() 312 ram_nsec(fuc, 1000); gf100_ram_calc() 313 ram_wr32(fuc, 0x10f290, 0x02060505); gf100_ram_calc() 314 ram_wr32(fuc, 0x10f294, 0x34208288); gf100_ram_calc() 315 ram_wr32(fuc, 0x10f298, 0x44050411); gf100_ram_calc() 316 ram_wr32(fuc, 0x10f29c, 0x0000114c); gf100_ram_calc() 317 ram_wr32(fuc, 0x10f2a0, 0x42e10069); gf100_ram_calc() 318 ram_wr32(fuc, 0x10f614, 0x40044f77); gf100_ram_calc() 319 ram_wr32(fuc, 0x10f610, 0x40044f77); gf100_ram_calc() 320 ram_wr32(fuc, 0x10f344, 0x00600009); gf100_ram_calc() 321 ram_nsec(fuc, 1000); gf100_ram_calc() 322 ram_wr32(fuc, 0x10f348, 0x00700008); gf100_ram_calc() 323 ram_wr32(fuc, 0x61c140, 0x19240000); gf100_ram_calc() 324 ram_wr32(fuc, 0x10f830, 0x00300017); gf100_ram_calc() 325 gf100_ram_train(fuc, 0x80021001); gf100_ram_calc() 326 gf100_ram_train(fuc, 0x80081001); gf100_ram_calc() 327 ram_wr32(fuc, 0x10f340, 0x00500004); gf100_ram_calc() 328 ram_nsec(fuc, 1000); gf100_ram_calc() 329 ram_wr32(fuc, 0x10f830, 0x01300017); gf100_ram_calc() 330 ram_wr32(fuc, 0x10f830, 0x00300017); gf100_ram_calc() 333 ram_wr32(fuc, 0x100b0c, 0x00080028); gf100_ram_calc() 334 ram_wr32(fuc, 0x611200, 0x00003330); gf100_ram_calc() 336 ram_wr32(fuc, 0x10f800, 0x00001800); gf100_ram_calc() 337 ram_wr32(fuc, 0x13d8f4, 0x00000000); gf100_ram_calc() 338 ram_wr32(fuc, 0x1373ec, 0x00020404); gf100_ram_calc() 339 ram_wr32(fuc, 0x1373f0, 0x00000003); gf100_ram_calc() 340 ram_wr32(fuc, 0x10f830, 0x40700010); gf100_ram_calc() 341 ram_wr32(fuc, 0x10f830, 0x40500010); gf100_ram_calc() 342 ram_wr32(fuc, 0x13d8f4, 0x00000000); gf100_ram_calc() 343 ram_wr32(fuc, 0x1373f8, 0x00000000); gf100_ram_calc() 344 ram_wr32(fuc, 0x132100, 0x00000101); gf100_ram_calc() 345 ram_wr32(fuc, 0x137310, 0x89201616); gf100_ram_calc() 346 ram_wr32(fuc, 0x10f050, 0xff000090); gf100_ram_calc() 347 ram_wr32(fuc, 0x1373ec, 0x00030404); gf100_ram_calc() 348 ram_wr32(fuc, 0x1373f0, 0x00000002); gf100_ram_calc() 350 ram_wr32(fuc, 0x132100, 0x00000001); gf100_ram_calc() 351 ram_wr32(fuc, 0x1373f8, 0x00002000); gf100_ram_calc() 352 ram_nsec(fuc, 2000); gf100_ram_calc() 353 ram_wr32(fuc, 0x10f808, 0x7aaa0050); gf100_ram_calc() 354 ram_wr32(fuc, 0x10f830, 0x00500010); gf100_ram_calc() 355 ram_wr32(fuc, 0x10f200, 0x00ce1000); gf100_ram_calc() 356 ram_wr32(fuc, 0x10f090, 0x4000007e); gf100_ram_calc() 357 ram_nsec(fuc, 2000); gf100_ram_calc() 358 ram_wr32(fuc, 0x10f314, 0x00000001); gf100_ram_calc() 359 ram_wr32(fuc, 0x10f210, 0x80000000); gf100_ram_calc() 360 ram_wr32(fuc, 0x10f338, 0x00300200); gf100_ram_calc() 361 ram_wr32(fuc, 0x10f300, 0x0000084d); gf100_ram_calc() 362 ram_nsec(fuc, 1000); gf100_ram_calc() 363 ram_wr32(fuc, 0x10f290, 0x0b343825); gf100_ram_calc() 364 ram_wr32(fuc, 0x10f294, 0x3483028e); gf100_ram_calc() 365 ram_wr32(fuc, 0x10f298, 0x440c0600); gf100_ram_calc() 366 ram_wr32(fuc, 0x10f29c, 0x0000214c); gf100_ram_calc() 367 ram_wr32(fuc, 0x10f2a0, 0x42e20069); gf100_ram_calc() 368 ram_wr32(fuc, 0x10f200, 0x00ce0000); gf100_ram_calc() 369 ram_wr32(fuc, 0x10f614, 0x60044e77); gf100_ram_calc() 370 ram_wr32(fuc, 0x10f610, 0x60044e77); gf100_ram_calc() 371 ram_wr32(fuc, 0x10f340, 0x00500000); gf100_ram_calc() 372 ram_nsec(fuc, 1000); gf100_ram_calc() 373 ram_wr32(fuc, 0x10f344, 0x00600228); gf100_ram_calc() 374 ram_nsec(fuc, 1000); gf100_ram_calc() 375 ram_wr32(fuc, 0x10f348, 0x00700000); gf100_ram_calc() 376 ram_wr32(fuc, 0x13d8f4, 0x00000000); gf100_ram_calc() 377 ram_wr32(fuc, 0x61c140, 0x09a40000); gf100_ram_calc() 379 gf100_ram_train(fuc, 0x800e1008); gf100_ram_calc() 381 ram_nsec(fuc, 1000); gf100_ram_calc() 382 ram_wr32(fuc, 0x10f800, 0x00001804); gf100_ram_calc() 385 ram_wr32(fuc, 0x13d8f4, 0x00000000); gf100_ram_calc() 386 ram_wr32(fuc, 0x100b0c, 0x00080028); gf100_ram_calc() 387 ram_wr32(fuc, 0x611200, 0x00003330); gf100_ram_calc() 388 ram_nsec(fuc, 100000); gf100_ram_calc() 389 ram_wr32(fuc, 0x10f9b0, 0x05313f41); gf100_ram_calc() 390 ram_wr32(fuc, 0x10f9b4, 0x00002f50); gf100_ram_calc() 392 gf100_ram_train(fuc, 0x010c1001); gf100_ram_calc() 395 ram_mask(fuc, 0x10f200, 0x00000800, 0x00000800); gf100_ram_calc() 399 ram_mask(fuc, 0x132000, 0x00000001, 0x00000000); gf100_ram_calc() 409 struct gf100_ramfuc *fuc = &ram->fuc; gf100_ram_prog() local 410 ram_exec(fuc, nvkm_boolopt(device->cfgopt, "NvMemExec", true)); gf100_ram_prog() 418 struct gf100_ramfuc *fuc = &ram->fuc; gf100_ram_tidy() local 419 ram_exec(fuc, false); gf100_ram_tidy() 661 ram->fuc.r_0x10fe20 = ramfuc_reg(0x10fe20); gf100_ram_ctor() 662 ram->fuc.r_0x10fe24 = ramfuc_reg(0x10fe24); gf100_ram_ctor() 663 ram->fuc.r_0x137320 = ramfuc_reg(0x137320); gf100_ram_ctor() 664 ram->fuc.r_0x137330 = ramfuc_reg(0x137330); gf100_ram_ctor() 666 ram->fuc.r_0x132000 = ramfuc_reg(0x132000); gf100_ram_ctor() 667 ram->fuc.r_0x132004 = ramfuc_reg(0x132004); gf100_ram_ctor() 668 ram->fuc.r_0x132100 = ramfuc_reg(0x132100); gf100_ram_ctor() 670 ram->fuc.r_0x137390 = ramfuc_reg(0x137390); gf100_ram_ctor() 672 ram->fuc.r_0x10f290 = ramfuc_reg(0x10f290); gf100_ram_ctor() 673 ram->fuc.r_0x10f294 = ramfuc_reg(0x10f294); gf100_ram_ctor() 674 ram->fuc.r_0x10f298 = ramfuc_reg(0x10f298); gf100_ram_ctor() 675 ram->fuc.r_0x10f29c = ramfuc_reg(0x10f29c); gf100_ram_ctor() 676 ram->fuc.r_0x10f2a0 = ramfuc_reg(0x10f2a0); gf100_ram_ctor() 678 ram->fuc.r_0x10f300 = ramfuc_reg(0x10f300); gf100_ram_ctor() 679 ram->fuc.r_0x10f338 = ramfuc_reg(0x10f338); gf100_ram_ctor() 680 ram->fuc.r_0x10f340 = ramfuc_reg(0x10f340); gf100_ram_ctor() 681 ram->fuc.r_0x10f344 = ramfuc_reg(0x10f344); gf100_ram_ctor() 682 ram->fuc.r_0x10f348 = ramfuc_reg(0x10f348); gf100_ram_ctor() 684 ram->fuc.r_0x10f910 = ramfuc_reg(0x10f910); gf100_ram_ctor() 685 ram->fuc.r_0x10f914 = ramfuc_reg(0x10f914); gf100_ram_ctor() 687 ram->fuc.r_0x100b0c = ramfuc_reg(0x100b0c); gf100_ram_ctor() 688 ram->fuc.r_0x10f050 = ramfuc_reg(0x10f050); gf100_ram_ctor() 689 ram->fuc.r_0x10f090 = ramfuc_reg(0x10f090); gf100_ram_ctor() 690 ram->fuc.r_0x10f200 = ramfuc_reg(0x10f200); gf100_ram_ctor() 691 ram->fuc.r_0x10f210 = ramfuc_reg(0x10f210); gf100_ram_ctor() 692 ram->fuc.r_0x10f310 = ramfuc_reg(0x10f310); gf100_ram_ctor() 693 ram->fuc.r_0x10f314 = ramfuc_reg(0x10f314); gf100_ram_ctor() 694 ram->fuc.r_0x10f610 = ramfuc_reg(0x10f610); gf100_ram_ctor() 695 ram->fuc.r_0x10f614 = ramfuc_reg(0x10f614); gf100_ram_ctor() 696 ram->fuc.r_0x10f800 = ramfuc_reg(0x10f800); gf100_ram_ctor() 697 ram->fuc.r_0x10f808 = ramfuc_reg(0x10f808); gf100_ram_ctor() 698 ram->fuc.r_0x10f824 = ramfuc_reg(0x10f824); gf100_ram_ctor() 699 ram->fuc.r_0x10f830 = ramfuc_reg(0x10f830); gf100_ram_ctor() 700 ram->fuc.r_0x10f988 = ramfuc_reg(0x10f988); gf100_ram_ctor() 701 ram->fuc.r_0x10f98c = ramfuc_reg(0x10f98c); gf100_ram_ctor() 702 ram->fuc.r_0x10f990 = ramfuc_reg(0x10f990); gf100_ram_ctor() 703 ram->fuc.r_0x10f998 = ramfuc_reg(0x10f998); gf100_ram_ctor() 704 ram->fuc.r_0x10f9b0 = ramfuc_reg(0x10f9b0); gf100_ram_ctor() 705 ram->fuc.r_0x10f9b4 = ramfuc_reg(0x10f9b4); gf100_ram_ctor() 706 ram->fuc.r_0x10fb04 = ramfuc_reg(0x10fb04); gf100_ram_ctor() 707 ram->fuc.r_0x10fb08 = ramfuc_reg(0x10fb08); gf100_ram_ctor() 708 ram->fuc.r_0x137310 = ramfuc_reg(0x137300); gf100_ram_ctor() 709 ram->fuc.r_0x137310 = ramfuc_reg(0x137310); gf100_ram_ctor() 710 ram->fuc.r_0x137360 = ramfuc_reg(0x137360); gf100_ram_ctor() 711 ram->fuc.r_0x1373ec = ramfuc_reg(0x1373ec); gf100_ram_ctor() 712 ram->fuc.r_0x1373f0 = ramfuc_reg(0x1373f0); gf100_ram_ctor() 713 ram->fuc.r_0x1373f8 = ramfuc_reg(0x1373f8); gf100_ram_ctor() 715 ram->fuc.r_0x61c140 = ramfuc_reg(0x61c140); gf100_ram_ctor() 716 ram->fuc.r_0x611200 = ramfuc_reg(0x611200); gf100_ram_ctor() 718 ram->fuc.r_0x13d8f4 = ramfuc_reg(0x13d8f4); gf100_ram_ctor()
|
H A D | ramgk104.c | 123 struct gk104_ramfuc fuc; member in struct:gk104_ram 141 gk104_ram_train(struct gk104_ramfuc *fuc, u32 mask, u32 data) gk104_ram_train() argument 143 struct gk104_ram *ram = container_of(fuc, typeof(*ram), fuc); gk104_ram_train() 146 ram_mask(fuc, 0x10f910, mask, data); gk104_ram_train() 147 ram_mask(fuc, 0x10f914, mask, data); gk104_ram_train() 152 ram_wait(fuc, addr, 0x0000000f, 0x00000000, 500000); gk104_ram_train() 157 r1373f4_init(struct gk104_ramfuc *fuc) r1373f4_init() argument 159 struct gk104_ram *ram = container_of(fuc, typeof(*ram), fuc); r1373f4_init() 166 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00001100); r1373f4_init() 167 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00000010); r1373f4_init() 169 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00010010); r1373f4_init() 172 ram_mask(fuc, 0x1373f4, 0x00000003, 0x00000000); r1373f4_init() 173 ram_mask(fuc, 0x1373f4, 0x00000010, 0x00000000); r1373f4_init() 176 if ((ram_rd32(fuc, 0x132024) & 0xffffffff) != rcoef || r1373f4_init() 177 (ram_rd32(fuc, 0x132034) & 0x0000ffff) != runk1) { r1373f4_init() 178 ram_mask(fuc, 0x132000, 0x00000001, 0x00000000); r1373f4_init() 179 ram_mask(fuc, 0x132020, 0x00000001, 0x00000000); r1373f4_init() 180 ram_wr32(fuc, 0x137320, 0x00000000); r1373f4_init() 181 ram_mask(fuc, 0x132030, 0xffff0000, runk0); r1373f4_init() 182 ram_mask(fuc, 0x132034, 0x0000ffff, runk1); r1373f4_init() 183 ram_wr32(fuc, 0x132024, rcoef); r1373f4_init() 184 ram_mask(fuc, 0x132028, 0x00080000, 0x00080000); r1373f4_init() 185 ram_mask(fuc, 0x132020, 0x00000001, 0x00000001); r1373f4_init() 186 ram_wait(fuc, 0x137390, 0x00020000, 0x00020000, 64000); r1373f4_init() 187 ram_mask(fuc, 0x132028, 0x00080000, 0x00000000); r1373f4_init() 192 ram_mask(fuc, 0x1373f4, 0x00010000, 0x00000000); r1373f4_init() 193 ram_mask(fuc, 0x132000, 0x80000000, 0x80000000); r1373f4_init() 194 ram_mask(fuc, 0x132000, 0x00000001, 0x00000000); r1373f4_init() 195 ram_mask(fuc, 0x132004, 0x103fffff, mcoef); r1373f4_init() 196 ram_mask(fuc, 0x132000, 0x00000001, 0x00000001); r1373f4_init() 197 ram_wait(fuc, 0x137390, 0x00000002, 0x00000002, 64000); r1373f4_init() 198 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00001100); r1373f4_init() 200 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00010100); r1373f4_init() 203 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00000010); r1373f4_init() 207 r1373f4_fini(struct gk104_ramfuc *fuc) r1373f4_fini() argument 209 struct gk104_ram *ram = container_of(fuc, typeof(*ram), fuc); r1373f4_fini() 215 tmp = ram_rd32(fuc, 0x1373ec) & ~0x00030000; r1373f4_fini() 216 ram_wr32(fuc, 0x1373ec, tmp | (v1 << 16)); r1373f4_fini() 217 ram_mask(fuc, 0x1373f0, (~ram->mode & 3), 0x00000000); r1373f4_fini() 219 ram_mask(fuc, 0x1373f4, 0x00000003, 0x000000002); r1373f4_fini() 220 ram_mask(fuc, 0x1373f4, 0x00001100, 0x000000000); r1373f4_fini() 222 ram_mask(fuc, 0x1373f4, 0x00000003, 0x000000001); r1373f4_fini() 223 ram_mask(fuc, 0x1373f4, 0x00010000, 0x000000000); r1373f4_fini() 225 ram_mask(fuc, 0x10f800, 0x00000030, (v0 ^ v1) << 4); r1373f4_fini() 233 struct ramfuc *fuc = &ram->fuc.base; gk104_ram_nuts() local 243 nvkm_memx_wr32(fuc->memx, addr, next); gk104_ram_nuts() 248 gk104_ram_nuts((s), &(s)->fuc.r_##r, (m), (d), (c)) 254 struct gk104_ramfuc *fuc = &ram->fuc; gk104_ram_calc_gddr5() local 260 ram_mask(fuc, 0x10f808, 0x40000000, 0x40000000); gk104_ram_calc_gddr5() 261 ram_block(fuc); gk104_ram_calc_gddr5() 262 ram_wr32(fuc, 0x62c000, 0x0f0f0000); gk104_ram_calc_gddr5() 266 ram_mask(fuc, mr[1], 0x03c, ram->base.mr[1] & 0x03c); gk104_ram_calc_gddr5() 270 if (vc == 1 && ram_have(fuc, gpio2E)) { gk104_ram_calc_gddr5() 271 u32 temp = ram_mask(fuc, gpio2E, 0x3000, fuc->r_func2E[1]); gk104_ram_calc_gddr5() 272 if (temp != ram_rd32(fuc, gpio2E)) { gk104_ram_calc_gddr5() 273 ram_wr32(fuc, gpiotrig, 1); gk104_ram_calc_gddr5() 274 ram_nsec(fuc, 20000); gk104_ram_calc_gddr5() 278 ram_mask(fuc, 0x10f200, 0x00000800, 0x00000000); gk104_ram_calc_gddr5() 280 gk104_ram_train(fuc, 0x01020000, 0x000c0000); gk104_ram_calc_gddr5() 282 ram_wr32(fuc, 0x10f210, 0x00000000); /* REFRESH_AUTO = 0 */ gk104_ram_calc_gddr5() 283 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5() 284 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ gk104_ram_calc_gddr5() 285 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5() 287 ram_mask(fuc, 0x10f200, 0x80000000, 0x80000000); gk104_ram_calc_gddr5() 288 ram_wr32(fuc, 0x10f314, 0x00000001); /* PRECHARGE */ gk104_ram_calc_gddr5() 289 ram_mask(fuc, 0x10f200, 0x80000000, 0x00000000); gk104_ram_calc_gddr5() 290 ram_wr32(fuc, 0x10f090, 0x00000061); gk104_ram_calc_gddr5() 291 ram_wr32(fuc, 0x10f090, 0xc000007f); gk104_ram_calc_gddr5() 292 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5() 294 ram_wr32(fuc, 0x10f698, 0x00000000); gk104_ram_calc_gddr5() 295 ram_wr32(fuc, 0x10f69c, 0x00000000); gk104_ram_calc_gddr5() 304 if (ram_rd32(fuc, 0x10f978) & 0x00800000) gk104_ram_calc_gddr5() 334 if (ram_rd32(fuc, 0x10f978) & 0x00800000) gk104_ram_calc_gddr5() 337 ram_mask(fuc, 0x10f824, mask, data); gk104_ram_calc_gddr5() 339 ram_mask(fuc, 0x132040, 0x00010000, 0x00000000); gk104_ram_calc_gddr5() 342 ram_mask(fuc, 0x10f808, 0x00080000, 0x00000000); gk104_ram_calc_gddr5() 343 ram_mask(fuc, 0x10f200, 0x18008000, 0x00008000); gk104_ram_calc_gddr5() 344 ram_mask(fuc, 0x10f800, 0x00000000, 0x00000004); gk104_ram_calc_gddr5() 345 ram_mask(fuc, 0x10f830, 0x00008000, 0x01040010); gk104_ram_calc_gddr5() 346 ram_mask(fuc, 0x10f830, 0x01000000, 0x00000000); gk104_ram_calc_gddr5() 347 r1373f4_init(fuc); gk104_ram_calc_gddr5() 348 ram_mask(fuc, 0x1373f0, 0x00000002, 0x00000001); gk104_ram_calc_gddr5() 349 r1373f4_fini(fuc); gk104_ram_calc_gddr5() 350 ram_mask(fuc, 0x10f830, 0x00c00000, 0x00240001); gk104_ram_calc_gddr5() 353 r1373f4_init(fuc); gk104_ram_calc_gddr5() 354 r1373f4_fini(fuc); gk104_ram_calc_gddr5() 357 if (ram_have(fuc, gpioMV)) { gk104_ram_calc_gddr5() 358 u32 temp = ram_mask(fuc, gpioMV, 0x3000, fuc->r_funcMV[mv]); gk104_ram_calc_gddr5() 359 if (temp != ram_rd32(fuc, gpioMV)) { gk104_ram_calc_gddr5() 360 ram_wr32(fuc, gpiotrig, 1); gk104_ram_calc_gddr5() 361 ram_nsec(fuc, 64000); gk104_ram_calc_gddr5() 367 ram_mask(fuc, 0x132040, 0x00010000, 0x00010000); gk104_ram_calc_gddr5() 368 ram_nsec(fuc, 20000); gk104_ram_calc_gddr5() 373 ram_mask(fuc, 0x10f200, 0x18000000, 0x18000000); gk104_ram_calc_gddr5() 374 ram_mask(fuc, 0x10f800, 0x00000004, 0x00000000); gk104_ram_calc_gddr5() 375 ram_mask(fuc, 0x1373f0, 0x00000000, 0x00000002); gk104_ram_calc_gddr5() 376 ram_mask(fuc, 0x10f830, 0x00800001, 0x00408010); gk104_ram_calc_gddr5() 377 r1373f4_init(fuc); gk104_ram_calc_gddr5() 378 r1373f4_fini(fuc); gk104_ram_calc_gddr5() 379 ram_mask(fuc, 0x10f808, 0x00000000, 0x00080000); gk104_ram_calc_gddr5() 380 ram_mask(fuc, 0x10f200, 0x00808000, 0x00800000); gk104_ram_calc_gddr5() 383 ram_mask(fuc, 0x10f800, 0x00000004, 0x00000000); gk104_ram_calc_gddr5() 384 r1373f4_init(fuc); gk104_ram_calc_gddr5() 385 r1373f4_fini(fuc); gk104_ram_calc_gddr5() 390 ram_mask(fuc, 0x10f670, 0x80000000, 0x80000000); gk104_ram_calc_gddr5() 393 ram_wr32(fuc, 0x10f65c, 0x00000011 * next->bios.rammap_11_11_0c); gk104_ram_calc_gddr5() 394 ram_wr32(fuc, 0x10f6b8, 0x01010101 * next->bios.ramcfg_11_09); gk104_ram_calc_gddr5() 395 ram_wr32(fuc, 0x10f6bc, 0x01010101 * next->bios.ramcfg_11_09); gk104_ram_calc_gddr5() 398 ram_wr32(fuc, 0x10f698, 0x01010101 * next->bios.ramcfg_11_04); gk104_ram_calc_gddr5() 399 ram_wr32(fuc, 0x10f69c, 0x01010101 * next->bios.ramcfg_11_04); gk104_ram_calc_gddr5() 402 ram_wr32(fuc, 0x10f698, 0x00000000); gk104_ram_calc_gddr5() 403 ram_wr32(fuc, 0x10f69c, 0x00000000); gk104_ram_calc_gddr5() 408 ram_nuke(fuc, 0x10f694); gk104_ram_calc_gddr5() 409 ram_mask(fuc, 0x10f694, 0xff00ff00, data); gk104_ram_calc_gddr5() 416 ram_mask(fuc, 0x10f60c, 0x00000080, data); gk104_ram_calc_gddr5() 430 ram_mask(fuc, 0x10f824, mask, data); gk104_ram_calc_gddr5() 436 ram_mask(fuc, 0x10f200, 0x00001000, data); gk104_ram_calc_gddr5() 438 if (ram_rd32(fuc, 0x10f670) & 0x80000000) { gk104_ram_calc_gddr5() 439 ram_nsec(fuc, 10000); gk104_ram_calc_gddr5() 440 ram_mask(fuc, 0x10f670, 0x80000000, 0x00000000); gk104_ram_calc_gddr5() 447 ram_mask(fuc, 0x10f82c, 0x00100000, data); gk104_ram_calc_gddr5() 456 ram_mask(fuc, 0x10f830, 0x00007000, data); gk104_ram_calc_gddr5() 459 ram_mask(fuc, 0x10f248, 0xffffffff, next->bios.timing[10]); gk104_ram_calc_gddr5() 460 ram_mask(fuc, 0x10f290, 0xffffffff, next->bios.timing[0]); gk104_ram_calc_gddr5() 461 ram_mask(fuc, 0x10f294, 0xffffffff, next->bios.timing[1]); gk104_ram_calc_gddr5() 462 ram_mask(fuc, 0x10f298, 0xffffffff, next->bios.timing[2]); gk104_ram_calc_gddr5() 463 ram_mask(fuc, 0x10f29c, 0xffffffff, next->bios.timing[3]); gk104_ram_calc_gddr5() 464 ram_mask(fuc, 0x10f2a0, 0xffffffff, next->bios.timing[4]); gk104_ram_calc_gddr5() 465 ram_mask(fuc, 0x10f2a4, 0xffffffff, next->bios.timing[5]); gk104_ram_calc_gddr5() 466 ram_mask(fuc, 0x10f2a8, 0xffffffff, next->bios.timing[6]); gk104_ram_calc_gddr5() 467 ram_mask(fuc, 0x10f2ac, 0xffffffff, next->bios.timing[7]); gk104_ram_calc_gddr5() 468 ram_mask(fuc, 0x10f2cc, 0xffffffff, next->bios.timing[8]); gk104_ram_calc_gddr5() 469 ram_mask(fuc, 0x10f2e8, 0xffffffff, next->bios.timing[9]); gk104_ram_calc_gddr5() 477 ram_mask(fuc, 0x10f200, mask, data); gk104_ram_calc_gddr5() 489 ram_mask(fuc, 0x10f604, mask, data); gk104_ram_calc_gddr5() 501 ram_mask(fuc, 0x10f614, mask, data); gk104_ram_calc_gddr5() 513 ram_mask(fuc, 0x10f610, mask, data); gk104_ram_calc_gddr5() 537 ram_mask(fuc, 0x10f808, mask, data); gk104_ram_calc_gddr5() 539 ram_wr32(fuc, 0x10f870, 0x11111111 * next->bios.ramcfg_11_03_0f); gk104_ram_calc_gddr5() 552 if ((ram_mask(fuc, 0x100770, mask, data) & mask & 4) != (data & 4)) { gk104_ram_calc_gddr5() 553 ram_mask(fuc, 0x100750, 0x00000008, 0x00000008); gk104_ram_calc_gddr5() 554 ram_wr32(fuc, 0x100710, 0x00000000); gk104_ram_calc_gddr5() 555 ram_wait(fuc, 0x100710, 0x80000000, 0x80000000, 200000); gk104_ram_calc_gddr5() 561 ram_mask(fuc, 0x100778, 0x00000700, data); gk104_ram_calc_gddr5() 563 ram_mask(fuc, 0x10f250, 0x000003f0, next->bios.timing_20_2c_003f << 4); gk104_ram_calc_gddr5() 567 ram_mask(fuc, 0x10f24c, 0x7f000000, data << 24); gk104_ram_calc_gddr5() 568 ram_mask(fuc, 0x10f224, 0x001f0000, next->bios.timing_20_30_f8 << 16); gk104_ram_calc_gddr5() 570 ram_mask(fuc, 0x10fec4, 0x041e0f07, next->bios.timing_20_31_0800 << 26 | gk104_ram_calc_gddr5() 574 ram_mask(fuc, 0x10fec8, 0x00000027, next->bios.timing_20_31_8000 << 5 | gk104_ram_calc_gddr5() 577 ram_wr32(fuc, 0x10f090, 0x4000007e); gk104_ram_calc_gddr5() 578 ram_nsec(fuc, 2000); gk104_ram_calc_gddr5() 579 ram_wr32(fuc, 0x10f314, 0x00000001); /* PRECHARGE */ gk104_ram_calc_gddr5() 580 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ gk104_ram_calc_gddr5() 581 ram_wr32(fuc, 0x10f210, 0x80000000); /* REFRESH_AUTO = 1 */ gk104_ram_calc_gddr5() 584 u32 temp = ram_mask(fuc, 0x10f294, 0xff000000, 0x24000000); gk104_ram_calc_gddr5() 585 gk104_ram_train(fuc, 0xbc0e0000, 0xa4010000); /*XXX*/ gk104_ram_calc_gddr5() 586 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5() 587 ram_wr32(fuc, 0x10f294, temp); gk104_ram_calc_gddr5() 590 ram_mask(fuc, mr[3], 0xfff, ram->base.mr[3]); gk104_ram_calc_gddr5() 591 ram_wr32(fuc, mr[0], ram->base.mr[0]); gk104_ram_calc_gddr5() 592 ram_mask(fuc, mr[8], 0xfff, ram->base.mr[8]); gk104_ram_calc_gddr5() 593 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5() 594 ram_mask(fuc, mr[1], 0xfff, ram->base.mr[1]); gk104_ram_calc_gddr5() 595 ram_mask(fuc, mr[5], 0xfff, ram->base.mr[5] & ~0x004); /* LP3 later */ gk104_ram_calc_gddr5() 596 ram_mask(fuc, mr[6], 0xfff, ram->base.mr[6]); gk104_ram_calc_gddr5() 597 ram_mask(fuc, mr[7], 0xfff, ram->base.mr[7]); gk104_ram_calc_gddr5() 599 if (vc == 0 && ram_have(fuc, gpio2E)) { gk104_ram_calc_gddr5() 600 u32 temp = ram_mask(fuc, gpio2E, 0x3000, fuc->r_func2E[0]); gk104_ram_calc_gddr5() 601 if (temp != ram_rd32(fuc, gpio2E)) { gk104_ram_calc_gddr5() 602 ram_wr32(fuc, gpiotrig, 1); gk104_ram_calc_gddr5() 603 ram_nsec(fuc, 20000); gk104_ram_calc_gddr5() 607 ram_mask(fuc, 0x10f200, 0x80000000, 0x80000000); gk104_ram_calc_gddr5() 608 ram_wr32(fuc, 0x10f318, 0x00000001); /* NOP? */ gk104_ram_calc_gddr5() 609 ram_mask(fuc, 0x10f200, 0x80000000, 0x00000000); gk104_ram_calc_gddr5() 610 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5() 613 data = ram_rd32(fuc, 0x10f978); gk104_ram_calc_gddr5() 624 ram_wr32(fuc, 0x10f978, data); gk104_ram_calc_gddr5() 627 data = ram_rd32(fuc, 0x10f830) | 0x00000001; gk104_ram_calc_gddr5() 628 ram_wr32(fuc, 0x10f830, data); gk104_ram_calc_gddr5() 640 gk104_ram_train(fuc, 0xbc0f0000, data); gk104_ram_calc_gddr5() 642 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5() 645 ram_mask(fuc, 0x10f800, 0x00000004, 0x00000004); gk104_ram_calc_gddr5() 649 if (ram_mask(fuc, mr[5], 0x004, ram->base.mr[5]) != ram->base.mr[5]) gk104_ram_calc_gddr5() 650 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5() 653 ram_mask(fuc, 0x10f830, 0x01000000, 0x01000000); gk104_ram_calc_gddr5() 654 ram_mask(fuc, 0x10f830, 0x01000000, 0x00000000); gk104_ram_calc_gddr5() 658 gk104_ram_train(fuc, 0x80020000, 0x01000000); gk104_ram_calc_gddr5() 660 ram_unblock(fuc); gk104_ram_calc_gddr5() 661 ram_wr32(fuc, 0x62c000, 0x0f0f0f00); gk104_ram_calc_gddr5() 667 ram_mask(fuc, 0x10f200, 0x00000800, data); gk104_ram_calc_gddr5() 680 struct gk104_ramfuc *fuc = &ram->fuc; gk104_ram_calc_sddr3() local 689 ram_mask(fuc, 0x10f808, 0x40000000, 0x40000000); gk104_ram_calc_sddr3() 690 ram_block(fuc); gk104_ram_calc_sddr3() 691 ram_wr32(fuc, 0x62c000, 0x0f0f0000); gk104_ram_calc_sddr3() 693 if (vc == 1 && ram_have(fuc, gpio2E)) { gk104_ram_calc_sddr3() 694 u32 temp = ram_mask(fuc, gpio2E, 0x3000, fuc->r_func2E[1]); gk104_ram_calc_sddr3() 695 if (temp != ram_rd32(fuc, gpio2E)) { gk104_ram_calc_sddr3() 696 ram_wr32(fuc, gpiotrig, 1); gk104_ram_calc_sddr3() 697 ram_nsec(fuc, 20000); gk104_ram_calc_sddr3() 701 ram_mask(fuc, 0x10f200, 0x00000800, 0x00000000); gk104_ram_calc_sddr3() 703 ram_mask(fuc, 0x10f808, 0x04000000, 0x04000000); gk104_ram_calc_sddr3() 705 ram_wr32(fuc, 0x10f314, 0x00000001); /* PRECHARGE */ gk104_ram_calc_sddr3() 706 ram_wr32(fuc, 0x10f210, 0x00000000); /* REFRESH_AUTO = 0 */ gk104_ram_calc_sddr3() 707 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ gk104_ram_calc_sddr3() 708 ram_mask(fuc, 0x10f200, 0x80000000, 0x80000000); gk104_ram_calc_sddr3() 709 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ gk104_ram_calc_sddr3() 710 ram_mask(fuc, 0x10f200, 0x80000000, 0x00000000); gk104_ram_calc_sddr3() 711 ram_nsec(fuc, 1000); gk104_ram_calc_sddr3() 713 ram_wr32(fuc, 0x10f090, 0x00000060); gk104_ram_calc_sddr3() 714 ram_wr32(fuc, 0x10f090, 0xc000007e); gk104_ram_calc_sddr3() 752 ram_mask(fuc, 0x10f824, mask, data); gk104_ram_calc_sddr3() 754 ram_mask(fuc, 0x132040, 0x00010000, 0x00000000); gk104_ram_calc_sddr3() 756 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00010010); gk104_ram_calc_sddr3() 757 data = ram_rd32(fuc, 0x1373ec) & ~0x00030000; gk104_ram_calc_sddr3() 759 ram_wr32(fuc, 0x1373ec, data); gk104_ram_calc_sddr3() 760 ram_mask(fuc, 0x1373f4, 0x00000003, 0x00000000); gk104_ram_calc_sddr3() 761 ram_mask(fuc, 0x1373f4, 0x00000010, 0x00000000); gk104_ram_calc_sddr3() 764 if ((ram_rd32(fuc, 0x132024) & 0xffffffff) != rcoef || gk104_ram_calc_sddr3() 765 (ram_rd32(fuc, 0x132034) & 0x0000ffff) != runk1) { gk104_ram_calc_sddr3() 766 ram_mask(fuc, 0x132000, 0x00000001, 0x00000000); gk104_ram_calc_sddr3() 767 ram_mask(fuc, 0x132020, 0x00000001, 0x00000000); gk104_ram_calc_sddr3() 768 ram_wr32(fuc, 0x137320, 0x00000000); gk104_ram_calc_sddr3() 769 ram_mask(fuc, 0x132030, 0xffff0000, runk0); gk104_ram_calc_sddr3() 770 ram_mask(fuc, 0x132034, 0x0000ffff, runk1); gk104_ram_calc_sddr3() 771 ram_wr32(fuc, 0x132024, rcoef); gk104_ram_calc_sddr3() 772 ram_mask(fuc, 0x132028, 0x00080000, 0x00080000); gk104_ram_calc_sddr3() 773 ram_mask(fuc, 0x132020, 0x00000001, 0x00000001); gk104_ram_calc_sddr3() 774 ram_wait(fuc, 0x137390, 0x00020000, 0x00020000, 64000); gk104_ram_calc_sddr3() 775 ram_mask(fuc, 0x132028, 0x00080000, 0x00000000); gk104_ram_calc_sddr3() 778 ram_mask(fuc, 0x1373f4, 0x00000010, 0x00000010); gk104_ram_calc_sddr3() 779 ram_mask(fuc, 0x1373f4, 0x00000003, 0x00000001); gk104_ram_calc_sddr3() 780 ram_mask(fuc, 0x1373f4, 0x00010000, 0x00000000); gk104_ram_calc_sddr3() 782 if (ram_have(fuc, gpioMV)) { gk104_ram_calc_sddr3() 783 u32 temp = ram_mask(fuc, gpioMV, 0x3000, fuc->r_funcMV[mv]); gk104_ram_calc_sddr3() 784 if (temp != ram_rd32(fuc, gpioMV)) { gk104_ram_calc_sddr3() 785 ram_wr32(fuc, gpiotrig, 1); gk104_ram_calc_sddr3() 786 ram_nsec(fuc, 64000); gk104_ram_calc_sddr3() 792 ram_mask(fuc, 0x132040, 0x00010000, 0x00010000); gk104_ram_calc_sddr3() 793 ram_nsec(fuc, 20000); gk104_ram_calc_sddr3() 798 ram_mask(fuc, 0x10f670, 0x80000000, 0x80000000); gk104_ram_calc_sddr3() 801 ram_wr32(fuc, 0x10f65c, 0x00000011 * next->bios.rammap_11_11_0c); gk104_ram_calc_sddr3() 802 ram_wr32(fuc, 0x10f6b8, 0x01010101 * next->bios.ramcfg_11_09); gk104_ram_calc_sddr3() 803 ram_wr32(fuc, 0x10f6bc, 0x01010101 * next->bios.ramcfg_11_09); gk104_ram_calc_sddr3() 817 ram_mask(fuc, 0x10f824, mask, data); gk104_ram_calc_sddr3() 818 ram_nsec(fuc, 1000); gk104_ram_calc_sddr3() 824 ram_mask(fuc, 0x10f82c, 0x00100000, data); gk104_ram_calc_sddr3() 827 ram_mask(fuc, 0x10f248, 0xffffffff, next->bios.timing[10]); gk104_ram_calc_sddr3() 828 ram_mask(fuc, 0x10f290, 0xffffffff, next->bios.timing[0]); gk104_ram_calc_sddr3() 829 ram_mask(fuc, 0x10f294, 0xffffffff, next->bios.timing[1]); gk104_ram_calc_sddr3() 830 ram_mask(fuc, 0x10f298, 0xffffffff, next->bios.timing[2]); gk104_ram_calc_sddr3() 831 ram_mask(fuc, 0x10f29c, 0xffffffff, next->bios.timing[3]); gk104_ram_calc_sddr3() 832 ram_mask(fuc, 0x10f2a0, 0xffffffff, next->bios.timing[4]); gk104_ram_calc_sddr3() 833 ram_mask(fuc, 0x10f2a4, 0xffffffff, next->bios.timing[5]); gk104_ram_calc_sddr3() 834 ram_mask(fuc, 0x10f2a8, 0xffffffff, next->bios.timing[6]); gk104_ram_calc_sddr3() 835 ram_mask(fuc, 0x10f2ac, 0xffffffff, next->bios.timing[7]); gk104_ram_calc_sddr3() 836 ram_mask(fuc, 0x10f2cc, 0xffffffff, next->bios.timing[8]); gk104_ram_calc_sddr3() 837 ram_mask(fuc, 0x10f2e8, 0xffffffff, next->bios.timing[9]); gk104_ram_calc_sddr3() 862 ram_mask(fuc, 0x10f808, mask, data); gk104_ram_calc_sddr3() 864 ram_wr32(fuc, 0x10f870, 0x11111111 * next->bios.ramcfg_11_03_0f); gk104_ram_calc_sddr3() 866 ram_mask(fuc, 0x10f250, 0x000003f0, next->bios.timing_20_2c_003f << 4); gk104_ram_calc_sddr3() 871 ram_mask(fuc, 0x10f24c, 0x7f000000, data << 24); gk104_ram_calc_sddr3() 873 ram_mask(fuc, 0x10f224, 0x001f0000, next->bios.timing_20_30_f8 << 16); gk104_ram_calc_sddr3() 875 ram_wr32(fuc, 0x10f090, 0x4000007f); gk104_ram_calc_sddr3() 876 ram_nsec(fuc, 1000); gk104_ram_calc_sddr3() 878 ram_wr32(fuc, 0x10f314, 0x00000001); /* PRECHARGE */ gk104_ram_calc_sddr3() 879 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ gk104_ram_calc_sddr3() 880 ram_wr32(fuc, 0x10f210, 0x80000000); /* REFRESH_AUTO = 1 */ gk104_ram_calc_sddr3() 881 ram_nsec(fuc, 1000); gk104_ram_calc_sddr3() 883 ram_nuke(fuc, mr[0]); gk104_ram_calc_sddr3() 884 ram_mask(fuc, mr[0], 0x100, 0x100); gk104_ram_calc_sddr3() 885 ram_mask(fuc, mr[0], 0x100, 0x000); gk104_ram_calc_sddr3() 887 ram_mask(fuc, mr[2], 0xfff, ram->base.mr[2]); gk104_ram_calc_sddr3() 888 ram_wr32(fuc, mr[0], ram->base.mr[0]); gk104_ram_calc_sddr3() 889 ram_nsec(fuc, 1000); gk104_ram_calc_sddr3() 891 ram_nuke(fuc, mr[0]); gk104_ram_calc_sddr3() 892 ram_mask(fuc, mr[0], 0x100, 0x100); gk104_ram_calc_sddr3() 893 ram_mask(fuc, mr[0], 0x100, 0x000); gk104_ram_calc_sddr3() 895 if (vc == 0 && ram_have(fuc, gpio2E)) { gk104_ram_calc_sddr3() 896 u32 temp = ram_mask(fuc, gpio2E, 0x3000, fuc->r_func2E[0]); gk104_ram_calc_sddr3() 897 if (temp != ram_rd32(fuc, gpio2E)) { gk104_ram_calc_sddr3() 898 ram_wr32(fuc, gpiotrig, 1); gk104_ram_calc_sddr3() 899 ram_nsec(fuc, 20000); gk104_ram_calc_sddr3() 904 ram_mask(fuc, 0x10f830, 0x01000000, 0x01000000); gk104_ram_calc_sddr3() 905 ram_mask(fuc, 0x10f830, 0x01000000, 0x00000000); gk104_ram_calc_sddr3() 908 ram_mask(fuc, 0x10f200, 0x80000000, 0x80000000); gk104_ram_calc_sddr3() 909 ram_wr32(fuc, 0x10f318, 0x00000001); /* NOP? */ gk104_ram_calc_sddr3() 910 ram_mask(fuc, 0x10f200, 0x80000000, 0x00000000); gk104_ram_calc_sddr3() 911 ram_nsec(fuc, 1000); gk104_ram_calc_sddr3() 913 ram_unblock(fuc); gk104_ram_calc_sddr3() 914 ram_wr32(fuc, 0x62c000, 0x0f0f0f00); gk104_ram_calc_sddr3() 920 ram_mask(fuc, 0x10f200, 0x00000800, data); gk104_ram_calc_sddr3() 952 struct gk104_ramfuc *fuc = &ram->fuc; gk104_ram_calc_xits() local 956 ret = ram_init(fuc, pfb); gk104_ram_calc_xits() 960 ram->mode = (next->freq > fuc->refpll.vco1.max_freq) ? 2 : 1; gk104_ram_calc_xits() 961 ram->from = ram_rd32(fuc, 0x1373f4) & 0x0000000f; gk104_ram_calc_xits() 973 refclk = fuc->mempll.refclk; gk104_ram_calc_xits() 976 ret = gt215_pll_calc(nv_subdev(pfb), &fuc->refpll, refclk, &ram->N1, gk104_ram_calc_xits() 978 fuc->mempll.refclk = ret; gk104_ram_calc_xits() 990 fuc->mempll.min_p = 1; gk104_ram_calc_xits() 991 fuc->mempll.max_p = 2; gk104_ram_calc_xits() 993 ret = gt215_pll_calc(nv_subdev(pfb), &fuc->mempll, next->freq, gk104_ram_calc_xits() 1001 for (i = 0; i < ARRAY_SIZE(fuc->r_mr); i++) { gk104_ram_calc_xits() 1002 if (ram_have(fuc, mr[i])) gk104_ram_calc_xits() 1003 ram->base.mr[i] = ram_rd32(fuc, mr[i]); gk104_ram_calc_xits() 1149 struct gk104_ramfuc *fuc = &ram->fuc; gk104_ram_prog() local 1153 ram_exec(fuc, false); gk104_ram_prog() 1158 ram_exec(fuc, true); gk104_ram_prog() 1168 struct gk104_ramfuc *fuc = &ram->fuc; gk104_ram_tidy() local 1170 ram_exec(fuc, false); gk104_ram_tidy() 1514 ret = nvbios_pll_parse(bios, 0x0c, &ram->fuc.refpll); gk104_ram_ctor() 1520 ret = nvbios_pll_parse(bios, 0x04, &ram->fuc.mempll); gk104_ram_ctor() 1529 ram->fuc.r_gpioMV = ramfuc_reg(0x00d610 + (func.line * 0x04)); gk104_ram_ctor() 1530 ram->fuc.r_funcMV[0] = (func.log[0] ^ 2) << 12; gk104_ram_ctor() 1531 ram->fuc.r_funcMV[1] = (func.log[1] ^ 2) << 12; gk104_ram_ctor() 1536 ram->fuc.r_gpio2E = ramfuc_reg(0x00d610 + (func.line * 0x04)); gk104_ram_ctor() 1537 ram->fuc.r_func2E[0] = (func.log[0] ^ 2) << 12; gk104_ram_ctor() 1538 ram->fuc.r_func2E[1] = (func.log[1] ^ 2) << 12; gk104_ram_ctor() 1541 ram->fuc.r_gpiotrig = ramfuc_reg(0x00d604); gk104_ram_ctor() 1543 ram->fuc.r_0x132020 = ramfuc_reg(0x132020); gk104_ram_ctor() 1544 ram->fuc.r_0x132028 = ramfuc_reg(0x132028); gk104_ram_ctor() 1545 ram->fuc.r_0x132024 = ramfuc_reg(0x132024); gk104_ram_ctor() 1546 ram->fuc.r_0x132030 = ramfuc_reg(0x132030); gk104_ram_ctor() 1547 ram->fuc.r_0x132034 = ramfuc_reg(0x132034); gk104_ram_ctor() 1548 ram->fuc.r_0x132000 = ramfuc_reg(0x132000); gk104_ram_ctor() 1549 ram->fuc.r_0x132004 = ramfuc_reg(0x132004); gk104_ram_ctor() 1550 ram->fuc.r_0x132040 = ramfuc_reg(0x132040); gk104_ram_ctor() 1552 ram->fuc.r_0x10f248 = ramfuc_reg(0x10f248); gk104_ram_ctor() 1553 ram->fuc.r_0x10f290 = ramfuc_reg(0x10f290); gk104_ram_ctor() 1554 ram->fuc.r_0x10f294 = ramfuc_reg(0x10f294); gk104_ram_ctor() 1555 ram->fuc.r_0x10f298 = ramfuc_reg(0x10f298); gk104_ram_ctor() 1556 ram->fuc.r_0x10f29c = ramfuc_reg(0x10f29c); gk104_ram_ctor() 1557 ram->fuc.r_0x10f2a0 = ramfuc_reg(0x10f2a0); gk104_ram_ctor() 1558 ram->fuc.r_0x10f2a4 = ramfuc_reg(0x10f2a4); gk104_ram_ctor() 1559 ram->fuc.r_0x10f2a8 = ramfuc_reg(0x10f2a8); gk104_ram_ctor() 1560 ram->fuc.r_0x10f2ac = ramfuc_reg(0x10f2ac); gk104_ram_ctor() 1561 ram->fuc.r_0x10f2cc = ramfuc_reg(0x10f2cc); gk104_ram_ctor() 1562 ram->fuc.r_0x10f2e8 = ramfuc_reg(0x10f2e8); gk104_ram_ctor() 1563 ram->fuc.r_0x10f250 = ramfuc_reg(0x10f250); gk104_ram_ctor() 1564 ram->fuc.r_0x10f24c = ramfuc_reg(0x10f24c); gk104_ram_ctor() 1565 ram->fuc.r_0x10fec4 = ramfuc_reg(0x10fec4); gk104_ram_ctor() 1566 ram->fuc.r_0x10fec8 = ramfuc_reg(0x10fec8); gk104_ram_ctor() 1567 ram->fuc.r_0x10f604 = ramfuc_reg(0x10f604); gk104_ram_ctor() 1568 ram->fuc.r_0x10f614 = ramfuc_reg(0x10f614); gk104_ram_ctor() 1569 ram->fuc.r_0x10f610 = ramfuc_reg(0x10f610); gk104_ram_ctor() 1570 ram->fuc.r_0x100770 = ramfuc_reg(0x100770); gk104_ram_ctor() 1571 ram->fuc.r_0x100778 = ramfuc_reg(0x100778); gk104_ram_ctor() 1572 ram->fuc.r_0x10f224 = ramfuc_reg(0x10f224); gk104_ram_ctor() 1574 ram->fuc.r_0x10f870 = ramfuc_reg(0x10f870); gk104_ram_ctor() 1575 ram->fuc.r_0x10f698 = ramfuc_reg(0x10f698); gk104_ram_ctor() 1576 ram->fuc.r_0x10f694 = ramfuc_reg(0x10f694); gk104_ram_ctor() 1577 ram->fuc.r_0x10f6b8 = ramfuc_reg(0x10f6b8); gk104_ram_ctor() 1578 ram->fuc.r_0x10f808 = ramfuc_reg(0x10f808); gk104_ram_ctor() 1579 ram->fuc.r_0x10f670 = ramfuc_reg(0x10f670); gk104_ram_ctor() 1580 ram->fuc.r_0x10f60c = ramfuc_reg(0x10f60c); gk104_ram_ctor() 1581 ram->fuc.r_0x10f830 = ramfuc_reg(0x10f830); gk104_ram_ctor() 1582 ram->fuc.r_0x1373ec = ramfuc_reg(0x1373ec); gk104_ram_ctor() 1583 ram->fuc.r_0x10f800 = ramfuc_reg(0x10f800); gk104_ram_ctor() 1584 ram->fuc.r_0x10f82c = ramfuc_reg(0x10f82c); gk104_ram_ctor() 1586 ram->fuc.r_0x10f978 = ramfuc_reg(0x10f978); gk104_ram_ctor() 1587 ram->fuc.r_0x10f910 = ramfuc_reg(0x10f910); gk104_ram_ctor() 1588 ram->fuc.r_0x10f914 = ramfuc_reg(0x10f914); gk104_ram_ctor() 1592 ram->fuc.r_mr[0] = ramfuc_reg(0x10f300); gk104_ram_ctor() 1593 ram->fuc.r_mr[1] = ramfuc_reg(0x10f330); gk104_ram_ctor() 1594 ram->fuc.r_mr[2] = ramfuc_reg(0x10f334); gk104_ram_ctor() 1595 ram->fuc.r_mr[3] = ramfuc_reg(0x10f338); gk104_ram_ctor() 1596 ram->fuc.r_mr[4] = ramfuc_reg(0x10f33c); gk104_ram_ctor() 1597 ram->fuc.r_mr[5] = ramfuc_reg(0x10f340); gk104_ram_ctor() 1598 ram->fuc.r_mr[6] = ramfuc_reg(0x10f344); gk104_ram_ctor() 1599 ram->fuc.r_mr[7] = ramfuc_reg(0x10f348); gk104_ram_ctor() 1600 ram->fuc.r_mr[8] = ramfuc_reg(0x10f354); gk104_ram_ctor() 1601 ram->fuc.r_mr[15] = ramfuc_reg(0x10f34c); gk104_ram_ctor() 1604 ram->fuc.r_mr[0] = ramfuc_reg(0x10f300); gk104_ram_ctor() 1605 ram->fuc.r_mr[2] = ramfuc_reg(0x10f320); gk104_ram_ctor() 1611 ram->fuc.r_0x62c000 = ramfuc_reg(0x62c000); gk104_ram_ctor() 1612 ram->fuc.r_0x10f200 = ramfuc_reg(0x10f200); gk104_ram_ctor() 1613 ram->fuc.r_0x10f210 = ramfuc_reg(0x10f210); gk104_ram_ctor() 1614 ram->fuc.r_0x10f310 = ramfuc_reg(0x10f310); gk104_ram_ctor() 1615 ram->fuc.r_0x10f314 = ramfuc_reg(0x10f314); gk104_ram_ctor() 1616 ram->fuc.r_0x10f318 = ramfuc_reg(0x10f318); gk104_ram_ctor() 1617 ram->fuc.r_0x10f090 = ramfuc_reg(0x10f090); gk104_ram_ctor() 1618 ram->fuc.r_0x10f69c = ramfuc_reg(0x10f69c); gk104_ram_ctor() 1619 ram->fuc.r_0x10f824 = ramfuc_reg(0x10f824); gk104_ram_ctor() 1620 ram->fuc.r_0x1373f0 = ramfuc_reg(0x1373f0); gk104_ram_ctor() 1621 ram->fuc.r_0x1373f4 = ramfuc_reg(0x1373f4); gk104_ram_ctor() 1622 ram->fuc.r_0x137320 = ramfuc_reg(0x137320); gk104_ram_ctor() 1623 ram->fuc.r_0x10f65c = ramfuc_reg(0x10f65c); gk104_ram_ctor() 1624 ram->fuc.r_0x10f6bc = ramfuc_reg(0x10f6bc); gk104_ram_ctor() 1625 ram->fuc.r_0x100710 = ramfuc_reg(0x100710); gk104_ram_ctor() 1626 ram->fuc.r_0x100750 = ramfuc_reg(0x100750); gk104_ram_ctor()
|
H A D | ramgt215.c | 98 struct gt215_ramfuc fuc; member in struct:gt215_ram 164 struct gt215_ramfuc *fuc = &ram->fuc; gt215_link_train() local 208 r1700 = ram_rd32(fuc, 0x001700); gt215_link_train() 210 ram_mask(fuc, 0x100200, 0x00000800, 0x00000000); gt215_link_train() 211 ram_wr32(fuc, 0x611200, 0x3300); gt215_link_train() 212 ram_wait_vblank(fuc); gt215_link_train() 213 ram_wait(fuc, 0x611200, 0x00000003, 0x00000000, 500000); gt215_link_train() 214 ram_mask(fuc, 0x001610, 0x00000083, 0x00000003); gt215_link_train() 215 ram_mask(fuc, 0x100080, 0x00000020, 0x00000000); gt215_link_train() 216 ram_mask(fuc, 0x10f804, 0x80000000, 0x00000000); gt215_link_train() 217 ram_wr32(fuc, 0x001700, 0x00000000); gt215_link_train() 219 ram_train(fuc); gt215_link_train() 222 ram_mask(fuc, 0x10f804, 0x80000000, 0x80000000); gt215_link_train() 223 ram_wr32(fuc, 0x10053c, 0x0); gt215_link_train() 224 ram_wr32(fuc, 0x100720, train->r_100720); gt215_link_train() 225 ram_wr32(fuc, 0x1111e0, train->r_1111e0); gt215_link_train() 226 ram_wr32(fuc, 0x111400, train->r_111400); gt215_link_train() 227 ram_nuke(fuc, 0x100080); gt215_link_train() 228 ram_mask(fuc, 0x100080, 0x00000020, 0x00000020); gt215_link_train() 229 ram_nsec(fuc, 1000); gt215_link_train() 231 ram_wr32(fuc, 0x001700, r1700); gt215_link_train() 232 ram_mask(fuc, 0x001610, 0x00000083, 0x00000080); gt215_link_train() 233 ram_wr32(fuc, 0x611200, 0x3330); gt215_link_train() 234 ram_mask(fuc, 0x100200, 0x00000800, 0x00000800); gt215_link_train() 236 ram_exec(fuc, true); gt215_link_train() 239 ram_exec(fuc, true); gt215_link_train() 425 nvkm_sddr2_dll_reset(struct gt215_ramfuc *fuc) nvkm_sddr2_dll_reset() argument 427 ram_mask(fuc, mr[0], 0x100, 0x100); nvkm_sddr2_dll_reset() 428 ram_nsec(fuc, 1000); nvkm_sddr2_dll_reset() 429 ram_mask(fuc, mr[0], 0x100, 0x000); nvkm_sddr2_dll_reset() 430 ram_nsec(fuc, 1000); nvkm_sddr2_dll_reset() 434 nvkm_sddr3_dll_disable(struct gt215_ramfuc *fuc, u32 *mr) nvkm_sddr3_dll_disable() argument 436 u32 mr1_old = ram_rd32(fuc, mr[1]); nvkm_sddr3_dll_disable() 439 ram_wr32(fuc, 0x1002d4, 0x00000001); nvkm_sddr3_dll_disable() 440 ram_wr32(fuc, mr[1], mr[1]); nvkm_sddr3_dll_disable() 441 ram_nsec(fuc, 1000); nvkm_sddr3_dll_disable() 446 nvkm_gddr3_dll_disable(struct gt215_ramfuc *fuc, u32 *mr) nvkm_gddr3_dll_disable() argument 448 u32 mr1_old = ram_rd32(fuc, mr[1]); nvkm_gddr3_dll_disable() 451 ram_wr32(fuc, mr[1], mr[1]); nvkm_gddr3_dll_disable() 452 ram_nsec(fuc, 1000); nvkm_gddr3_dll_disable() 457 gt215_ram_lock_pll(struct gt215_ramfuc *fuc, struct gt215_clk_info *mclk) gt215_ram_lock_pll() argument 459 ram_wr32(fuc, 0x004004, mclk->pll); gt215_ram_lock_pll() 460 ram_mask(fuc, 0x004000, 0x00000001, 0x00000001); gt215_ram_lock_pll() 461 ram_mask(fuc, 0x004000, 0x00000010, 0x00000000); gt215_ram_lock_pll() 462 ram_wait(fuc, 0x004000, 0x00020000, 0x00020000, 64000); gt215_ram_lock_pll() 463 ram_mask(fuc, 0x004000, 0x00000010, 0x00000010); gt215_ram_lock_pll() 467 gt215_ram_fbvref(struct gt215_ramfuc *fuc, u32 val) gt215_ram_fbvref() argument 469 struct nvkm_gpio *gpio = nvkm_gpio(fuc->base.pfb); gt215_ram_fbvref() 480 gpio_val = ram_rd32(fuc, gpioFBVREF); gt215_ram_fbvref() 484 ram_mask(fuc, gpioFBVREF, (0x3 << sh), ((val | 0x2) << sh)); gt215_ram_fbvref() 485 ram_nsec(fuc, 20000); gt215_ram_fbvref() 494 struct gt215_ramfuc *fuc = &ram->fuc; gt215_ram_calc() local 555 ret = ram_init(fuc, pfb); gt215_ram_calc() 560 ram->base.mr[0] = ram_rd32(fuc, mr[0]); gt215_ram_calc() 561 ram->base.mr[1] = ram_rd32(fuc, mr[1]); gt215_ram_calc() 562 ram->base.mr[2] = ram_rd32(fuc, mr[2]); gt215_ram_calc() 597 ctrl = ram_rd32(fuc, 0x004000); gt215_ram_calc() 602 ram_mask(fuc, 0x111104, 0x00000600, 0x00000000); gt215_ram_calc() 604 ram_mask(fuc, 0x111100, 0x40000000, 0x40000000); gt215_ram_calc() 605 ram_mask(fuc, 0x111104, 0x00000180, 0x00000000); gt215_ram_calc() 608 ram_mask(fuc, 0x100200, 0x00000800, 0x00000000); gt215_ram_calc() 612 ram_mask(fuc, 0x004128, 0x003f3141, mclk.clk | 0x00000101); gt215_ram_calc() 613 gt215_ram_lock_pll(fuc, &mclk); gt215_ram_calc() 617 ram_wait_vblank(fuc); gt215_ram_calc() 618 ram_wr32(fuc, 0x611200, 0x3300); gt215_ram_calc() 619 ram_mask(fuc, 0x002504, 0x1, 0x1); gt215_ram_calc() 620 ram_nsec(fuc, 10000); gt215_ram_calc() 621 ram_wait(fuc, 0x002504, 0x10, 0x10, 20000); /* XXX: or longer? */ gt215_ram_calc() 622 ram_block(fuc); gt215_ram_calc() 623 ram_nsec(fuc, 2000); gt215_ram_calc() 627 ram_mask(fuc, 0x111100, 0x04020000, 0x00020000); gt215_ram_calc() 629 ram_mask(fuc, 0x111100, 0x04020000, 0x04020000); gt215_ram_calc() 635 nvkm_sddr3_dll_disable(fuc, ram->base.mr); gt215_ram_calc() 638 nvkm_gddr3_dll_disable(fuc, ram->base.mr); gt215_ram_calc() 642 if (fuc->r_gpioFBVREF.addr && next->bios.timing_10_ODT) gt215_ram_calc() 643 gt215_ram_fbvref(fuc, 0); gt215_ram_calc() 646 ram_wr32(fuc, 0x1002d4, 0x00000001); gt215_ram_calc() 647 ram_wr32(fuc, 0x1002d0, 0x00000001); gt215_ram_calc() 648 ram_wr32(fuc, 0x1002d0, 0x00000001); gt215_ram_calc() 649 ram_wr32(fuc, 0x100210, 0x00000000); gt215_ram_calc() 650 ram_wr32(fuc, 0x1002dc, 0x00000001); gt215_ram_calc() 651 ram_nsec(fuc, 2000); gt215_ram_calc() 654 ram_mask(fuc, 0x100700, 0x00000006, 0x00000006); gt215_ram_calc() 665 ram_mask(fuc, 0x004000, 0x00000004, 0x00000004); gt215_ram_calc() 666 ram_mask(fuc, 0x004168, 0x003f3141, 0x00083101); gt215_ram_calc() 667 ram_mask(fuc, 0x004000, 0x00000008, 0x00000008); gt215_ram_calc() 668 ram_mask(fuc, 0x1110e0, 0x00088000, 0x00088000); gt215_ram_calc() 669 ram_wr32(fuc, 0x004018, 0x00001000); gt215_ram_calc() 670 gt215_ram_lock_pll(fuc, &mclk); gt215_ram_calc() 674 ram_mask(fuc, 0x004000, 0x00000105, 0x00000105); gt215_ram_calc() 675 ram_wr32(fuc, 0x004018, 0x00001000 | r004018); gt215_ram_calc() 676 ram_wr32(fuc, 0x100da0, r100da0); gt215_ram_calc() 678 ram_mask(fuc, 0x004168, 0x003f3141, mclk.clk | 0x00000101); gt215_ram_calc() 679 ram_mask(fuc, 0x004000, 0x00000108, 0x00000008); gt215_ram_calc() 680 ram_mask(fuc, 0x1110e0, 0x00088000, 0x00088000); gt215_ram_calc() 681 ram_wr32(fuc, 0x004018, 0x00009000 | r004018); gt215_ram_calc() 682 ram_wr32(fuc, 0x100da0, r100da0); gt215_ram_calc() 684 ram_nsec(fuc, 20000); gt215_ram_calc() 687 ram_wr32(fuc, 0x1005a0, next->bios.ramcfg_10_06 << 16 | gt215_ram_calc() 690 ram_wr32(fuc, 0x1005a4, next->bios.ramcfg_10_08 << 8 | gt215_ram_calc() 692 ram_wr32(fuc, 0x10f804, next->bios.ramcfg_10_09_f0 << 20 | gt215_ram_calc() 696 ram_mask(fuc, 0x10053c, 0x00001000, 0x00000000); gt215_ram_calc() 699 ram_wr32(fuc, 0x100080, 0x1020); gt215_ram_calc() 700 ram_mask(fuc, 0x111400, 0xffffffff, train->r_111400); gt215_ram_calc() 701 ram_mask(fuc, 0x1111e0, 0xffffffff, train->r_1111e0); gt215_ram_calc() 702 ram_mask(fuc, 0x100720, 0xffffffff, train->r_100720); gt215_ram_calc() 704 ram_mask(fuc, 0x10053c, 0x00001000, 0x00001000); gt215_ram_calc() 705 ram_mask(fuc, 0x10f804, 0x80000000, 0x00000000); gt215_ram_calc() 706 ram_mask(fuc, 0x100760, 0x22222222, r100760); gt215_ram_calc() 707 ram_mask(fuc, 0x1007a0, 0x22222222, r100760); gt215_ram_calc() 708 ram_mask(fuc, 0x1007e0, 0x22222222, r100760); gt215_ram_calc() 712 ram_mask(fuc, 0x100700, 0x00000006, 0x00000000); gt215_ram_calc() 717 ram_mask(fuc, 0x1110e0, 0x00088000, 0x00011000); gt215_ram_calc() 718 ram_mask(fuc, 0x004000, 0x00000008, 0x00000000); gt215_ram_calc() 721 ram_wr32(fuc, 0x1002dc, 0x00000000); gt215_ram_calc() 722 ram_wr32(fuc, 0x1002d4, 0x00000001); gt215_ram_calc() 723 ram_wr32(fuc, 0x100210, 0x80000000); gt215_ram_calc() 724 ram_nsec(fuc, 2000); gt215_ram_calc() 728 if (ram_rd32(fuc, mr[i]) != ram->base.mr[i]) { gt215_ram_calc() 729 ram_wr32(fuc, mr[i], ram->base.mr[i]); gt215_ram_calc() 730 ram_nsec(fuc, 1000); gt215_ram_calc() 734 ram_wr32(fuc, 0x100220[3], timing[3]); gt215_ram_calc() 735 ram_wr32(fuc, 0x100220[1], timing[1]); gt215_ram_calc() 736 ram_wr32(fuc, 0x100220[6], timing[6]); gt215_ram_calc() 737 ram_wr32(fuc, 0x100220[7], timing[7]); gt215_ram_calc() 738 ram_wr32(fuc, 0x100220[2], timing[2]); gt215_ram_calc() 739 ram_wr32(fuc, 0x100220[4], timing[4]); gt215_ram_calc() 740 ram_wr32(fuc, 0x100220[5], timing[5]); gt215_ram_calc() 741 ram_wr32(fuc, 0x100220[0], timing[0]); gt215_ram_calc() 742 ram_wr32(fuc, 0x100220[8], timing[8]); gt215_ram_calc() 745 ram_mask(fuc, 0x100200, 0x00001000, !next->bios.ramcfg_10_02_08 << 12); gt215_ram_calc() 748 unk714 = ram_rd32(fuc, 0x100714) & ~0xf0000130; gt215_ram_calc() 749 unk718 = ram_rd32(fuc, 0x100718) & ~0x00000100; gt215_ram_calc() 750 unk71c = ram_rd32(fuc, 0x10071c) & ~0x00000100; gt215_ram_calc() 751 r111100 = ram_rd32(fuc, 0x111100) & ~0x3a800000; gt215_ram_calc() 804 ram_mask(fuc, 0x100714, 0xffffffff, unk714); gt215_ram_calc() 805 ram_mask(fuc, 0x10071c, 0xffffffff, unk71c); gt215_ram_calc() 806 ram_mask(fuc, 0x100718, 0xffffffff, unk718); gt215_ram_calc() 807 ram_mask(fuc, 0x111100, 0xffffffff, r111100); gt215_ram_calc() 809 if (fuc->r_gpioFBVREF.addr && !next->bios.timing_10_ODT) gt215_ram_calc() 810 gt215_ram_fbvref(fuc, 1); gt215_ram_calc() 814 nvkm_sddr2_dll_reset(fuc); gt215_ram_calc() 817 ram_nsec(fuc, 31000); gt215_ram_calc() 819 ram_nsec(fuc, 14000); gt215_ram_calc() 823 ram_wr32(fuc, 0x100264, 0x1); gt215_ram_calc() 824 ram_nsec(fuc, 2000); gt215_ram_calc() 827 ram_nuke(fuc, 0x100700); gt215_ram_calc() 828 ram_mask(fuc, 0x100700, 0x01000000, 0x01000000); gt215_ram_calc() 829 ram_mask(fuc, 0x100700, 0x01000000, 0x00000000); gt215_ram_calc() 832 ram_unblock(fuc); gt215_ram_calc() 833 ram_wr32(fuc, 0x611200, 0x3330); gt215_ram_calc() 837 ram_mask(fuc, 0x100200, 0x00000800, 0x00000800); gt215_ram_calc() 839 ram_mask(fuc, 0x111104, 0x00000180, 0x00000180); gt215_ram_calc() 840 ram_mask(fuc, 0x111100, 0x40000000, 0x00000000); gt215_ram_calc() 842 ram_mask(fuc, 0x111104, 0x00000600, 0x00000600); gt215_ram_calc() 846 ram_mask(fuc, 0x004168, 0x00000001, 0x00000000); gt215_ram_calc() 847 ram_mask(fuc, 0x004168, 0x00000100, 0x00000000); gt215_ram_calc() 849 ram_mask(fuc, 0x004000, 0x00000001, 0x00000000); gt215_ram_calc() 850 ram_mask(fuc, 0x004128, 0x00000001, 0x00000000); gt215_ram_calc() 851 ram_mask(fuc, 0x004128, 0x00000100, 0x00000000); gt215_ram_calc() 862 struct gt215_ramfuc *fuc = &ram->fuc; gt215_ram_prog() local 868 ram_exec(fuc, true); gt215_ram_prog() 877 ram_exec(fuc, false); gt215_ram_prog() 886 struct gt215_ramfuc *fuc = &ram->fuc; gt215_ram_tidy() local 887 ram_exec(fuc, false); gt215_ram_tidy() 946 ram->fuc.r_0x001610 = ramfuc_reg(0x001610); gt215_ram_ctor() 947 ram->fuc.r_0x001700 = ramfuc_reg(0x001700); gt215_ram_ctor() 948 ram->fuc.r_0x002504 = ramfuc_reg(0x002504); gt215_ram_ctor() 949 ram->fuc.r_0x004000 = ramfuc_reg(0x004000); gt215_ram_ctor() 950 ram->fuc.r_0x004004 = ramfuc_reg(0x004004); gt215_ram_ctor() 951 ram->fuc.r_0x004018 = ramfuc_reg(0x004018); gt215_ram_ctor() 952 ram->fuc.r_0x004128 = ramfuc_reg(0x004128); gt215_ram_ctor() 953 ram->fuc.r_0x004168 = ramfuc_reg(0x004168); gt215_ram_ctor() 954 ram->fuc.r_0x100080 = ramfuc_reg(0x100080); gt215_ram_ctor() 955 ram->fuc.r_0x100200 = ramfuc_reg(0x100200); gt215_ram_ctor() 956 ram->fuc.r_0x100210 = ramfuc_reg(0x100210); gt215_ram_ctor() 958 ram->fuc.r_0x100220[i] = ramfuc_reg(0x100220 + (i * 4)); gt215_ram_ctor() 959 ram->fuc.r_0x100264 = ramfuc_reg(0x100264); gt215_ram_ctor() 960 ram->fuc.r_0x1002d0 = ramfuc_reg(0x1002d0); gt215_ram_ctor() 961 ram->fuc.r_0x1002d4 = ramfuc_reg(0x1002d4); gt215_ram_ctor() 962 ram->fuc.r_0x1002dc = ramfuc_reg(0x1002dc); gt215_ram_ctor() 963 ram->fuc.r_0x10053c = ramfuc_reg(0x10053c); gt215_ram_ctor() 964 ram->fuc.r_0x1005a0 = ramfuc_reg(0x1005a0); gt215_ram_ctor() 965 ram->fuc.r_0x1005a4 = ramfuc_reg(0x1005a4); gt215_ram_ctor() 966 ram->fuc.r_0x100700 = ramfuc_reg(0x100700); gt215_ram_ctor() 967 ram->fuc.r_0x100714 = ramfuc_reg(0x100714); gt215_ram_ctor() 968 ram->fuc.r_0x100718 = ramfuc_reg(0x100718); gt215_ram_ctor() 969 ram->fuc.r_0x10071c = ramfuc_reg(0x10071c); gt215_ram_ctor() 970 ram->fuc.r_0x100720 = ramfuc_reg(0x100720); gt215_ram_ctor() 971 ram->fuc.r_0x100760 = ramfuc_stride(0x100760, 4, ram->base.part_mask); gt215_ram_ctor() 972 ram->fuc.r_0x1007a0 = ramfuc_stride(0x1007a0, 4, ram->base.part_mask); gt215_ram_ctor() 973 ram->fuc.r_0x1007e0 = ramfuc_stride(0x1007e0, 4, ram->base.part_mask); gt215_ram_ctor() 974 ram->fuc.r_0x100da0 = ramfuc_stride(0x100da0, 4, ram->base.part_mask); gt215_ram_ctor() 975 ram->fuc.r_0x10f804 = ramfuc_reg(0x10f804); gt215_ram_ctor() 976 ram->fuc.r_0x1110e0 = ramfuc_stride(0x1110e0, 4, ram->base.part_mask); gt215_ram_ctor() 977 ram->fuc.r_0x111100 = ramfuc_reg(0x111100); gt215_ram_ctor() 978 ram->fuc.r_0x111104 = ramfuc_reg(0x111104); gt215_ram_ctor() 979 ram->fuc.r_0x1111e0 = ramfuc_reg(0x1111e0); gt215_ram_ctor() 980 ram->fuc.r_0x111400 = ramfuc_reg(0x111400); gt215_ram_ctor() 981 ram->fuc.r_0x611200 = ramfuc_reg(0x611200); gt215_ram_ctor() 984 ram->fuc.r_mr[0] = ramfuc_reg2(0x1002c0, 0x1002c8); gt215_ram_ctor() 985 ram->fuc.r_mr[1] = ramfuc_reg2(0x1002c4, 0x1002cc); gt215_ram_ctor() 986 ram->fuc.r_mr[2] = ramfuc_reg2(0x1002e0, 0x1002e8); gt215_ram_ctor() 987 ram->fuc.r_mr[3] = ramfuc_reg2(0x1002e4, 0x1002ec); gt215_ram_ctor() 989 ram->fuc.r_mr[0] = ramfuc_reg(0x1002c0); gt215_ram_ctor() 990 ram->fuc.r_mr[1] = ramfuc_reg(0x1002c4); gt215_ram_ctor() 991 ram->fuc.r_mr[2] = ramfuc_reg(0x1002e0); gt215_ram_ctor() 992 ram->fuc.r_mr[3] = ramfuc_reg(0x1002e4); gt215_ram_ctor() 998 ram->fuc.r_gpioFBVREF = ramfuc_reg(reg); gt215_ram_ctor()
|
/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/ |
H A D | priv.h | 4 #include <subdev/pmu/fuc/os.h>
|
H A D | memx.c | 111 memx_out(memx); /* fuc can't handle multiple */ nvkm_memx_wait() 119 memx_out(memx); /* fuc can't handle multiple */ nvkm_memx_nsec() 152 memx_out(memx); /* fuc can't handle multiple */ nvkm_memx_wait_vblank()
|
H A D | gf100.c | 25 #include "fuc/gf100.fuc3.h"
|
H A D | gf110.c | 25 #include "fuc/gf110.fuc4.h"
|
H A D | gk208.c | 25 #include "fuc/gk208.fuc5.h"
|
H A D | gt215.c | 25 #include "fuc/gt215.fuc3.h"
|
H A D | gk104.c | 27 #include "fuc/gf110.fuc4.h"
|
H A D | gk110.c | 27 #include "fuc/gf110.fuc4.h"
|
/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/engine/gr/ |
H A D | gf117.c | 101 #include "fuc/hubgf117.fuc3.h" 111 #include "fuc/gpcgf117.fuc3.h"
|
H A D | gk110.c | 176 #include "fuc/hubgk110.fuc3.h" 186 #include "fuc/gpcgk110.fuc3.h"
|
H A D | gk208.c | 155 #include "fuc/hubgk208.fuc5.h" 165 #include "fuc/gpcgk208.fuc5.h"
|
H A D | gf100.c | 26 #include "fuc/os.h" 295 * fuc to modify some per-context register settings on first load gf100_gr_context_ctor() 1266 /* load fuc microcode */ gf100_gr_init_ctxctl() 1524 gf100_gr_dtor_fw(struct gf100_gr_fuc *fuc) gf100_gr_dtor_fw() argument 1526 kfree(fuc->data); gf100_gr_dtor_fw() 1527 fuc->data = NULL; gf100_gr_dtor_fw() 1532 struct gf100_gr_fuc *fuc) gf100_gr_ctor_fw() 1550 fuc->size = fw->size; gf100_gr_ctor_fw() 1551 fuc->data = kmemdup(fw->data, fuc->size, GFP_KERNEL); gf100_gr_ctor_fw() 1553 return (fuc->data != NULL) ? 0 : -ENOMEM; gf100_gr_ctor_fw() 1678 #include "fuc/hubgf100.fuc3.h" 1688 #include "fuc/gpcgf100.fuc3.h" 1531 gf100_gr_ctor_fw(struct gf100_gr_priv *priv, const char *fwname, struct gf100_gr_fuc *fuc) gf100_gr_ctor_fw() argument
|
H A D | gk104.c | 324 #include "fuc/hubgk104.fuc3.h" 334 #include "fuc/gpcgk104.fuc3.h"
|
H A D | gm107.c | 435 #include "fuc/hubgm107.fuc5.h" 445 #include "fuc/gpcgm107.fuc5.h"
|
/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/engine/ce/ |
H A D | gf100.c | 26 #include "fuc/gf100.fuc3.h"
|
H A D | gt215.c | 27 #include "fuc/gt215.fuc3.h"
|
/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/engine/sec/ |
H A D | g98.c | 26 #include "fuc/g98.fuc0s.h"
|
/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/ |
H A D | gm204.c | 84 nv_error(priv, "VBIOS PMU fuc %02x not found\n", type); pmu_load()
|