aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2015-04-07 04:54:40 -0400
committerBen Skeggs <bskeggs@redhat.com>2015-04-14 03:00:53 -0400
commit2a19b3ed65170cb51b5a5286ecba3de41de3a71f (patch)
tree11a9c05c4290ffbb191375625a7610e1d52e412b
parent7b03ac2ce0695a5c7e221829c5690ce1e8327d36 (diff)
drm/nouveau/gr/gf100-: support mmio access with gpc offset from gpccs ucode
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpc.fuc12
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgf100.fuc3.h288
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgf117.fuc3.h348
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk104.fuc3.h348
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk110.fuc3.h348
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk208.fuc5.h42
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgm107.fuc5.h42
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/macros.fuc7
8 files changed, 726 insertions, 709 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpc.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpc.fuc
index eaed1599b90f..fd45efa6cdf5 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpc.fuc
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpc.fuc
@@ -52,6 +52,12 @@ mmio_list_base:
52#endif 52#endif
53 53
54#ifdef INCLUDE_CODE 54#ifdef INCLUDE_CODE
55#define gpc_wr32(addr,reg) /*
56*/ mov b32 $r15 reg /*
57*/ imm32($r14, addr) /*
58*/ or $r14 NV_PGRAPH_GPCX_GPCCS_MMIO_CTRL_BASE_ENABLE /*
59*/ call(nv_wr32)
60
55// reports an exception to the host 61// reports an exception to the host
56// 62//
57// In: $r15 error code (see os.h) 63// In: $r15 error code (see os.h)
@@ -101,7 +107,7 @@ init:
101 // enable interrupts 107 // enable interrupts
102 bset $flags ie0 108 bset $flags ie0
103 109
104 // figure out which GPC we are, and how many TPCs we have 110 // how many TPCs do we have?
105 nv_iord($r2, NV_PGRAPH_GPCX_GPCCS_UNITS, 0) 111 nv_iord($r2, NV_PGRAPH_GPCX_GPCCS_UNITS, 0)
106 mov $r3 1 112 mov $r3 1
107 and $r2 0x1f 113 and $r2 0x1f
@@ -109,8 +115,12 @@ init:
109 sub b32 $r3 1 115 sub b32 $r3 1
110 st b32 D[$r0 + #tpc_count] $r2 116 st b32 D[$r0 + #tpc_count] $r2
111 st b32 D[$r0 + #tpc_mask] $r3 117 st b32 D[$r0 + #tpc_mask] $r3
118
119 // determine which GPC we are, setup (optional) mmio access offset
112 nv_iord($r2, NV_PGRAPH_GPCX_GPCCS_MYINDEX, 0) 120 nv_iord($r2, NV_PGRAPH_GPCX_GPCCS_MYINDEX, 0)
113 st b32 D[$r0 + #gpc_id] $r2 121 st b32 D[$r0 + #gpc_id] $r2
122 shl b32 $r2 15
123 nv_iowr(NV_PGRAPH_GPCX_GPCCS_MMIO_BASE, 0, $r2)
114 124
115#if NV_PGRAPH_GPCX_UNK__SIZE > 0 125#if NV_PGRAPH_GPCX_UNK__SIZE > 0
116 // figure out which, and how many, UNKs are actually present 126 // figure out which, and how many, UNKs are actually present
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgf100.fuc3.h b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgf100.fuc3.h
index ea32f56c0a92..4c0beec5d048 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgf100.fuc3.h
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgf100.fuc3.h
@@ -310,7 +310,7 @@ uint32_t gf100_grgpc_code[] = {
310 0x03f01200, 310 0x03f01200,
311 0x0002d000, 311 0x0002d000,
312 0x17f104bd, 312 0x17f104bd,
313 0x10fe04e6, 313 0x10fe04f5,
314 0x0007f100, 314 0x0007f100,
315 0x0003f007, 315 0x0003f007,
316 0xbd0000d0, 316 0xbd0000d0,
@@ -329,157 +329,157 @@ uint32_t gf100_grgpc_code[] = {
329 0xf0860027, 329 0xf0860027,
330 0x22cf0123, 330 0x22cf0123,
331 0x04028000, 331 0x04028000,
332 0x010027f1, 332 0xf10f24b6,
333 0xcf0223f0, 333 0xf0c90007,
334 0x34bd0022, 334 0x02d00103,
335 0xf1082595,
336 0xf0c00007,
337 0x05d00103,
338 0xf104bd00, 335 0xf104bd00,
339 0xf0c10007, 336 0xf0010027,
340 0x05d00103, 337 0x22cf0223,
341 0x9804bd00, 338 0x9534bd00,
342 0x0f98000e, 339 0x07f10825,
343 0x5021f501, 340 0x03f0c000,
344 0x002fbb01, 341 0x0005d001,
345 0x98003fbb, 342 0x07f104bd,
346 0x0f98010e, 343 0x03f0c100,
347 0x5021f502, 344 0x0005d001,
348 0x050e9801, 345 0x0e9804bd,
349 0xbb00effd, 346 0x010f9800,
350 0x3ebb002e, 347 0x015021f5,
351 0x0235b600, 348 0xbb002fbb,
352 0xd30007f1, 349 0x0e98003f,
353 0xd00103f0, 350 0x020f9801,
354 0x04bd0003, 351 0x015021f5,
355 0xb60825b6, 352 0xfd050e98,
356 0x20b60635, 353 0x2ebb00ef,
357 0x0130b601, 354 0x003ebb00,
358 0xb60824b6, 355 0xf10235b6,
359 0x2fb90834, 356 0xf0d30007,
360 0xd321f502, 357 0x03d00103,
361 0x003fbb02, 358 0xb604bd00,
362 0x010007f1, 359 0x35b60825,
360 0x0120b606,
361 0xb60130b6,
362 0x34b60824,
363 0x022fb908,
364 0x02d321f5,
365 0xf1003fbb,
366 0xf0010007,
367 0x03d00203,
368 0xbd04bd00,
369 0x1f29f024,
370 0x080007f1,
363 0xd00203f0, 371 0xd00203f0,
364 0x04bd0003, 372 0x04bd0002,
365 0x29f024bd, 373/* 0x04b8: main */
366 0x0007f11f, 374 0xf40031f4,
367 0x0203f008, 375 0xd7f00028,
368 0xbd0002d0, 376 0x3921f41c,
369/* 0x04a9: main */ 377 0xb0f401f4,
370 0x0031f404, 378 0x18f404e4,
371 0xf00028f4, 379 0x0181fe1e,
372 0x21f41cd7, 380 0xbd0627f0,
373 0xf401f439, 381 0x0412fd20,
374 0xf404e4b0, 382 0xfd01e4b6,
375 0x81fe1e18, 383 0x18fe051e,
376 0x0627f001, 384 0xad21f500,
377 0x12fd20bd, 385 0xd30ef405,
378 0x01e4b604, 386/* 0x04e8: main_not_ctx_xfer */
379 0xfe051efd, 387 0xf010ef94,
380 0x21f50018, 388 0x21f501f5,
381 0x0ef4059e, 389 0x0ef4037e,
382/* 0x04d9: main_not_ctx_xfer */ 390/* 0x04f5: ih */
383 0x10ef94d3, 391 0xfe80f9c6,
384 0xf501f5f0, 392 0x80f90188,
385 0xf4037e21, 393 0xa0f990f9,
386/* 0x04e6: ih */ 394 0xd0f9b0f9,
387 0x80f9c60e, 395 0xf0f9e0f9,
388 0xf90188fe, 396 0xa7f104bd,
389 0xf990f980, 397 0xa3f00200,
390 0xf9b0f9a0, 398 0x00aacf00,
391 0xf9e0f9d0, 399 0xf404abc4,
392 0xf104bdf0, 400 0xd7f02c0b,
393 0xf00200a7, 401 0x00e7f11c,
394 0xaacf00a3, 402 0x00e3f01a,
395 0x04abc400, 403 0xf100eecf,
396 0xf02c0bf4, 404 0xf01900f7,
397 0xe7f11cd7, 405 0xffcf00f3,
398 0xe3f01a00, 406 0x0421f400,
399 0x00eecf00, 407 0xf101e7f0,
400 0x1900f7f1, 408 0xf01d0007,
401 0xcf00f3f0, 409 0x0ed00003,
402 0x21f400ff, 410/* 0x0543: ih_no_fifo */
403 0x01e7f004, 411 0xf104bd00,
404 0x1d0007f1, 412 0xf0010007,
405 0xd00003f0, 413 0x0ad00003,
406 0x04bd000e, 414 0xfc04bd00,
407/* 0x0534: ih_no_fifo */ 415 0xfce0fcf0,
408 0x010007f1, 416 0xfcb0fcd0,
409 0xd00003f0, 417 0xfc90fca0,
410 0x04bd000a, 418 0x0088fe80,
411 0xe0fcf0fc, 419 0x32f480fc,
412 0xb0fcd0fc, 420/* 0x0567: hub_barrier_done */
413 0x90fca0fc, 421 0xf001f800,
414 0x88fe80fc, 422 0x0e9801f7,
415 0xf480fc00, 423 0x04febb04,
416 0x01f80032, 424 0xf102ffb9,
417/* 0x0558: hub_barrier_done */ 425 0xf09418e7,
418 0x9801f7f0, 426 0x21f440e3,
419 0xfebb040e, 427/* 0x057f: ctx_redswitch */
420 0x02ffb904, 428 0xf000f89d,
421 0x9418e7f1, 429 0x07f120f7,
422 0xf440e3f0, 430 0x03f08500,
423 0x00f89d21, 431 0x000fd001,
424/* 0x0570: ctx_redswitch */ 432 0xe7f004bd,
425 0xf120f7f0, 433/* 0x0591: ctx_redswitch_delay */
434 0x01e2b608,
435 0xf1fd1bf4,
436 0xf10800f5,
437 0xf10200f5,
426 0xf0850007, 438 0xf0850007,
427 0x0fd00103, 439 0x0fd00103,
428 0xf004bd00, 440 0xf804bd00,
429/* 0x0582: ctx_redswitch_delay */ 441/* 0x05ad: ctx_xfer */
430 0xe2b608e7, 442 0x0007f100,
431 0xfd1bf401, 443 0x0203f081,
432 0x0800f5f1, 444 0xbd000fd0,
433 0x0200f5f1, 445 0x0711f404,
434 0x850007f1, 446 0x057f21f5,
435 0xd00103f0, 447/* 0x05c0: ctx_xfer_not_load */
436 0x04bd000f, 448 0x026a21f5,
437/* 0x059e: ctx_xfer */ 449 0x07f124bd,
438 0x07f100f8, 450 0x03f047fc,
439 0x03f08100, 451 0x0002d002,
440 0x000fd002, 452 0x2cf004bd,
441 0x11f404bd, 453 0x0320b601,
442 0x7021f507, 454 0x4afc07f1,
443/* 0x05b1: ctx_xfer_not_load */ 455 0xd00203f0,
444 0x6a21f505, 456 0x04bd0002,
445 0xf124bd02,
446 0xf047fc07,
447 0x02d00203,
448 0xf004bd00,
449 0x20b6012c,
450 0xfc07f103,
451 0x0203f04a,
452 0xbd0002d0,
453 0x01acf004,
454 0xf102a5f0,
455 0xf00000b7,
456 0x0c9850b3,
457 0x0fc4b604,
458 0x9800bcbb,
459 0x0d98000c,
460 0x00e7f001,
461 0x016f21f5,
462 0xf001acf0, 457 0xf001acf0,
463 0xb7f104a5, 458 0xb7f102a5,
464 0xb3f04000, 459 0xb3f00000,
465 0x040c9850, 460 0x040c9850,
466 0xbb0fc4b6, 461 0xbb0fc4b6,
467 0x0c9800bc, 462 0x0c9800bc,
468 0x020d9801, 463 0x010d9800,
469 0xf1060f98, 464 0xf500e7f0,
470 0xf50800e7, 465 0xf0016f21,
471 0xf5016f21, 466 0xa5f001ac,
472 0xf4025e21, 467 0x00b7f104,
473 0x12f40601, 468 0x50b3f040,
474/* 0x0629: ctx_xfer_post */ 469 0xb6040c98,
475 0x7f21f507, 470 0xbcbb0fc4,
476/* 0x062d: ctx_xfer_done */ 471 0x010c9800,
477 0x5821f502, 472 0x98020d98,
478 0x0000f805, 473 0xe7f1060f,
479 0x00000000, 474 0x21f50800,
480 0x00000000, 475 0x21f5016f,
481 0x00000000, 476 0x01f4025e,
482 0x00000000, 477 0x0712f406,
478/* 0x0638: ctx_xfer_post */
479 0x027f21f5,
480/* 0x063c: ctx_xfer_done */
481 0x056721f5,
482 0x000000f8,
483 0x00000000, 483 0x00000000,
484 0x00000000, 484 0x00000000,
485 0x00000000, 485 0x00000000,
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgf117.fuc3.h b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgf117.fuc3.h
index 9a36d9cbb8a5..3b4b8491b834 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgf117.fuc3.h
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgf117.fuc3.h
@@ -314,7 +314,7 @@ uint32_t gf117_grgpc_code[] = {
314 0x03f01200, 314 0x03f01200,
315 0x0002d000, 315 0x0002d000,
316 0x17f104bd, 316 0x17f104bd,
317 0x10fe0530, 317 0x10fe053f,
318 0x0007f100, 318 0x0007f100,
319 0x0003f007, 319 0x0003f007,
320 0xbd0000d0, 320 0xbd0000d0,
@@ -333,187 +333,187 @@ uint32_t gf117_grgpc_code[] = {
333 0xf0860027, 333 0xf0860027,
334 0x22cf0123, 334 0x22cf0123,
335 0x04028000, 335 0x04028000,
336 0x0c30e7f1, 336 0xf10f24b6,
337 0xbd50e3f0, 337 0xf0c90007,
338 0xbd34bd24, 338 0x02d00103,
339/* 0x0421: init_unk_loop */
340 0x6821f444,
341 0xf400f6b0,
342 0xf7f00f0b,
343 0x04f2bb01,
344 0xb6054ffd,
345/* 0x0436: init_unk_next */
346 0x20b60130,
347 0x04e0b601,
348 0xf40126b0,
349/* 0x0442: init_unk_done */
350 0x0380e21b,
351 0x08048007,
352 0x010027f1,
353 0xcf0223f0,
354 0x34bd0022,
355 0xf1082595,
356 0xf0c00007,
357 0x05d00103,
358 0xf104bd00, 339 0xf104bd00,
359 0xf0c10007, 340 0xf00c30e7,
360 0x05d00103, 341 0x24bd50e3,
361 0x9804bd00, 342 0x44bd34bd,
362 0x0f98000e, 343/* 0x0430: init_unk_loop */
363 0x5021f501, 344 0xb06821f4,
364 0x002fbb01, 345 0x0bf400f6,
365 0x98003fbb, 346 0x01f7f00f,
366 0x0f98010e, 347 0xfd04f2bb,
367 0x5021f502, 348 0x30b6054f,
368 0x050e9801, 349/* 0x0445: init_unk_next */
369 0xbb00effd, 350 0x0120b601,
370 0x3ebb002e, 351 0xb004e0b6,
371 0x020e9800, 352 0x1bf40126,
372 0xf5030f98, 353/* 0x0451: init_unk_done */
373 0x98015021, 354 0x070380e2,
374 0xeffd070e, 355 0xf1080480,
375 0x002ebb00, 356 0xf0010027,
376 0xb6003ebb, 357 0x22cf0223,
377 0x07f10235, 358 0x9534bd00,
378 0x03f0d300, 359 0x07f10825,
379 0x0003d001, 360 0x03f0c000,
380 0x25b604bd, 361 0x0005d001,
381 0x0635b608,
382 0xb60120b6,
383 0x24b60130,
384 0x0834b608,
385 0xf5022fb9,
386 0xbb02d321,
387 0x07f1003f,
388 0x03f00100,
389 0x0003d002,
390 0x24bd04bd,
391 0xf11f29f0,
392 0xf0080007,
393 0x02d00203,
394/* 0x04f3: main */
395 0xf404bd00,
396 0x28f40031,
397 0x24d7f000,
398 0xf43921f4,
399 0xe4b0f401,
400 0x1e18f404,
401 0xf00181fe,
402 0x20bd0627,
403 0xb60412fd,
404 0x1efd01e4,
405 0x0018fe05,
406 0x05e821f5,
407/* 0x0523: main_not_ctx_xfer */
408 0x94d30ef4,
409 0xf5f010ef,
410 0x7e21f501,
411 0xc60ef403,
412/* 0x0530: ih */
413 0x88fe80f9,
414 0xf980f901,
415 0xf9a0f990,
416 0xf9d0f9b0,
417 0xbdf0f9e0,
418 0x00a7f104,
419 0x00a3f002,
420 0xc400aacf,
421 0x0bf404ab,
422 0x24d7f02c,
423 0x1a00e7f1,
424 0xcf00e3f0,
425 0xf7f100ee,
426 0xf3f01900,
427 0x00ffcf00,
428 0xf00421f4,
429 0x07f101e7,
430 0x03f01d00,
431 0x000ed000,
432/* 0x057e: ih_no_fifo */
433 0x07f104bd, 362 0x07f104bd,
434 0x03f00100, 363 0x03f0c100,
435 0x000ad000, 364 0x0005d001,
436 0xf0fc04bd, 365 0x0e9804bd,
437 0xd0fce0fc, 366 0x010f9800,
438 0xa0fcb0fc, 367 0x015021f5,
439 0x80fc90fc, 368 0xbb002fbb,
440 0xfc0088fe, 369 0x0e98003f,
441 0x0032f480, 370 0x020f9801,
442/* 0x05a2: hub_barrier_done */ 371 0x015021f5,
443 0xf7f001f8, 372 0xfd050e98,
444 0x040e9801, 373 0x2ebb00ef,
445 0xb904febb, 374 0x003ebb00,
446 0xe7f102ff, 375 0x98020e98,
447 0xe3f09418, 376 0x21f5030f,
448 0x9d21f440, 377 0x0e980150,
449/* 0x05ba: ctx_redswitch */ 378 0x00effd07,
450 0xf7f000f8, 379 0xbb002ebb,
451 0x0007f120, 380 0x35b6003e,
381 0x0007f102,
382 0x0103f0d3,
383 0xbd0003d0,
384 0x0825b604,
385 0xb60635b6,
386 0x30b60120,
387 0x0824b601,
388 0xb90834b6,
389 0x21f5022f,
390 0x3fbb02d3,
391 0x0007f100,
392 0x0203f001,
393 0xbd0003d0,
394 0xf024bd04,
395 0x07f11f29,
396 0x03f00800,
397 0x0002d002,
398/* 0x0502: main */
399 0x31f404bd,
400 0x0028f400,
401 0xf424d7f0,
402 0x01f43921,
403 0x04e4b0f4,
404 0xfe1e18f4,
405 0x27f00181,
406 0xfd20bd06,
407 0xe4b60412,
408 0x051efd01,
409 0xf50018fe,
410 0xf405f721,
411/* 0x0532: main_not_ctx_xfer */
412 0xef94d30e,
413 0x01f5f010,
414 0x037e21f5,
415/* 0x053f: ih */
416 0xf9c60ef4,
417 0x0188fe80,
418 0x90f980f9,
419 0xb0f9a0f9,
420 0xe0f9d0f9,
421 0x04bdf0f9,
422 0x0200a7f1,
423 0xcf00a3f0,
424 0xabc400aa,
425 0x2c0bf404,
426 0xf124d7f0,
427 0xf01a00e7,
428 0xeecf00e3,
429 0x00f7f100,
430 0x00f3f019,
431 0xf400ffcf,
432 0xe7f00421,
433 0x0007f101,
434 0x0003f01d,
435 0xbd000ed0,
436/* 0x058d: ih_no_fifo */
437 0x0007f104,
438 0x0003f001,
439 0xbd000ad0,
440 0xfcf0fc04,
441 0xfcd0fce0,
442 0xfca0fcb0,
443 0xfe80fc90,
444 0x80fc0088,
445 0xf80032f4,
446/* 0x05b1: hub_barrier_done */
447 0x01f7f001,
448 0xbb040e98,
449 0xffb904fe,
450 0x18e7f102,
451 0x40e3f094,
452 0xf89d21f4,
453/* 0x05c9: ctx_redswitch */
454 0x20f7f000,
455 0x850007f1,
456 0xd00103f0,
457 0x04bd000f,
458/* 0x05db: ctx_redswitch_delay */
459 0xb608e7f0,
460 0x1bf401e2,
461 0x00f5f1fd,
462 0x00f5f108,
463 0x0007f102,
452 0x0103f085, 464 0x0103f085,
453 0xbd000fd0, 465 0xbd000fd0,
454 0x08e7f004, 466/* 0x05f7: ctx_xfer */
455/* 0x05cc: ctx_redswitch_delay */ 467 0xf100f804,
456 0xf401e2b6, 468 0xf0810007,
457 0xf5f1fd1b, 469 0x0fd00203,
458 0xf5f10800, 470 0xf404bd00,
459 0x07f10200, 471 0x21f50711,
460 0x03f08500, 472/* 0x060a: ctx_xfer_not_load */
461 0x000fd001, 473 0x21f505c9,
462 0x00f804bd, 474 0x24bd026a,
463/* 0x05e8: ctx_xfer */ 475 0x47fc07f1,
464 0x810007f1,
465 0xd00203f0, 476 0xd00203f0,
466 0x04bd000f, 477 0x04bd0002,
467 0xf50711f4, 478 0xb6012cf0,
468/* 0x05fb: ctx_xfer_not_load */ 479 0x07f10320,
469 0xf505ba21, 480 0x03f04afc,
470 0xbd026a21, 481 0x0002d002,
471 0xfc07f124, 482 0xacf004bd,
472 0x0203f047, 483 0x02a5f001,
473 0xbd0002d0, 484 0x0000b7f1,
474 0x012cf004,
475 0xf10320b6,
476 0xf04afc07,
477 0x02d00203,
478 0xf004bd00,
479 0xa5f001ac,
480 0x00b7f102,
481 0x50b3f000,
482 0xb6040c98,
483 0xbcbb0fc4,
484 0x000c9800,
485 0xf0010d98,
486 0x21f500e7,
487 0xacf0016f,
488 0x00b7f101,
489 0x50b3f040,
490 0xb6040c98,
491 0xbcbb0fc4,
492 0x010c9800,
493 0x98020d98,
494 0xe7f1060f,
495 0x21f50800,
496 0xacf0016f,
497 0x04a5f001,
498 0x3000b7f1,
499 0x9850b3f0, 485 0x9850b3f0,
500 0xc4b6040c, 486 0xc4b6040c,
501 0x00bcbb0f, 487 0x00bcbb0f,
502 0x98020c98, 488 0x98000c98,
503 0x0f98030d, 489 0xe7f0010d,
504 0x00e7f108, 490 0x6f21f500,
505 0x6f21f502, 491 0x01acf001,
506 0x5e21f501, 492 0x4000b7f1,
507 0x0601f402, 493 0x9850b3f0,
508/* 0x0697: ctx_xfer_post */ 494 0xc4b6040c,
509 0xf50712f4, 495 0x00bcbb0f,
510/* 0x069b: ctx_xfer_done */ 496 0x98010c98,
511 0xf5027f21, 497 0x0f98020d,
512 0xf805a221, 498 0x00e7f106,
513 0x00000000, 499 0x6f21f508,
514 0x00000000, 500 0x01acf001,
515 0x00000000, 501 0xf104a5f0,
516 0x00000000, 502 0xf03000b7,
503 0x0c9850b3,
504 0x0fc4b604,
505 0x9800bcbb,
506 0x0d98020c,
507 0x080f9803,
508 0x0200e7f1,
509 0x016f21f5,
510 0x025e21f5,
511 0xf40601f4,
512/* 0x06a6: ctx_xfer_post */
513 0x21f50712,
514/* 0x06aa: ctx_xfer_done */
515 0x21f5027f,
516 0x00f805b1,
517 0x00000000, 517 0x00000000,
518 0x00000000, 518 0x00000000,
519 0x00000000, 519 0x00000000,
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk104.fuc3.h b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk104.fuc3.h
index 49020fff4317..e28b0fd11a74 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk104.fuc3.h
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk104.fuc3.h
@@ -314,7 +314,7 @@ uint32_t gk104_grgpc_code[] = {
314 0x03f01200, 314 0x03f01200,
315 0x0002d000, 315 0x0002d000,
316 0x17f104bd, 316 0x17f104bd,
317 0x10fe0530, 317 0x10fe053f,
318 0x0007f100, 318 0x0007f100,
319 0x0003f007, 319 0x0003f007,
320 0xbd0000d0, 320 0xbd0000d0,
@@ -333,187 +333,187 @@ uint32_t gk104_grgpc_code[] = {
333 0xf0860027, 333 0xf0860027,
334 0x22cf0123, 334 0x22cf0123,
335 0x04028000, 335 0x04028000,
336 0x0c30e7f1, 336 0xf10f24b6,
337 0xbd50e3f0, 337 0xf0c90007,
338 0xbd34bd24, 338 0x02d00103,
339/* 0x0421: init_unk_loop */
340 0x6821f444,
341 0xf400f6b0,
342 0xf7f00f0b,
343 0x04f2bb01,
344 0xb6054ffd,
345/* 0x0436: init_unk_next */
346 0x20b60130,
347 0x04e0b601,
348 0xf40126b0,
349/* 0x0442: init_unk_done */
350 0x0380e21b,
351 0x08048007,
352 0x010027f1,
353 0xcf0223f0,
354 0x34bd0022,
355 0xf1082595,
356 0xf0c00007,
357 0x05d00103,
358 0xf104bd00, 339 0xf104bd00,
359 0xf0c10007, 340 0xf00c30e7,
360 0x05d00103, 341 0x24bd50e3,
361 0x9804bd00, 342 0x44bd34bd,
362 0x0f98000e, 343/* 0x0430: init_unk_loop */
363 0x5021f501, 344 0xb06821f4,
364 0x002fbb01, 345 0x0bf400f6,
365 0x98003fbb, 346 0x01f7f00f,
366 0x0f98010e, 347 0xfd04f2bb,
367 0x5021f502, 348 0x30b6054f,
368 0x050e9801, 349/* 0x0445: init_unk_next */
369 0xbb00effd, 350 0x0120b601,
370 0x3ebb002e, 351 0xb004e0b6,
371 0x020e9800, 352 0x1bf40126,
372 0xf5030f98, 353/* 0x0451: init_unk_done */
373 0x98015021, 354 0x070380e2,
374 0xeffd070e, 355 0xf1080480,
375 0x002ebb00, 356 0xf0010027,
376 0xb6003ebb, 357 0x22cf0223,
377 0x07f10235, 358 0x9534bd00,
378 0x03f0d300, 359 0x07f10825,
379 0x0003d001, 360 0x03f0c000,
380 0x25b604bd, 361 0x0005d001,
381 0x0635b608,
382 0xb60120b6,
383 0x24b60130,
384 0x0834b608,
385 0xf5022fb9,
386 0xbb02d321,
387 0x07f1003f,
388 0x03f00100,
389 0x0003d002,
390 0x24bd04bd,
391 0xf11f29f0,
392 0xf0080007,
393 0x02d00203,
394/* 0x04f3: main */
395 0xf404bd00,
396 0x28f40031,
397 0x24d7f000,
398 0xf43921f4,
399 0xe4b0f401,
400 0x1e18f404,
401 0xf00181fe,
402 0x20bd0627,
403 0xb60412fd,
404 0x1efd01e4,
405 0x0018fe05,
406 0x05e821f5,
407/* 0x0523: main_not_ctx_xfer */
408 0x94d30ef4,
409 0xf5f010ef,
410 0x7e21f501,
411 0xc60ef403,
412/* 0x0530: ih */
413 0x88fe80f9,
414 0xf980f901,
415 0xf9a0f990,
416 0xf9d0f9b0,
417 0xbdf0f9e0,
418 0x00a7f104,
419 0x00a3f002,
420 0xc400aacf,
421 0x0bf404ab,
422 0x24d7f02c,
423 0x1a00e7f1,
424 0xcf00e3f0,
425 0xf7f100ee,
426 0xf3f01900,
427 0x00ffcf00,
428 0xf00421f4,
429 0x07f101e7,
430 0x03f01d00,
431 0x000ed000,
432/* 0x057e: ih_no_fifo */
433 0x07f104bd, 362 0x07f104bd,
434 0x03f00100, 363 0x03f0c100,
435 0x000ad000, 364 0x0005d001,
436 0xf0fc04bd, 365 0x0e9804bd,
437 0xd0fce0fc, 366 0x010f9800,
438 0xa0fcb0fc, 367 0x015021f5,
439 0x80fc90fc, 368 0xbb002fbb,
440 0xfc0088fe, 369 0x0e98003f,
441 0x0032f480, 370 0x020f9801,
442/* 0x05a2: hub_barrier_done */ 371 0x015021f5,
443 0xf7f001f8, 372 0xfd050e98,
444 0x040e9801, 373 0x2ebb00ef,
445 0xb904febb, 374 0x003ebb00,
446 0xe7f102ff, 375 0x98020e98,
447 0xe3f09418, 376 0x21f5030f,
448 0x9d21f440, 377 0x0e980150,
449/* 0x05ba: ctx_redswitch */ 378 0x00effd07,
450 0xf7f000f8, 379 0xbb002ebb,
451 0x0007f120, 380 0x35b6003e,
381 0x0007f102,
382 0x0103f0d3,
383 0xbd0003d0,
384 0x0825b604,
385 0xb60635b6,
386 0x30b60120,
387 0x0824b601,
388 0xb90834b6,
389 0x21f5022f,
390 0x3fbb02d3,
391 0x0007f100,
392 0x0203f001,
393 0xbd0003d0,
394 0xf024bd04,
395 0x07f11f29,
396 0x03f00800,
397 0x0002d002,
398/* 0x0502: main */
399 0x31f404bd,
400 0x0028f400,
401 0xf424d7f0,
402 0x01f43921,
403 0x04e4b0f4,
404 0xfe1e18f4,
405 0x27f00181,
406 0xfd20bd06,
407 0xe4b60412,
408 0x051efd01,
409 0xf50018fe,
410 0xf405f721,
411/* 0x0532: main_not_ctx_xfer */
412 0xef94d30e,
413 0x01f5f010,
414 0x037e21f5,
415/* 0x053f: ih */
416 0xf9c60ef4,
417 0x0188fe80,
418 0x90f980f9,
419 0xb0f9a0f9,
420 0xe0f9d0f9,
421 0x04bdf0f9,
422 0x0200a7f1,
423 0xcf00a3f0,
424 0xabc400aa,
425 0x2c0bf404,
426 0xf124d7f0,
427 0xf01a00e7,
428 0xeecf00e3,
429 0x00f7f100,
430 0x00f3f019,
431 0xf400ffcf,
432 0xe7f00421,
433 0x0007f101,
434 0x0003f01d,
435 0xbd000ed0,
436/* 0x058d: ih_no_fifo */
437 0x0007f104,
438 0x0003f001,
439 0xbd000ad0,
440 0xfcf0fc04,
441 0xfcd0fce0,
442 0xfca0fcb0,
443 0xfe80fc90,
444 0x80fc0088,
445 0xf80032f4,
446/* 0x05b1: hub_barrier_done */
447 0x01f7f001,
448 0xbb040e98,
449 0xffb904fe,
450 0x18e7f102,
451 0x40e3f094,
452 0xf89d21f4,
453/* 0x05c9: ctx_redswitch */
454 0x20f7f000,
455 0x850007f1,
456 0xd00103f0,
457 0x04bd000f,
458/* 0x05db: ctx_redswitch_delay */
459 0xb608e7f0,
460 0x1bf401e2,
461 0x00f5f1fd,
462 0x00f5f108,
463 0x0007f102,
452 0x0103f085, 464 0x0103f085,
453 0xbd000fd0, 465 0xbd000fd0,
454 0x08e7f004, 466/* 0x05f7: ctx_xfer */
455/* 0x05cc: ctx_redswitch_delay */ 467 0xf100f804,
456 0xf401e2b6, 468 0xf0810007,
457 0xf5f1fd1b, 469 0x0fd00203,
458 0xf5f10800, 470 0xf404bd00,
459 0x07f10200, 471 0x21f50711,
460 0x03f08500, 472/* 0x060a: ctx_xfer_not_load */
461 0x000fd001, 473 0x21f505c9,
462 0x00f804bd, 474 0x24bd026a,
463/* 0x05e8: ctx_xfer */ 475 0x47fc07f1,
464 0x810007f1,
465 0xd00203f0, 476 0xd00203f0,
466 0x04bd000f, 477 0x04bd0002,
467 0xf50711f4, 478 0xb6012cf0,
468/* 0x05fb: ctx_xfer_not_load */ 479 0x07f10320,
469 0xf505ba21, 480 0x03f04afc,
470 0xbd026a21, 481 0x0002d002,
471 0xfc07f124, 482 0xacf004bd,
472 0x0203f047, 483 0x02a5f001,
473 0xbd0002d0, 484 0x0000b7f1,
474 0x012cf004,
475 0xf10320b6,
476 0xf04afc07,
477 0x02d00203,
478 0xf004bd00,
479 0xa5f001ac,
480 0x00b7f102,
481 0x50b3f000,
482 0xb6040c98,
483 0xbcbb0fc4,
484 0x000c9800,
485 0xf0010d98,
486 0x21f500e7,
487 0xacf0016f,
488 0x00b7f101,
489 0x50b3f040,
490 0xb6040c98,
491 0xbcbb0fc4,
492 0x010c9800,
493 0x98020d98,
494 0xe7f1060f,
495 0x21f50800,
496 0xacf0016f,
497 0x04a5f001,
498 0x3000b7f1,
499 0x9850b3f0, 485 0x9850b3f0,
500 0xc4b6040c, 486 0xc4b6040c,
501 0x00bcbb0f, 487 0x00bcbb0f,
502 0x98020c98, 488 0x98000c98,
503 0x0f98030d, 489 0xe7f0010d,
504 0x00e7f108, 490 0x6f21f500,
505 0x6f21f502, 491 0x01acf001,
506 0x5e21f501, 492 0x4000b7f1,
507 0x0601f402, 493 0x9850b3f0,
508/* 0x0697: ctx_xfer_post */ 494 0xc4b6040c,
509 0xf50712f4, 495 0x00bcbb0f,
510/* 0x069b: ctx_xfer_done */ 496 0x98010c98,
511 0xf5027f21, 497 0x0f98020d,
512 0xf805a221, 498 0x00e7f106,
513 0x00000000, 499 0x6f21f508,
514 0x00000000, 500 0x01acf001,
515 0x00000000, 501 0xf104a5f0,
516 0x00000000, 502 0xf03000b7,
503 0x0c9850b3,
504 0x0fc4b604,
505 0x9800bcbb,
506 0x0d98020c,
507 0x080f9803,
508 0x0200e7f1,
509 0x016f21f5,
510 0x025e21f5,
511 0xf40601f4,
512/* 0x06a6: ctx_xfer_post */
513 0x21f50712,
514/* 0x06aa: ctx_xfer_done */
515 0x21f5027f,
516 0x00f805b1,
517 0x00000000, 517 0x00000000,
518 0x00000000, 518 0x00000000,
519 0x00000000, 519 0x00000000,
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk110.fuc3.h b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk110.fuc3.h
index c95b07e3bce5..8aae7e8092ca 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk110.fuc3.h
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk110.fuc3.h
@@ -314,7 +314,7 @@ uint32_t gk110_grgpc_code[] = {
314 0x03f01200, 314 0x03f01200,
315 0x0002d000, 315 0x0002d000,
316 0x17f104bd, 316 0x17f104bd,
317 0x10fe0530, 317 0x10fe053f,
318 0x0007f100, 318 0x0007f100,
319 0x0003f007, 319 0x0003f007,
320 0xbd0000d0, 320 0xbd0000d0,
@@ -333,187 +333,187 @@ uint32_t gk110_grgpc_code[] = {
333 0xf0860027, 333 0xf0860027,
334 0x22cf0123, 334 0x22cf0123,
335 0x04028000, 335 0x04028000,
336 0x0c30e7f1, 336 0xf10f24b6,
337 0xbd50e3f0, 337 0xf0c90007,
338 0xbd34bd24, 338 0x02d00103,
339/* 0x0421: init_unk_loop */
340 0x6821f444,
341 0xf400f6b0,
342 0xf7f00f0b,
343 0x04f2bb01,
344 0xb6054ffd,
345/* 0x0436: init_unk_next */
346 0x20b60130,
347 0x04e0b601,
348 0xf40226b0,
349/* 0x0442: init_unk_done */
350 0x0380e21b,
351 0x08048007,
352 0x010027f1,
353 0xcf0223f0,
354 0x34bd0022,
355 0xf1082595,
356 0xf0c00007,
357 0x05d00103,
358 0xf104bd00, 339 0xf104bd00,
359 0xf0c10007, 340 0xf00c30e7,
360 0x05d00103, 341 0x24bd50e3,
361 0x9804bd00, 342 0x44bd34bd,
362 0x0f98000e, 343/* 0x0430: init_unk_loop */
363 0x5021f501, 344 0xb06821f4,
364 0x002fbb01, 345 0x0bf400f6,
365 0x98003fbb, 346 0x01f7f00f,
366 0x0f98010e, 347 0xfd04f2bb,
367 0x5021f502, 348 0x30b6054f,
368 0x050e9801, 349/* 0x0445: init_unk_next */
369 0xbb00effd, 350 0x0120b601,
370 0x3ebb002e, 351 0xb004e0b6,
371 0x020e9800, 352 0x1bf40226,
372 0xf5030f98, 353/* 0x0451: init_unk_done */
373 0x98015021, 354 0x070380e2,
374 0xeffd070e, 355 0xf1080480,
375 0x002ebb00, 356 0xf0010027,
376 0xb6003ebb, 357 0x22cf0223,
377 0x07f10235, 358 0x9534bd00,
378 0x03f0d300, 359 0x07f10825,
379 0x0003d001, 360 0x03f0c000,
380 0x25b604bd, 361 0x0005d001,
381 0x0635b608,
382 0xb60120b6,
383 0x24b60130,
384 0x0834b608,
385 0xf5022fb9,
386 0xbb02d321,
387 0x07f1003f,
388 0x03f00100,
389 0x0003d002,
390 0x24bd04bd,
391 0xf11f29f0,
392 0xf0300007,
393 0x02d00203,
394/* 0x04f3: main */
395 0xf404bd00,
396 0x28f40031,
397 0x24d7f000,
398 0xf43921f4,
399 0xe4b0f401,
400 0x1e18f404,
401 0xf00181fe,
402 0x20bd0627,
403 0xb60412fd,
404 0x1efd01e4,
405 0x0018fe05,
406 0x05e821f5,
407/* 0x0523: main_not_ctx_xfer */
408 0x94d30ef4,
409 0xf5f010ef,
410 0x7e21f501,
411 0xc60ef403,
412/* 0x0530: ih */
413 0x88fe80f9,
414 0xf980f901,
415 0xf9a0f990,
416 0xf9d0f9b0,
417 0xbdf0f9e0,
418 0x00a7f104,
419 0x00a3f002,
420 0xc400aacf,
421 0x0bf404ab,
422 0x24d7f02c,
423 0x1a00e7f1,
424 0xcf00e3f0,
425 0xf7f100ee,
426 0xf3f01900,
427 0x00ffcf00,
428 0xf00421f4,
429 0x07f101e7,
430 0x03f01d00,
431 0x000ed000,
432/* 0x057e: ih_no_fifo */
433 0x07f104bd, 362 0x07f104bd,
434 0x03f00100, 363 0x03f0c100,
435 0x000ad000, 364 0x0005d001,
436 0xf0fc04bd, 365 0x0e9804bd,
437 0xd0fce0fc, 366 0x010f9800,
438 0xa0fcb0fc, 367 0x015021f5,
439 0x80fc90fc, 368 0xbb002fbb,
440 0xfc0088fe, 369 0x0e98003f,
441 0x0032f480, 370 0x020f9801,
442/* 0x05a2: hub_barrier_done */ 371 0x015021f5,
443 0xf7f001f8, 372 0xfd050e98,
444 0x040e9801, 373 0x2ebb00ef,
445 0xb904febb, 374 0x003ebb00,
446 0xe7f102ff, 375 0x98020e98,
447 0xe3f09418, 376 0x21f5030f,
448 0x9d21f440, 377 0x0e980150,
449/* 0x05ba: ctx_redswitch */ 378 0x00effd07,
450 0xf7f000f8, 379 0xbb002ebb,
451 0x0007f120, 380 0x35b6003e,
381 0x0007f102,
382 0x0103f0d3,
383 0xbd0003d0,
384 0x0825b604,
385 0xb60635b6,
386 0x30b60120,
387 0x0824b601,
388 0xb90834b6,
389 0x21f5022f,
390 0x3fbb02d3,
391 0x0007f100,
392 0x0203f001,
393 0xbd0003d0,
394 0xf024bd04,
395 0x07f11f29,
396 0x03f03000,
397 0x0002d002,
398/* 0x0502: main */
399 0x31f404bd,
400 0x0028f400,
401 0xf424d7f0,
402 0x01f43921,
403 0x04e4b0f4,
404 0xfe1e18f4,
405 0x27f00181,
406 0xfd20bd06,
407 0xe4b60412,
408 0x051efd01,
409 0xf50018fe,
410 0xf405f721,
411/* 0x0532: main_not_ctx_xfer */
412 0xef94d30e,
413 0x01f5f010,
414 0x037e21f5,
415/* 0x053f: ih */
416 0xf9c60ef4,
417 0x0188fe80,
418 0x90f980f9,
419 0xb0f9a0f9,
420 0xe0f9d0f9,
421 0x04bdf0f9,
422 0x0200a7f1,
423 0xcf00a3f0,
424 0xabc400aa,
425 0x2c0bf404,
426 0xf124d7f0,
427 0xf01a00e7,
428 0xeecf00e3,
429 0x00f7f100,
430 0x00f3f019,
431 0xf400ffcf,
432 0xe7f00421,
433 0x0007f101,
434 0x0003f01d,
435 0xbd000ed0,
436/* 0x058d: ih_no_fifo */
437 0x0007f104,
438 0x0003f001,
439 0xbd000ad0,
440 0xfcf0fc04,
441 0xfcd0fce0,
442 0xfca0fcb0,
443 0xfe80fc90,
444 0x80fc0088,
445 0xf80032f4,
446/* 0x05b1: hub_barrier_done */
447 0x01f7f001,
448 0xbb040e98,
449 0xffb904fe,
450 0x18e7f102,
451 0x40e3f094,
452 0xf89d21f4,
453/* 0x05c9: ctx_redswitch */
454 0x20f7f000,
455 0x850007f1,
456 0xd00103f0,
457 0x04bd000f,
458/* 0x05db: ctx_redswitch_delay */
459 0xb608e7f0,
460 0x1bf401e2,
461 0x00f5f1fd,
462 0x00f5f108,
463 0x0007f102,
452 0x0103f085, 464 0x0103f085,
453 0xbd000fd0, 465 0xbd000fd0,
454 0x08e7f004, 466/* 0x05f7: ctx_xfer */
455/* 0x05cc: ctx_redswitch_delay */ 467 0xf100f804,
456 0xf401e2b6, 468 0xf0810007,
457 0xf5f1fd1b, 469 0x0fd00203,
458 0xf5f10800, 470 0xf404bd00,
459 0x07f10200, 471 0x21f50711,
460 0x03f08500, 472/* 0x060a: ctx_xfer_not_load */
461 0x000fd001, 473 0x21f505c9,
462 0x00f804bd, 474 0x24bd026a,
463/* 0x05e8: ctx_xfer */ 475 0x47fc07f1,
464 0x810007f1,
465 0xd00203f0, 476 0xd00203f0,
466 0x04bd000f, 477 0x04bd0002,
467 0xf50711f4, 478 0xb6012cf0,
468/* 0x05fb: ctx_xfer_not_load */ 479 0x07f10320,
469 0xf505ba21, 480 0x03f04afc,
470 0xbd026a21, 481 0x0002d002,
471 0xfc07f124, 482 0xacf004bd,
472 0x0203f047, 483 0x02a5f001,
473 0xbd0002d0, 484 0x0000b7f1,
474 0x012cf004,
475 0xf10320b6,
476 0xf04afc07,
477 0x02d00203,
478 0xf004bd00,
479 0xa5f001ac,
480 0x00b7f102,
481 0x50b3f000,
482 0xb6040c98,
483 0xbcbb0fc4,
484 0x000c9800,
485 0xf0010d98,
486 0x21f500e7,
487 0xacf0016f,
488 0x00b7f101,
489 0x50b3f040,
490 0xb6040c98,
491 0xbcbb0fc4,
492 0x010c9800,
493 0x98020d98,
494 0xe7f1060f,
495 0x21f50800,
496 0xacf0016f,
497 0x04a5f001,
498 0x3000b7f1,
499 0x9850b3f0, 485 0x9850b3f0,
500 0xc4b6040c, 486 0xc4b6040c,
501 0x00bcbb0f, 487 0x00bcbb0f,
502 0x98020c98, 488 0x98000c98,
503 0x0f98030d, 489 0xe7f0010d,
504 0x00e7f108, 490 0x6f21f500,
505 0x6f21f502, 491 0x01acf001,
506 0x5e21f501, 492 0x4000b7f1,
507 0x0601f402, 493 0x9850b3f0,
508/* 0x0697: ctx_xfer_post */ 494 0xc4b6040c,
509 0xf50712f4, 495 0x00bcbb0f,
510/* 0x069b: ctx_xfer_done */ 496 0x98010c98,
511 0xf5027f21, 497 0x0f98020d,
512 0xf805a221, 498 0x00e7f106,
513 0x00000000, 499 0x6f21f508,
514 0x00000000, 500 0x01acf001,
515 0x00000000, 501 0xf104a5f0,
516 0x00000000, 502 0xf03000b7,
503 0x0c9850b3,
504 0x0fc4b604,
505 0x9800bcbb,
506 0x0d98020c,
507 0x080f9803,
508 0x0200e7f1,
509 0x016f21f5,
510 0x025e21f5,
511 0xf40601f4,
512/* 0x06a6: ctx_xfer_post */
513 0x21f50712,
514/* 0x06aa: ctx_xfer_done */
515 0x21f5027f,
516 0x00f805b1,
517 0x00000000, 517 0x00000000,
518 0x00000000, 518 0x00000000,
519 0x00000000, 519 0x00000000,
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk208.fuc5.h b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk208.fuc5.h
index 7e1c28ee7591..e40c6e43eb86 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk208.fuc5.h
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgk208.fuc5.h
@@ -276,7 +276,7 @@ uint32_t gk208_grgpc_code[] = {
276 0x02020014, 276 0x02020014,
277 0xf6120040, 277 0xf6120040,
278 0x04bd0002, 278 0x04bd0002,
279 0xfe047241, 279 0xfe047e41,
280 0x00400010, 280 0x00400010,
281 0x0000f607, 281 0x0000f607,
282 0x040204bd, 282 0x040204bd,
@@ -291,20 +291,23 @@ uint32_t gk208_grgpc_code[] = {
291 0x820603b5, 291 0x820603b5,
292 0xcf018600, 292 0xcf018600,
293 0x02b50022, 293 0x02b50022,
294 0x0f24b604,
295 0x01c90080,
296 0xbd0002f6,
294 0x0c308e04, 297 0x0c308e04,
295 0xbd24bd50, 298 0xbd24bd50,
296/* 0x0377: init_unk_loop */ 299/* 0x0383: init_unk_loop */
297 0x7e44bd34, 300 0x7e44bd34,
298 0xb0000065, 301 0xb0000065,
299 0x0bf400f6, 302 0x0bf400f6,
300 0xbb010f0e, 303 0xbb010f0e,
301 0x4ffd04f2, 304 0x4ffd04f2,
302 0x0130b605, 305 0x0130b605,
303/* 0x038c: init_unk_next */ 306/* 0x0398: init_unk_next */
304 0xb60120b6, 307 0xb60120b6,
305 0x26b004e0, 308 0x26b004e0,
306 0xe21bf401, 309 0xe21bf401,
307/* 0x0398: init_unk_done */ 310/* 0x03a4: init_unk_done */
308 0xb50703b5, 311 0xb50703b5,
309 0x00820804, 312 0x00820804,
310 0x22cf0201, 313 0x22cf0201,
@@ -344,7 +347,7 @@ uint32_t gk208_grgpc_code[] = {
344 0x29f024bd, 347 0x29f024bd,
345 0x3000801f, 348 0x3000801f,
346 0x0002f602, 349 0x0002f602,
347/* 0x0436: main */ 350/* 0x0442: main */
348 0x31f404bd, 351 0x31f404bd,
349 0x0028f400, 352 0x0028f400,
350 0x377e240d, 353 0x377e240d,
@@ -355,13 +358,13 @@ uint32_t gk208_grgpc_code[] = {
355 0x12fd20bd, 358 0x12fd20bd,
356 0x01e4b604, 359 0x01e4b604,
357 0xfe051efd, 360 0xfe051efd,
358 0x097e0018, 361 0x157e0018,
359 0x0ef40005, 362 0x0ef40005,
360/* 0x0465: main_not_ctx_xfer */ 363/* 0x0471: main_not_ctx_xfer */
361 0x10ef94d4, 364 0x10ef94d4,
362 0x7e01f5f0, 365 0x7e01f5f0,
363 0xf40002f8, 366 0xf40002f8,
364/* 0x0472: ih */ 367/* 0x047e: ih */
365 0x80f9c70e, 368 0x80f9c70e,
366 0xf90188fe, 369 0xf90188fe,
367 0xf990f980, 370 0xf990f980,
@@ -377,7 +380,7 @@ uint32_t gk208_grgpc_code[] = {
377 0x00047e00, 380 0x00047e00,
378 0x40010e00, 381 0x40010e00,
379 0x0ef61d00, 382 0x0ef61d00,
380/* 0x04af: ih_no_fifo */ 383/* 0x04bb: ih_no_fifo */
381 0x4004bd00, 384 0x4004bd00,
382 0x0af60100, 385 0x0af60100,
383 0xfc04bd00, 386 0xfc04bd00,
@@ -386,30 +389,30 @@ uint32_t gk208_grgpc_code[] = {
386 0xfc90fca0, 389 0xfc90fca0,
387 0x0088fe80, 390 0x0088fe80,
388 0x32f480fc, 391 0x32f480fc,
389/* 0x04cf: hub_barrier_done */ 392/* 0x04db: hub_barrier_done */
390 0x0f01f800, 393 0x0f01f800,
391 0x040e9801, 394 0x040e9801,
392 0xb204febb, 395 0xb204febb,
393 0x94188eff, 396 0x94188eff,
394 0x008f7e40, 397 0x008f7e40,
395/* 0x04e3: ctx_redswitch */ 398/* 0x04ef: ctx_redswitch */
396 0x0f00f800, 399 0x0f00f800,
397 0x85008020, 400 0x85008020,
398 0x000ff601, 401 0x000ff601,
399 0x080e04bd, 402 0x080e04bd,
400/* 0x04f0: ctx_redswitch_delay */ 403/* 0x04fc: ctx_redswitch_delay */
401 0xf401e2b6, 404 0xf401e2b6,
402 0xf5f1fd1b, 405 0xf5f1fd1b,
403 0xf5f10800, 406 0xf5f10800,
404 0x00800200, 407 0x00800200,
405 0x0ff60185, 408 0x0ff60185,
406 0xf804bd00, 409 0xf804bd00,
407/* 0x0509: ctx_xfer */ 410/* 0x0515: ctx_xfer */
408 0x81008000, 411 0x81008000,
409 0x000ff602, 412 0x000ff602,
410 0x11f404bd, 413 0x11f404bd,
411 0x04e37e07, 414 0x04ef7e07,
412/* 0x0519: ctx_xfer_not_load */ 415/* 0x0525: ctx_xfer_not_load */
413 0x02167e00, 416 0x02167e00,
414 0x8024bd00, 417 0x8024bd00,
415 0xf60247fc, 418 0xf60247fc,
@@ -444,14 +447,11 @@ uint32_t gk208_grgpc_code[] = {
444 0x013d7e02, 447 0x013d7e02,
445 0x020a7e00, 448 0x020a7e00,
446 0x0601f400, 449 0x0601f400,
447/* 0x05a3: ctx_xfer_post */ 450/* 0x05af: ctx_xfer_post */
448 0x7e0712f4, 451 0x7e0712f4,
449/* 0x05a7: ctx_xfer_done */ 452/* 0x05b3: ctx_xfer_done */
450 0x7e000227, 453 0x7e000227,
451 0xf80004cf, 454 0xf80004db,
452 0x00000000,
453 0x00000000,
454 0x00000000,
455 0x00000000, 455 0x00000000,
456 0x00000000, 456 0x00000000,
457 0x00000000, 457 0x00000000,
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgm107.fuc5.h b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgm107.fuc5.h
index 6d53b67dd3c4..fbbaea85ace7 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgm107.fuc5.h
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpcgm107.fuc5.h
@@ -276,7 +276,7 @@ uint32_t gm107_grgpc_code[] = {
276 0x02020014, 276 0x02020014,
277 0xf6120040, 277 0xf6120040,
278 0x04bd0002, 278 0x04bd0002,
279 0xfe047241, 279 0xfe047e41,
280 0x00400010, 280 0x00400010,
281 0x0000f607, 281 0x0000f607,
282 0x040204bd, 282 0x040204bd,
@@ -291,20 +291,23 @@ uint32_t gm107_grgpc_code[] = {
291 0x820603b5, 291 0x820603b5,
292 0xcf018600, 292 0xcf018600,
293 0x02b50022, 293 0x02b50022,
294 0x0f24b604,
295 0x01c90080,
296 0xbd0002f6,
294 0x0c308e04, 297 0x0c308e04,
295 0xbd24bd50, 298 0xbd24bd50,
296/* 0x0377: init_unk_loop */ 299/* 0x0383: init_unk_loop */
297 0x7e44bd34, 300 0x7e44bd34,
298 0xb0000065, 301 0xb0000065,
299 0x0bf400f6, 302 0x0bf400f6,
300 0xbb010f0e, 303 0xbb010f0e,
301 0x4ffd04f2, 304 0x4ffd04f2,
302 0x0130b605, 305 0x0130b605,
303/* 0x038c: init_unk_next */ 306/* 0x0398: init_unk_next */
304 0xb60120b6, 307 0xb60120b6,
305 0x26b004e0, 308 0x26b004e0,
306 0xe21bf402, 309 0xe21bf402,
307/* 0x0398: init_unk_done */ 310/* 0x03a4: init_unk_done */
308 0xb50703b5, 311 0xb50703b5,
309 0x00820804, 312 0x00820804,
310 0x22cf0201, 313 0x22cf0201,
@@ -344,7 +347,7 @@ uint32_t gm107_grgpc_code[] = {
344 0x29f024bd, 347 0x29f024bd,
345 0x3000801f, 348 0x3000801f,
346 0x0002f602, 349 0x0002f602,
347/* 0x0436: main */ 350/* 0x0442: main */
348 0x31f404bd, 351 0x31f404bd,
349 0x0028f400, 352 0x0028f400,
350 0x377e240d, 353 0x377e240d,
@@ -355,13 +358,13 @@ uint32_t gm107_grgpc_code[] = {
355 0x12fd20bd, 358 0x12fd20bd,
356 0x01e4b604, 359 0x01e4b604,
357 0xfe051efd, 360 0xfe051efd,
358 0x097e0018, 361 0x157e0018,
359 0x0ef40005, 362 0x0ef40005,
360/* 0x0465: main_not_ctx_xfer */ 363/* 0x0471: main_not_ctx_xfer */
361 0x10ef94d4, 364 0x10ef94d4,
362 0x7e01f5f0, 365 0x7e01f5f0,
363 0xf40002f8, 366 0xf40002f8,
364/* 0x0472: ih */ 367/* 0x047e: ih */
365 0x80f9c70e, 368 0x80f9c70e,
366 0xf90188fe, 369 0xf90188fe,
367 0xf990f980, 370 0xf990f980,
@@ -377,7 +380,7 @@ uint32_t gm107_grgpc_code[] = {
377 0x00047e00, 380 0x00047e00,
378 0x40010e00, 381 0x40010e00,
379 0x0ef61d00, 382 0x0ef61d00,
380/* 0x04af: ih_no_fifo */ 383/* 0x04bb: ih_no_fifo */
381 0x4004bd00, 384 0x4004bd00,
382 0x0af60100, 385 0x0af60100,
383 0xfc04bd00, 386 0xfc04bd00,
@@ -386,30 +389,30 @@ uint32_t gm107_grgpc_code[] = {
386 0xfc90fca0, 389 0xfc90fca0,
387 0x0088fe80, 390 0x0088fe80,
388 0x32f480fc, 391 0x32f480fc,
389/* 0x04cf: hub_barrier_done */ 392/* 0x04db: hub_barrier_done */
390 0x0f01f800, 393 0x0f01f800,
391 0x040e9801, 394 0x040e9801,
392 0xb204febb, 395 0xb204febb,
393 0x94188eff, 396 0x94188eff,
394 0x008f7e40, 397 0x008f7e40,
395/* 0x04e3: ctx_redswitch */ 398/* 0x04ef: ctx_redswitch */
396 0x0f00f800, 399 0x0f00f800,
397 0x85008020, 400 0x85008020,
398 0x000ff601, 401 0x000ff601,
399 0x080e04bd, 402 0x080e04bd,
400/* 0x04f0: ctx_redswitch_delay */ 403/* 0x04fc: ctx_redswitch_delay */
401 0xf401e2b6, 404 0xf401e2b6,
402 0xf5f1fd1b, 405 0xf5f1fd1b,
403 0xf5f10800, 406 0xf5f10800,
404 0x00800200, 407 0x00800200,
405 0x0ff60185, 408 0x0ff60185,
406 0xf804bd00, 409 0xf804bd00,
407/* 0x0509: ctx_xfer */ 410/* 0x0515: ctx_xfer */
408 0x81008000, 411 0x81008000,
409 0x000ff602, 412 0x000ff602,
410 0x11f404bd, 413 0x11f404bd,
411 0x04e37e07, 414 0x04ef7e07,
412/* 0x0519: ctx_xfer_not_load */ 415/* 0x0525: ctx_xfer_not_load */
413 0x02167e00, 416 0x02167e00,
414 0x8024bd00, 417 0x8024bd00,
415 0xf60247fc, 418 0xf60247fc,
@@ -444,14 +447,11 @@ uint32_t gm107_grgpc_code[] = {
444 0x013d7e02, 447 0x013d7e02,
445 0x020a7e00, 448 0x020a7e00,
446 0x0601f400, 449 0x0601f400,
447/* 0x05a3: ctx_xfer_post */ 450/* 0x05af: ctx_xfer_post */
448 0x7e0712f4, 451 0x7e0712f4,
449/* 0x05a7: ctx_xfer_done */ 452/* 0x05b3: ctx_xfer_done */
450 0x7e000227, 453 0x7e000227,
451 0xf80004cf, 454 0xf80004db,
452 0x00000000,
453 0x00000000,
454 0x00000000,
455 0x00000000, 455 0x00000000,
456 0x00000000, 456 0x00000000,
457 0x00000000, 457 0x00000000,
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/macros.fuc b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/macros.fuc
index 2a0b0f844299..fea7bf26b81d 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/macros.fuc
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/macros.fuc
@@ -79,7 +79,9 @@
79#define NV_PGRAPH_FECS_MMCTX_MULTI_STRIDE 0x409718 79#define NV_PGRAPH_FECS_MMCTX_MULTI_STRIDE 0x409718
80#define NV_PGRAPH_FECS_MMCTX_MULTI_MASK 0x40971c 80#define NV_PGRAPH_FECS_MMCTX_MULTI_MASK 0x40971c
81#define NV_PGRAPH_FECS_MMCTX_QUEUE 0x409720 81#define NV_PGRAPH_FECS_MMCTX_QUEUE 0x409720
82#define NV_PGRAPH_FECS_MMIO_BASE 0x409724
82#define NV_PGRAPH_FECS_MMIO_CTRL 0x409728 83#define NV_PGRAPH_FECS_MMIO_CTRL 0x409728
84#define NV_PGRAPH_FECS_MMIO_CTRL_BASE_ENABLE 0x00000001
83#define NV_PGRAPH_FECS_MMIO_RDVAL 0x40972c 85#define NV_PGRAPH_FECS_MMIO_RDVAL 0x40972c
84#define NV_PGRAPH_FECS_MMIO_WRVAL 0x409730 86#define NV_PGRAPH_FECS_MMIO_WRVAL 0x409730
85#define NV_PGRAPH_FECS_MMCTX_LOAD_COUNT 0x40974c 87#define NV_PGRAPH_FECS_MMCTX_LOAD_COUNT 0x40974c
@@ -147,6 +149,11 @@
147#define NV_PGRAPH_GPCX_GPCCS_MYINDEX 0x41a618 149#define NV_PGRAPH_GPCX_GPCCS_MYINDEX 0x41a618
148#define NV_PGRAPH_GPCX_GPCCS_MMCTX_SAVE_SWBASE 0x41a700 150#define NV_PGRAPH_GPCX_GPCCS_MMCTX_SAVE_SWBASE 0x41a700
149#define NV_PGRAPH_GPCX_GPCCS_MMCTX_LOAD_SWBASE 0x41a704 151#define NV_PGRAPH_GPCX_GPCCS_MMCTX_LOAD_SWBASE 0x41a704
152#define NV_PGRAPH_GPCX_GPCCS_MMIO_BASE 0x41a724
153#define NV_PGRAPH_GPCX_GPCCS_MMIO_CTRL 0x41a728
154#define NV_PGRAPH_GPCX_GPCCS_MMIO_CTRL_BASE_ENABLE 0x00000001
155#define NV_PGRAPH_GPCX_GPCCS_MMIO_RDVAL 0x41a72c
156#define NV_PGRAPH_GPCX_GPCCS_MMIO_WRVAL 0x41a730
150#define NV_PGRAPH_GPCX_GPCCS_MMCTX_LOAD_COUNT 0x41a74c 157#define NV_PGRAPH_GPCX_GPCCS_MMCTX_LOAD_COUNT 0x41a74c
151#if CHIPSET < GK110 158#if CHIPSET < GK110
152#define NV_PGRAPH_GPCX_GPCCS_CC_SCRATCH_VAL(n) ((n) * 4 + 0x41a800) 159#define NV_PGRAPH_GPCX_GPCCS_CC_SCRATCH_VAL(n) ((n) * 4 + 0x41a800)