From 5d91e1916d2f37fc631f8562e90cfb4387d98cac Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Tue, 10 Dec 2013 14:08:10 +1000 Subject: [PATCH] drm/nvc0-/gr: handle fwmthd interrupts in ucode Compute code in mesa triggers one of these, hanging the engine. Let's at least ack the request for now to avoid the hang. Signed-off-by: Ben Skeggs --- .../gpu/drm/nouveau/core/engine/graph/fuc/hub.fuc | 18 ++- .../nouveau/core/engine/graph/fuc/hubnv108.fuc5.h | 107 ++++++++--------- .../nouveau/core/engine/graph/fuc/hubnvc0.fuc.h | 127 +++++++++++---------- .../nouveau/core/engine/graph/fuc/hubnvd7.fuc.h | 127 +++++++++++---------- .../nouveau/core/engine/graph/fuc/hubnve0.fuc.h | 111 +++++++++--------- .../nouveau/core/engine/graph/fuc/hubnvf0.fuc.h | 111 +++++++++--------- .../drm/nouveau/core/engine/graph/fuc/macros.fuc | 1 + 7 files changed, 308 insertions(+), 294 deletions(-) diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hub.fuc b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hub.fuc index c02f23c..c8ddb8d 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hub.fuc +++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hub.fuc @@ -87,8 +87,8 @@ init: clear b32 $r2 nv_iowr(NV_PGRAPH_FECS_INTR_ROUTE, 0, $r2) - // route HUB_CHANNEL_SWITCH to fuc interrupt 8 - mov $r2 0x2003 // { HUB_CHANNEL_SWITCH, ZERO } -> intr 8 + // route HUB_CHSW_PULSE to fuc interrupt 8 + mov $r2 0x2003 // { HUB_CHSW_PULSE, ZERO } -> intr 8 nv_iowr(NV_PGRAPH_FECS_IROUTE, 0, $r2) // not sure what these are, route them because NVIDIA does, and @@ -97,7 +97,7 @@ init: // mov $r2 0x2004 // { 0x04, ZERO } -> intr 9 nv_iowr(NV_PGRAPH_FECS_IROUTE, 1, $r2) - mov $r2 0x200b // { 0x0b, ZERO } -> intr 10 + mov $r2 0x200b // { HUB_FIRMWARE_MTHD, ZERO } -> intr 10 nv_iowr(NV_PGRAPH_FECS_IROUTE, 2, $r2) mov $r2 0x200c // { 0x0c, ZERO } -> intr 15 nv_iowr(NV_PGRAPH_FECS_IROUTE, 7, $r2) @@ -106,7 +106,7 @@ init: sub b32 $r3 $r0 1 nv_iowr(NV_PGRAPH_FECS_INTR_UP_EN, 0, $r3) - // enable fifo, ctxsw, 9, 10, 15 interrupts + // enable fifo, ctxsw, 9, fwmthd, 15 interrupts imm32($r2, 0x8704) nv_iowr(NV_PGRAPH_FECS_INTR_EN_SET, 0, $r2) @@ -339,8 +339,16 @@ ih: mov $r14 0x4001 call(queue_put) - // anything we didn't handle, bring it to the host's attention + // firmware method? ih_no_ctxsw: + and $r11 $r10 NV_PGRAPH_FECS_INTR_FWMTHD + bra e #ih_no_fwmthd + // none we handle, ack, and fall-through to unhandled + mov $r11 0x100 + nv_wr32(0x400144, $r11) + + // anything we didn't handle, bring it to the host's attention + ih_no_fwmthd: mov $r11 0x104 // FIFO | CHSW not b32 $r11 and $r11 $r10 $r11 diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5.h b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5.h index d8c911e..4750984 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5.h +++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5.h @@ -478,10 +478,10 @@ uint32_t nv108_grhub_code[] = { 0x01040080, 0xbd0001f6, 0x01004104, - 0x4e7e020f, - 0x5d7e0006, + 0x627e020f, + 0x717e0006, 0x100f0006, - 0x00069f7e, + 0x0006b37e, 0x98000e98, 0x207e010f, 0x14950001, @@ -523,8 +523,8 @@ uint32_t nv108_grhub_code[] = { 0x800040b7, 0xf40132b6, 0x000fb41b, - 0x00069f7e, - 0x4e7e000f, + 0x0006b37e, + 0x627e000f, 0x00800006, 0x01f60201, 0xbd04bd00, @@ -554,7 +554,7 @@ uint32_t nv108_grhub_code[] = { 0x0009f602, 0x32f404bd, 0x0231f401, - 0x0008227e, + 0x0008367e, 0x99f094bd, 0x17008007, 0x0009f602, @@ -563,7 +563,7 @@ uint32_t nv108_grhub_code[] = { 0x37008006, 0x0009f602, 0x31f404bd, - 0x08227e01, + 0x08367e01, 0xf094bd00, 0x00800699, 0x09f60217, @@ -572,7 +572,7 @@ uint32_t nv108_grhub_code[] = { 0x20f92f0e, 0x32f412b2, 0x0232f401, - 0x0008227e, + 0x0008367e, 0x008020fc, 0x02f602c0, 0xf404bd00, @@ -580,7 +580,7 @@ uint32_t nv108_grhub_code[] = { 0x23c8130e, 0x0d0bf41f, 0xf40131f4, - 0x227e0232, + 0x367e0232, /* 0x054e: chsw_done */ 0x01020008, 0x02c30080, @@ -593,7 +593,7 @@ uint32_t nv108_grhub_code[] = { 0xb0ff2a0e, 0x1bf401e4, 0x7ef2b20c, - 0xf40007c2, + 0xf40007d6, /* 0x057a: main_not_ctx_chan */ 0xe4b0400e, 0x2c1bf402, @@ -602,7 +602,7 @@ uint32_t nv108_grhub_code[] = { 0x0009f602, 0x32f404bd, 0x0232f401, - 0x0008227e, + 0x0008367e, 0x99f094bd, 0x17008007, 0x0009f602, @@ -640,12 +640,18 @@ uint32_t nv108_grhub_code[] = { 0x4e100d0c, 0x047e4001, /* 0x061a: ih_no_ctxsw */ + 0xabe40000, + 0x0bf40400, + 0x01004b10, + 0x448ebfb2, + 0x8f7e4001, +/* 0x062e: ih_no_fwmthd */ 0x044b0000, 0xffb0bd01, 0x0bf4b4ab, 0x0700800c, 0x000bf603, -/* 0x062e: ih_no_other */ +/* 0x0642: ih_no_other */ 0x004004bd, 0x000af601, 0xf0fc04bd, @@ -654,31 +660,31 @@ uint32_t nv108_grhub_code[] = { 0x80fc90fc, 0xfc0088fe, 0x0032f480, -/* 0x064e: ctx_4170s */ +/* 0x0662: ctx_4170s */ 0xf5f001f8, 0x8effb210, 0x7e404170, 0xf800008f, -/* 0x065d: ctx_4170w */ +/* 0x0671: ctx_4170w */ 0x41708e00, 0x00657e40, 0xf0ffb200, 0x1bf410f4, -/* 0x066f: ctx_redswitch */ +/* 0x0683: ctx_redswitch */ 0x4e00f8f3, 0xe5f00200, 0x20e5f040, 0x8010e5f0, 0xf6018500, 0x04bd000e, -/* 0x0686: ctx_redswitch_delay */ +/* 0x069a: ctx_redswitch_delay */ 0xf2b6080f, 0xfd1bf401, 0x0400e5f1, 0x0100e5f1, 0x01850080, 0xbd000ef6, -/* 0x069f: ctx_86c */ +/* 0x06b3: ctx_86c */ 0x8000f804, 0xf6022300, 0x04bd000f, @@ -687,15 +693,15 @@ uint32_t nv108_grhub_code[] = { 0xffb20000, 0x41a88c8e, 0x00008f7e, -/* 0x06be: ctx_mem */ +/* 0x06d2: ctx_mem */ 0x008000f8, 0x0ff60284, -/* 0x06c7: ctx_mem_wait */ +/* 0x06db: ctx_mem_wait */ 0x8f04bd00, 0xcf028400, 0xfffd00ff, 0xf61bf405, -/* 0x06d6: ctx_load */ +/* 0x06ea: ctx_load */ 0x94bd00f8, 0x800599f0, 0xf6023700, @@ -709,7 +715,7 @@ uint32_t nv108_grhub_code[] = { 0x008004bd, 0x02f60283, 0x0f04bd00, - 0x06be7e07, + 0x06d27e07, 0xc0008000, 0x0002f602, 0x0bfe04bd, @@ -755,28 +761,28 @@ uint32_t nv108_grhub_code[] = { 0x800599f0, 0xf6021700, 0x04bd0009, -/* 0x07c2: ctx_chan */ - 0xd67e00f8, +/* 0x07d6: ctx_chan */ + 0xea7e00f8, 0x0c0a0006, 0x0000b87e, - 0xbe7e050f, + 0xd27e050f, 0x00f80006, -/* 0x07d4: ctx_mmio_exec */ +/* 0x07e8: ctx_mmio_exec */ 0x80410398, 0xf6028100, 0x04bd0003, -/* 0x07e2: ctx_mmio_loop */ +/* 0x07f6: ctx_mmio_loop */ 0x34c434bd, 0x0e1bf4ff, 0xf0020045, 0x35fa0653, -/* 0x07f3: ctx_mmio_pull */ +/* 0x0807: ctx_mmio_pull */ 0x9803f805, 0x4f98804e, 0x008f7e81, 0x0830b600, 0xf40112b6, -/* 0x0806: ctx_mmio_done */ +/* 0x081a: ctx_mmio_done */ 0x0398df1b, 0x81008016, 0x0003f602, @@ -784,27 +790,27 @@ uint32_t nv108_grhub_code[] = { 0x01004140, 0xfa0613f0, 0x03f80601, -/* 0x0822: ctx_xfer */ +/* 0x0836: ctx_xfer */ 0x040e00f8, 0x03020080, 0xbd000ef6, -/* 0x082d: ctx_xfer_idle */ +/* 0x0841: ctx_xfer_idle */ 0x00008e04, 0x00eecf03, 0x2000e4f1, 0xf4f51bf4, 0x02f40611, -/* 0x0841: ctx_xfer_pre */ +/* 0x0855: ctx_xfer_pre */ 0x7e100f0c, - 0xf400069f, -/* 0x084a: ctx_xfer_pre_load */ + 0xf40006b3, +/* 0x085e: ctx_xfer_pre_load */ 0x020f1b11, - 0x00064e7e, - 0x00065d7e, - 0x00066f7e, - 0x4e7ef4bd, - 0xd67e0006, -/* 0x0862: ctx_xfer_exec */ + 0x0006627e, + 0x0006717e, + 0x0006837e, + 0x627ef4bd, + 0xea7e0006, +/* 0x0876: ctx_xfer_exec */ 0x01980006, 0x8024bd16, 0xf6010500, @@ -835,21 +841,21 @@ uint32_t nv108_grhub_code[] = { 0x0a1201f4, 0x00b87e0c, 0x7e050f00, - 0xf40006be, -/* 0x08de: ctx_xfer_post */ + 0xf40006d2, +/* 0x08f2: ctx_xfer_post */ 0x020f2d02, - 0x00064e7e, - 0x9f7ef4bd, + 0x0006627e, + 0xb37ef4bd, 0x277e0006, - 0x5d7e0002, + 0x717e0002, 0xf4bd0006, - 0x00064e7e, + 0x0006627e, 0x981011f4, 0x11fd4001, 0x070bf405, - 0x0007d47e, -/* 0x0908: ctx_xfer_no_post_mmio */ -/* 0x0908: ctx_xfer_done */ + 0x0007e87e, +/* 0x091c: ctx_xfer_no_post_mmio */ +/* 0x091c: ctx_xfer_done */ 0x000000f8, 0x00000000, 0x00000000, @@ -907,9 +913,4 @@ uint32_t nv108_grhub_code[] = { 0x00000000, 0x00000000, 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, }; diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h index b061eef..132f684 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h +++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h @@ -528,10 +528,10 @@ uint32_t nvc0_grhub_code[] = { 0x0001d001, 0x17f104bd, 0xf7f00100, - 0x9d21f502, - 0xaf21f507, + 0xb521f502, + 0xc721f507, 0x10f7f007, - 0x07fc21f5, + 0x081421f5, 0x98000e98, 0x21f5010f, 0x14950150, @@ -574,9 +574,9 @@ uint32_t nvc0_grhub_code[] = { 0xb6800040, 0x1bf40132, 0x00f7f0be, - 0x07fc21f5, + 0x081421f5, 0xf500f7f0, - 0xf1079d21, + 0xf107b521, 0xf0010007, 0x01d00203, 0xbd04bd00, @@ -610,7 +610,7 @@ uint32_t nvc0_grhub_code[] = { 0x09d00203, 0xf404bd00, 0x31f40132, - 0xd021f502, + 0xe821f502, 0xf094bd09, 0x07f10799, 0x03f01700, @@ -621,7 +621,7 @@ uint32_t nvc0_grhub_code[] = { 0x0203f00f, 0xbd0009d0, 0x0131f404, - 0x09d021f5, + 0x09e821f5, 0x99f094bd, 0x0007f106, 0x0203f017, @@ -631,7 +631,7 @@ uint32_t nvc0_grhub_code[] = { 0x12b920f9, 0x0132f402, 0xf50232f4, - 0xfc09d021, + 0xfc09e821, 0x0007f120, 0x0203f0c0, 0xbd0002d0, @@ -640,7 +640,7 @@ uint32_t nvc0_grhub_code[] = { 0xf41f23c8, 0x31f40d0b, 0x0232f401, - 0x09d021f5, + 0x09e821f5, /* 0x063c: chsw_done */ 0xf10127f0, 0xf0c30007, @@ -654,7 +654,7 @@ uint32_t nvc0_grhub_code[] = { /* 0x0660: main_not_ctx_switch */ 0xf401e4b0, 0xf2b90d1b, - 0x6021f502, + 0x7821f502, 0x460ef409, /* 0x0670: main_not_ctx_chan */ 0xf402e4b0, @@ -664,7 +664,7 @@ uint32_t nvc0_grhub_code[] = { 0x09d00203, 0xf404bd00, 0x32f40132, - 0xd021f502, + 0xe821f502, 0xf094bd09, 0x07f10799, 0x03f01700, @@ -708,13 +708,20 @@ uint32_t nvc0_grhub_code[] = { 0x10d7f00d, 0x4001e7f1, /* 0x072b: ih_no_ctxsw */ - 0xf10421f4, + 0xe40421f4, + 0xf40400ab, + 0xb7f1140b, + 0xbfb90100, + 0x44e7f102, + 0x40e3f001, +/* 0x0743: ih_no_fwmthd */ + 0xf19d21f4, 0xbd0104b7, 0xb4abffb0, 0xf10f0bf4, 0xf0070007, 0x0bd00303, -/* 0x0743: ih_no_other */ +/* 0x075b: ih_no_other */ 0xf104bd00, 0xf0010007, 0x0ad00003, @@ -724,36 +731,36 @@ uint32_t nvc0_grhub_code[] = { 0xfc90fca0, 0x0088fe80, 0x32f480fc, -/* 0x0767: ctx_4160s */ +/* 0x077f: ctx_4160s */ 0xf001f800, 0xffb901f7, 0x60e7f102, 0x40e3f041, -/* 0x0777: ctx_4160s_wait */ +/* 0x078f: ctx_4160s_wait */ 0xf19d21f4, 0xf04160e7, 0x21f440e3, 0x02ffb968, 0xf404ffc8, 0x00f8f00b, -/* 0x078c: ctx_4160c */ +/* 0x07a4: ctx_4160c */ 0xffb9f4bd, 0x60e7f102, 0x40e3f041, 0xf89d21f4, -/* 0x079d: ctx_4170s */ +/* 0x07b5: ctx_4170s */ 0x10f5f000, 0xf102ffb9, 0xf04170e7, 0x21f440e3, -/* 0x07af: ctx_4170w */ +/* 0x07c7: ctx_4170w */ 0xf100f89d, 0xf04170e7, 0x21f440e3, 0x02ffb968, 0xf410f4f0, 0x00f8f01b, -/* 0x07c4: ctx_redswitch */ +/* 0x07dc: ctx_redswitch */ 0x0200e7f1, 0xf040e5f0, 0xe5f020e5, @@ -761,7 +768,7 @@ uint32_t nvc0_grhub_code[] = { 0x0103f085, 0xbd000ed0, 0x08f7f004, -/* 0x07e0: ctx_redswitch_delay */ +/* 0x07f8: ctx_redswitch_delay */ 0xf401f2b6, 0xe5f1fd1b, 0xe5f10400, @@ -769,7 +776,7 @@ uint32_t nvc0_grhub_code[] = { 0x03f08500, 0x000ed001, 0x00f804bd, -/* 0x07fc: ctx_86c */ +/* 0x0814: ctx_86c */ 0x1b0007f1, 0xd00203f0, 0x04bd000f, @@ -780,16 +787,16 @@ uint32_t nvc0_grhub_code[] = { 0xa86ce7f1, 0xf441e3f0, 0x00f89d21, -/* 0x0824: ctx_mem */ +/* 0x083c: ctx_mem */ 0x840007f1, 0xd00203f0, 0x04bd000f, -/* 0x0830: ctx_mem_wait */ +/* 0x0848: ctx_mem_wait */ 0x8400f7f1, 0xcf02f3f0, 0xfffd00ff, 0xf31bf405, -/* 0x0842: ctx_load */ +/* 0x085a: ctx_load */ 0x94bd00f8, 0xf10599f0, 0xf00f0007, @@ -807,7 +814,7 @@ uint32_t nvc0_grhub_code[] = { 0x02d00203, 0xf004bd00, 0x21f507f7, - 0x07f10824, + 0x07f1083c, 0x03f0c000, 0x0002d002, 0x0bfe04bd, @@ -862,31 +869,31 @@ uint32_t nvc0_grhub_code[] = { 0x03f01700, 0x0009d002, 0x00f804bd, -/* 0x0960: ctx_chan */ - 0x076721f5, - 0x084221f5, +/* 0x0978: ctx_chan */ + 0x077f21f5, + 0x085a21f5, 0xf40ca7f0, 0xf7f0d021, - 0x2421f505, - 0x8c21f508, -/* 0x097b: ctx_mmio_exec */ + 0x3c21f505, + 0xa421f508, +/* 0x0993: ctx_mmio_exec */ 0x9800f807, 0x07f14103, 0x03f08100, 0x0003d002, 0x34bd04bd, -/* 0x098c: ctx_mmio_loop */ +/* 0x09a4: ctx_mmio_loop */ 0xf4ff34c4, 0x57f10f1b, 0x53f00200, 0x0535fa06, -/* 0x099e: ctx_mmio_pull */ +/* 0x09b6: ctx_mmio_pull */ 0x4e9803f8, 0x814f9880, 0xb69d21f4, 0x12b60830, 0xdf1bf401, -/* 0x09b0: ctx_mmio_done */ +/* 0x09c8: ctx_mmio_done */ 0xf1160398, 0xf0810007, 0x03d00203, @@ -895,30 +902,30 @@ uint32_t nvc0_grhub_code[] = { 0x13f00100, 0x0601fa06, 0x00f803f8, -/* 0x09d0: ctx_xfer */ +/* 0x09e8: ctx_xfer */ 0xf104e7f0, 0xf0020007, 0x0ed00303, -/* 0x09df: ctx_xfer_idle */ +/* 0x09f7: ctx_xfer_idle */ 0xf104bd00, 0xf00000e7, 0xeecf03e3, 0x00e4f100, 0xf21bf420, 0xf40611f4, -/* 0x09f6: ctx_xfer_pre */ +/* 0x0a0e: ctx_xfer_pre */ 0xf7f01102, - 0xfc21f510, - 0x6721f507, + 0x1421f510, + 0x7f21f508, 0x1c11f407, -/* 0x0a04: ctx_xfer_pre_load */ +/* 0x0a1c: ctx_xfer_pre_load */ 0xf502f7f0, - 0xf5079d21, - 0xf507af21, - 0xbd07c421, - 0x9d21f5f4, - 0x4221f507, -/* 0x0a1d: ctx_xfer_exec */ + 0xf507b521, + 0xf507c721, + 0xbd07dc21, + 0xb521f5f4, + 0x5a21f507, +/* 0x0a35: ctx_xfer_exec */ 0x16019808, 0x07f124bd, 0x03f00500, @@ -953,29 +960,23 @@ uint32_t nvc0_grhub_code[] = { 0x1301f402, 0xf40ca7f0, 0xf7f0d021, - 0x2421f505, + 0x3c21f505, 0x3202f408, -/* 0x0aac: ctx_xfer_post */ +/* 0x0ac4: ctx_xfer_post */ 0xf502f7f0, - 0xbd079d21, - 0xfc21f5f4, - 0x7f21f507, - 0xaf21f502, + 0xbd07b521, + 0x1421f5f4, + 0x7f21f508, + 0xc721f502, 0xf5f4bd07, - 0xf4079d21, + 0xf407b521, 0x01981011, 0x0511fd40, 0xf5070bf4, -/* 0x0ad7: ctx_xfer_no_post_mmio */ - 0xf5097b21, -/* 0x0adb: ctx_xfer_done */ - 0xf8078c21, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, +/* 0x0aef: ctx_xfer_no_post_mmio */ + 0xf5099321, +/* 0x0af3: ctx_xfer_done */ + 0xf807a421, 0x00000000, 0x00000000, 0x00000000, diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvd7.fuc.h b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvd7.fuc.h index 4699907..84af824 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvd7.fuc.h +++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvd7.fuc.h @@ -528,10 +528,10 @@ uint32_t nvd7_grhub_code[] = { 0x0001d001, 0x17f104bd, 0xf7f00100, - 0x9d21f502, - 0xaf21f507, + 0xb521f502, + 0xc721f507, 0x10f7f007, - 0x07fc21f5, + 0x081421f5, 0x98000e98, 0x21f5010f, 0x14950150, @@ -574,9 +574,9 @@ uint32_t nvd7_grhub_code[] = { 0xb6800040, 0x1bf40132, 0x00f7f0be, - 0x07fc21f5, + 0x081421f5, 0xf500f7f0, - 0xf1079d21, + 0xf107b521, 0xf0010007, 0x01d00203, 0xbd04bd00, @@ -610,7 +610,7 @@ uint32_t nvd7_grhub_code[] = { 0x09d00203, 0xf404bd00, 0x31f40132, - 0xd021f502, + 0xe821f502, 0xf094bd09, 0x07f10799, 0x03f01700, @@ -621,7 +621,7 @@ uint32_t nvd7_grhub_code[] = { 0x0203f00f, 0xbd0009d0, 0x0131f404, - 0x09d021f5, + 0x09e821f5, 0x99f094bd, 0x0007f106, 0x0203f017, @@ -631,7 +631,7 @@ uint32_t nvd7_grhub_code[] = { 0x12b920f9, 0x0132f402, 0xf50232f4, - 0xfc09d021, + 0xfc09e821, 0x0007f120, 0x0203f0c0, 0xbd0002d0, @@ -640,7 +640,7 @@ uint32_t nvd7_grhub_code[] = { 0xf41f23c8, 0x31f40d0b, 0x0232f401, - 0x09d021f5, + 0x09e821f5, /* 0x063c: chsw_done */ 0xf10127f0, 0xf0c30007, @@ -654,7 +654,7 @@ uint32_t nvd7_grhub_code[] = { /* 0x0660: main_not_ctx_switch */ 0xf401e4b0, 0xf2b90d1b, - 0x6021f502, + 0x7821f502, 0x460ef409, /* 0x0670: main_not_ctx_chan */ 0xf402e4b0, @@ -664,7 +664,7 @@ uint32_t nvd7_grhub_code[] = { 0x09d00203, 0xf404bd00, 0x32f40132, - 0xd021f502, + 0xe821f502, 0xf094bd09, 0x07f10799, 0x03f01700, @@ -708,13 +708,20 @@ uint32_t nvd7_grhub_code[] = { 0x10d7f00d, 0x4001e7f1, /* 0x072b: ih_no_ctxsw */ - 0xf10421f4, + 0xe40421f4, + 0xf40400ab, + 0xb7f1140b, + 0xbfb90100, + 0x44e7f102, + 0x40e3f001, +/* 0x0743: ih_no_fwmthd */ + 0xf19d21f4, 0xbd0104b7, 0xb4abffb0, 0xf10f0bf4, 0xf0070007, 0x0bd00303, -/* 0x0743: ih_no_other */ +/* 0x075b: ih_no_other */ 0xf104bd00, 0xf0010007, 0x0ad00003, @@ -724,36 +731,36 @@ uint32_t nvd7_grhub_code[] = { 0xfc90fca0, 0x0088fe80, 0x32f480fc, -/* 0x0767: ctx_4160s */ +/* 0x077f: ctx_4160s */ 0xf001f800, 0xffb901f7, 0x60e7f102, 0x40e3f041, -/* 0x0777: ctx_4160s_wait */ +/* 0x078f: ctx_4160s_wait */ 0xf19d21f4, 0xf04160e7, 0x21f440e3, 0x02ffb968, 0xf404ffc8, 0x00f8f00b, -/* 0x078c: ctx_4160c */ +/* 0x07a4: ctx_4160c */ 0xffb9f4bd, 0x60e7f102, 0x40e3f041, 0xf89d21f4, -/* 0x079d: ctx_4170s */ +/* 0x07b5: ctx_4170s */ 0x10f5f000, 0xf102ffb9, 0xf04170e7, 0x21f440e3, -/* 0x07af: ctx_4170w */ +/* 0x07c7: ctx_4170w */ 0xf100f89d, 0xf04170e7, 0x21f440e3, 0x02ffb968, 0xf410f4f0, 0x00f8f01b, -/* 0x07c4: ctx_redswitch */ +/* 0x07dc: ctx_redswitch */ 0x0200e7f1, 0xf040e5f0, 0xe5f020e5, @@ -761,7 +768,7 @@ uint32_t nvd7_grhub_code[] = { 0x0103f085, 0xbd000ed0, 0x08f7f004, -/* 0x07e0: ctx_redswitch_delay */ +/* 0x07f8: ctx_redswitch_delay */ 0xf401f2b6, 0xe5f1fd1b, 0xe5f10400, @@ -769,7 +776,7 @@ uint32_t nvd7_grhub_code[] = { 0x03f08500, 0x000ed001, 0x00f804bd, -/* 0x07fc: ctx_86c */ +/* 0x0814: ctx_86c */ 0x1b0007f1, 0xd00203f0, 0x04bd000f, @@ -780,16 +787,16 @@ uint32_t nvd7_grhub_code[] = { 0xa86ce7f1, 0xf441e3f0, 0x00f89d21, -/* 0x0824: ctx_mem */ +/* 0x083c: ctx_mem */ 0x840007f1, 0xd00203f0, 0x04bd000f, -/* 0x0830: ctx_mem_wait */ +/* 0x0848: ctx_mem_wait */ 0x8400f7f1, 0xcf02f3f0, 0xfffd00ff, 0xf31bf405, -/* 0x0842: ctx_load */ +/* 0x085a: ctx_load */ 0x94bd00f8, 0xf10599f0, 0xf00f0007, @@ -807,7 +814,7 @@ uint32_t nvd7_grhub_code[] = { 0x02d00203, 0xf004bd00, 0x21f507f7, - 0x07f10824, + 0x07f1083c, 0x03f0c000, 0x0002d002, 0x0bfe04bd, @@ -862,31 +869,31 @@ uint32_t nvd7_grhub_code[] = { 0x03f01700, 0x0009d002, 0x00f804bd, -/* 0x0960: ctx_chan */ - 0x076721f5, - 0x084221f5, +/* 0x0978: ctx_chan */ + 0x077f21f5, + 0x085a21f5, 0xf40ca7f0, 0xf7f0d021, - 0x2421f505, - 0x8c21f508, -/* 0x097b: ctx_mmio_exec */ + 0x3c21f505, + 0xa421f508, +/* 0x0993: ctx_mmio_exec */ 0x9800f807, 0x07f14103, 0x03f08100, 0x0003d002, 0x34bd04bd, -/* 0x098c: ctx_mmio_loop */ +/* 0x09a4: ctx_mmio_loop */ 0xf4ff34c4, 0x57f10f1b, 0x53f00200, 0x0535fa06, -/* 0x099e: ctx_mmio_pull */ +/* 0x09b6: ctx_mmio_pull */ 0x4e9803f8, 0x814f9880, 0xb69d21f4, 0x12b60830, 0xdf1bf401, -/* 0x09b0: ctx_mmio_done */ +/* 0x09c8: ctx_mmio_done */ 0xf1160398, 0xf0810007, 0x03d00203, @@ -895,30 +902,30 @@ uint32_t nvd7_grhub_code[] = { 0x13f00100, 0x0601fa06, 0x00f803f8, -/* 0x09d0: ctx_xfer */ +/* 0x09e8: ctx_xfer */ 0xf104e7f0, 0xf0020007, 0x0ed00303, -/* 0x09df: ctx_xfer_idle */ +/* 0x09f7: ctx_xfer_idle */ 0xf104bd00, 0xf00000e7, 0xeecf03e3, 0x00e4f100, 0xf21bf420, 0xf40611f4, -/* 0x09f6: ctx_xfer_pre */ +/* 0x0a0e: ctx_xfer_pre */ 0xf7f01102, - 0xfc21f510, - 0x6721f507, + 0x1421f510, + 0x7f21f508, 0x1c11f407, -/* 0x0a04: ctx_xfer_pre_load */ +/* 0x0a1c: ctx_xfer_pre_load */ 0xf502f7f0, - 0xf5079d21, - 0xf507af21, - 0xbd07c421, - 0x9d21f5f4, - 0x4221f507, -/* 0x0a1d: ctx_xfer_exec */ + 0xf507b521, + 0xf507c721, + 0xbd07dc21, + 0xb521f5f4, + 0x5a21f507, +/* 0x0a35: ctx_xfer_exec */ 0x16019808, 0x07f124bd, 0x03f00500, @@ -953,29 +960,23 @@ uint32_t nvd7_grhub_code[] = { 0x1301f402, 0xf40ca7f0, 0xf7f0d021, - 0x2421f505, + 0x3c21f505, 0x3202f408, -/* 0x0aac: ctx_xfer_post */ +/* 0x0ac4: ctx_xfer_post */ 0xf502f7f0, - 0xbd079d21, - 0xfc21f5f4, - 0x7f21f507, - 0xaf21f502, + 0xbd07b521, + 0x1421f5f4, + 0x7f21f508, + 0xc721f502, 0xf5f4bd07, - 0xf4079d21, + 0xf407b521, 0x01981011, 0x0511fd40, 0xf5070bf4, -/* 0x0ad7: ctx_xfer_no_post_mmio */ - 0xf5097b21, -/* 0x0adb: ctx_xfer_done */ - 0xf8078c21, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, +/* 0x0aef: ctx_xfer_no_post_mmio */ + 0xf5099321, +/* 0x0af3: ctx_xfer_done */ + 0xf807a421, 0x00000000, 0x00000000, 0x00000000, diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnve0.fuc.h b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnve0.fuc.h index 1fc990c..1c179bdd 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnve0.fuc.h +++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnve0.fuc.h @@ -528,10 +528,10 @@ uint32_t nve0_grhub_code[] = { 0x0001d001, 0x17f104bd, 0xf7f00100, - 0x6721f502, - 0x7921f507, + 0x7f21f502, + 0x9121f507, 0x10f7f007, - 0x07c621f5, + 0x07de21f5, 0x98000e98, 0x21f5010f, 0x14950150, @@ -574,9 +574,9 @@ uint32_t nve0_grhub_code[] = { 0xb6800040, 0x1bf40132, 0x00f7f0be, - 0x07c621f5, + 0x07de21f5, 0xf500f7f0, - 0xf1076721, + 0xf1077f21, 0xf0010007, 0x01d00203, 0xbd04bd00, @@ -610,7 +610,7 @@ uint32_t nve0_grhub_code[] = { 0x09d00203, 0xf404bd00, 0x31f40132, - 0x9221f502, + 0xaa21f502, 0xf094bd09, 0x07f10799, 0x03f01700, @@ -621,7 +621,7 @@ uint32_t nve0_grhub_code[] = { 0x0203f00f, 0xbd0009d0, 0x0131f404, - 0x099221f5, + 0x09aa21f5, 0x99f094bd, 0x0007f106, 0x0203f017, @@ -631,7 +631,7 @@ uint32_t nve0_grhub_code[] = { 0x12b920f9, 0x0132f402, 0xf50232f4, - 0xfc099221, + 0xfc09aa21, 0x0007f120, 0x0203f0c0, 0xbd0002d0, @@ -640,7 +640,7 @@ uint32_t nve0_grhub_code[] = { 0xf41f23c8, 0x31f40d0b, 0x0232f401, - 0x099221f5, + 0x09aa21f5, /* 0x063c: chsw_done */ 0xf10127f0, 0xf0c30007, @@ -654,7 +654,7 @@ uint32_t nve0_grhub_code[] = { /* 0x0660: main_not_ctx_switch */ 0xf401e4b0, 0xf2b90d1b, - 0x2a21f502, + 0x4221f502, 0x460ef409, /* 0x0670: main_not_ctx_chan */ 0xf402e4b0, @@ -664,7 +664,7 @@ uint32_t nve0_grhub_code[] = { 0x09d00203, 0xf404bd00, 0x32f40132, - 0x9221f502, + 0xaa21f502, 0xf094bd09, 0x07f10799, 0x03f01700, @@ -708,13 +708,20 @@ uint32_t nve0_grhub_code[] = { 0x10d7f00d, 0x4001e7f1, /* 0x072b: ih_no_ctxsw */ - 0xf10421f4, + 0xe40421f4, + 0xf40400ab, + 0xb7f1140b, + 0xbfb90100, + 0x44e7f102, + 0x40e3f001, +/* 0x0743: ih_no_fwmthd */ + 0xf19d21f4, 0xbd0104b7, 0xb4abffb0, 0xf10f0bf4, 0xf0070007, 0x0bd00303, -/* 0x0743: ih_no_other */ +/* 0x075b: ih_no_other */ 0xf104bd00, 0xf0010007, 0x0ad00003, @@ -724,19 +731,19 @@ uint32_t nve0_grhub_code[] = { 0xfc90fca0, 0x0088fe80, 0x32f480fc, -/* 0x0767: ctx_4170s */ +/* 0x077f: ctx_4170s */ 0xf001f800, 0xffb910f5, 0x70e7f102, 0x40e3f041, 0xf89d21f4, -/* 0x0779: ctx_4170w */ +/* 0x0791: ctx_4170w */ 0x70e7f100, 0x40e3f041, 0xb96821f4, 0xf4f002ff, 0xf01bf410, -/* 0x078e: ctx_redswitch */ +/* 0x07a6: ctx_redswitch */ 0xe7f100f8, 0xe5f00200, 0x20e5f040, @@ -744,7 +751,7 @@ uint32_t nve0_grhub_code[] = { 0xf0850007, 0x0ed00103, 0xf004bd00, -/* 0x07aa: ctx_redswitch_delay */ +/* 0x07c2: ctx_redswitch_delay */ 0xf2b608f7, 0xfd1bf401, 0x0400e5f1, @@ -752,7 +759,7 @@ uint32_t nve0_grhub_code[] = { 0x850007f1, 0xd00103f0, 0x04bd000e, -/* 0x07c6: ctx_86c */ +/* 0x07de: ctx_86c */ 0x07f100f8, 0x03f01b00, 0x000fd002, @@ -763,17 +770,17 @@ uint32_t nve0_grhub_code[] = { 0xe7f102ff, 0xe3f0a86c, 0x9d21f441, -/* 0x07ee: ctx_mem */ +/* 0x0806: ctx_mem */ 0x07f100f8, 0x03f08400, 0x000fd002, -/* 0x07fa: ctx_mem_wait */ +/* 0x0812: ctx_mem_wait */ 0xf7f104bd, 0xf3f08400, 0x00ffcf02, 0xf405fffd, 0x00f8f31b, -/* 0x080c: ctx_load */ +/* 0x0824: ctx_load */ 0x99f094bd, 0x0007f105, 0x0203f00f, @@ -790,7 +797,7 @@ uint32_t nve0_grhub_code[] = { 0x0203f083, 0xbd0002d0, 0x07f7f004, - 0x07ee21f5, + 0x080621f5, 0xc00007f1, 0xd00203f0, 0x04bd0002, @@ -845,29 +852,29 @@ uint32_t nve0_grhub_code[] = { 0x170007f1, 0xd00203f0, 0x04bd0009, -/* 0x092a: ctx_chan */ +/* 0x0942: ctx_chan */ 0x21f500f8, - 0xa7f0080c, + 0xa7f00824, 0xd021f40c, 0xf505f7f0, - 0xf807ee21, -/* 0x093d: ctx_mmio_exec */ + 0xf8080621, +/* 0x0955: ctx_mmio_exec */ 0x41039800, 0x810007f1, 0xd00203f0, 0x04bd0003, -/* 0x094e: ctx_mmio_loop */ +/* 0x0966: ctx_mmio_loop */ 0x34c434bd, 0x0f1bf4ff, 0x020057f1, 0xfa0653f0, 0x03f80535, -/* 0x0960: ctx_mmio_pull */ +/* 0x0978: ctx_mmio_pull */ 0x98804e98, 0x21f4814f, 0x0830b69d, 0xf40112b6, -/* 0x0972: ctx_mmio_done */ +/* 0x098a: ctx_mmio_done */ 0x0398df1b, 0x0007f116, 0x0203f081, @@ -876,30 +883,30 @@ uint32_t nve0_grhub_code[] = { 0x010017f1, 0xfa0613f0, 0x03f80601, -/* 0x0992: ctx_xfer */ +/* 0x09aa: ctx_xfer */ 0xe7f000f8, 0x0007f104, 0x0303f002, 0xbd000ed0, -/* 0x09a1: ctx_xfer_idle */ +/* 0x09b9: ctx_xfer_idle */ 0x00e7f104, 0x03e3f000, 0xf100eecf, 0xf42000e4, 0x11f4f21b, 0x0d02f406, -/* 0x09b8: ctx_xfer_pre */ +/* 0x09d0: ctx_xfer_pre */ 0xf510f7f0, - 0xf407c621, -/* 0x09c2: ctx_xfer_pre_load */ + 0xf407de21, +/* 0x09da: ctx_xfer_pre_load */ 0xf7f01c11, - 0x6721f502, - 0x7921f507, - 0x8e21f507, + 0x7f21f502, + 0x9121f507, + 0xa621f507, 0xf5f4bd07, - 0xf5076721, -/* 0x09db: ctx_xfer_exec */ - 0x98080c21, + 0xf5077f21, +/* 0x09f3: ctx_xfer_exec */ + 0x98082421, 0x24bd1601, 0x050007f1, 0xd00103f0, @@ -934,21 +941,21 @@ uint32_t nve0_grhub_code[] = { 0xa7f01301, 0xd021f40c, 0xf505f7f0, - 0xf407ee21, -/* 0x0a6a: ctx_xfer_post */ + 0xf4080621, +/* 0x0a82: ctx_xfer_post */ 0xf7f02e02, - 0x6721f502, + 0x7f21f502, 0xf5f4bd07, - 0xf507c621, + 0xf507de21, 0xf5027f21, - 0xbd077921, - 0x6721f5f4, + 0xbd079121, + 0x7f21f5f4, 0x1011f407, 0xfd400198, 0x0bf40511, - 0x3d21f507, -/* 0x0a95: ctx_xfer_no_post_mmio */ -/* 0x0a95: ctx_xfer_done */ + 0x5521f507, +/* 0x0aad: ctx_xfer_no_post_mmio */ +/* 0x0aad: ctx_xfer_done */ 0x0000f809, 0x00000000, 0x00000000, @@ -970,10 +977,4 @@ uint32_t nve0_grhub_code[] = { 0x00000000, 0x00000000, 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, }; diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc.h b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc.h index dc89e40..229c0ae 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc.h +++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc.h @@ -528,10 +528,10 @@ uint32_t nvf0_grhub_code[] = { 0x0001d001, 0x17f104bd, 0xf7f00100, - 0x6721f502, - 0x7921f507, + 0x7f21f502, + 0x9121f507, 0x10f7f007, - 0x07c621f5, + 0x07de21f5, 0x98000e98, 0x21f5010f, 0x14950150, @@ -574,9 +574,9 @@ uint32_t nvf0_grhub_code[] = { 0xb6800040, 0x1bf40132, 0x00f7f0be, - 0x07c621f5, + 0x07de21f5, 0xf500f7f0, - 0xf1076721, + 0xf1077f21, 0xf0010007, 0x01d00203, 0xbd04bd00, @@ -610,7 +610,7 @@ uint32_t nvf0_grhub_code[] = { 0x09d00203, 0xf404bd00, 0x31f40132, - 0x9221f502, + 0xaa21f502, 0xf094bd09, 0x07f10799, 0x03f01700, @@ -621,7 +621,7 @@ uint32_t nvf0_grhub_code[] = { 0x0203f037, 0xbd0009d0, 0x0131f404, - 0x099221f5, + 0x09aa21f5, 0x99f094bd, 0x0007f106, 0x0203f017, @@ -631,7 +631,7 @@ uint32_t nvf0_grhub_code[] = { 0x12b920f9, 0x0132f402, 0xf50232f4, - 0xfc099221, + 0xfc09aa21, 0x0007f120, 0x0203f0c0, 0xbd0002d0, @@ -640,7 +640,7 @@ uint32_t nvf0_grhub_code[] = { 0xf41f23c8, 0x31f40d0b, 0x0232f401, - 0x099221f5, + 0x09aa21f5, /* 0x063c: chsw_done */ 0xf10127f0, 0xf0c30007, @@ -654,7 +654,7 @@ uint32_t nvf0_grhub_code[] = { /* 0x0660: main_not_ctx_switch */ 0xf401e4b0, 0xf2b90d1b, - 0x2a21f502, + 0x4221f502, 0x460ef409, /* 0x0670: main_not_ctx_chan */ 0xf402e4b0, @@ -664,7 +664,7 @@ uint32_t nvf0_grhub_code[] = { 0x09d00203, 0xf404bd00, 0x32f40132, - 0x9221f502, + 0xaa21f502, 0xf094bd09, 0x07f10799, 0x03f01700, @@ -708,13 +708,20 @@ uint32_t nvf0_grhub_code[] = { 0x10d7f00d, 0x4001e7f1, /* 0x072b: ih_no_ctxsw */ - 0xf10421f4, + 0xe40421f4, + 0xf40400ab, + 0xb7f1140b, + 0xbfb90100, + 0x44e7f102, + 0x40e3f001, +/* 0x0743: ih_no_fwmthd */ + 0xf19d21f4, 0xbd0104b7, 0xb4abffb0, 0xf10f0bf4, 0xf0070007, 0x0bd00303, -/* 0x0743: ih_no_other */ +/* 0x075b: ih_no_other */ 0xf104bd00, 0xf0010007, 0x0ad00003, @@ -724,19 +731,19 @@ uint32_t nvf0_grhub_code[] = { 0xfc90fca0, 0x0088fe80, 0x32f480fc, -/* 0x0767: ctx_4170s */ +/* 0x077f: ctx_4170s */ 0xf001f800, 0xffb910f5, 0x70e7f102, 0x40e3f041, 0xf89d21f4, -/* 0x0779: ctx_4170w */ +/* 0x0791: ctx_4170w */ 0x70e7f100, 0x40e3f041, 0xb96821f4, 0xf4f002ff, 0xf01bf410, -/* 0x078e: ctx_redswitch */ +/* 0x07a6: ctx_redswitch */ 0xe7f100f8, 0xe5f00200, 0x20e5f040, @@ -744,7 +751,7 @@ uint32_t nvf0_grhub_code[] = { 0xf0850007, 0x0ed00103, 0xf004bd00, -/* 0x07aa: ctx_redswitch_delay */ +/* 0x07c2: ctx_redswitch_delay */ 0xf2b608f7, 0xfd1bf401, 0x0400e5f1, @@ -752,7 +759,7 @@ uint32_t nvf0_grhub_code[] = { 0x850007f1, 0xd00103f0, 0x04bd000e, -/* 0x07c6: ctx_86c */ +/* 0x07de: ctx_86c */ 0x07f100f8, 0x03f02300, 0x000fd002, @@ -763,17 +770,17 @@ uint32_t nvf0_grhub_code[] = { 0xe7f102ff, 0xe3f0a88c, 0x9d21f441, -/* 0x07ee: ctx_mem */ +/* 0x0806: ctx_mem */ 0x07f100f8, 0x03f08400, 0x000fd002, -/* 0x07fa: ctx_mem_wait */ +/* 0x0812: ctx_mem_wait */ 0xf7f104bd, 0xf3f08400, 0x00ffcf02, 0xf405fffd, 0x00f8f31b, -/* 0x080c: ctx_load */ +/* 0x0824: ctx_load */ 0x99f094bd, 0x0007f105, 0x0203f037, @@ -790,7 +797,7 @@ uint32_t nvf0_grhub_code[] = { 0x0203f083, 0xbd0002d0, 0x07f7f004, - 0x07ee21f5, + 0x080621f5, 0xc00007f1, 0xd00203f0, 0x04bd0002, @@ -845,29 +852,29 @@ uint32_t nvf0_grhub_code[] = { 0x170007f1, 0xd00203f0, 0x04bd0009, -/* 0x092a: ctx_chan */ +/* 0x0942: ctx_chan */ 0x21f500f8, - 0xa7f0080c, + 0xa7f00824, 0xd021f40c, 0xf505f7f0, - 0xf807ee21, -/* 0x093d: ctx_mmio_exec */ + 0xf8080621, +/* 0x0955: ctx_mmio_exec */ 0x41039800, 0x810007f1, 0xd00203f0, 0x04bd0003, -/* 0x094e: ctx_mmio_loop */ +/* 0x0966: ctx_mmio_loop */ 0x34c434bd, 0x0f1bf4ff, 0x020057f1, 0xfa0653f0, 0x03f80535, -/* 0x0960: ctx_mmio_pull */ +/* 0x0978: ctx_mmio_pull */ 0x98804e98, 0x21f4814f, 0x0830b69d, 0xf40112b6, -/* 0x0972: ctx_mmio_done */ +/* 0x098a: ctx_mmio_done */ 0x0398df1b, 0x0007f116, 0x0203f081, @@ -876,30 +883,30 @@ uint32_t nvf0_grhub_code[] = { 0x010017f1, 0xfa0613f0, 0x03f80601, -/* 0x0992: ctx_xfer */ +/* 0x09aa: ctx_xfer */ 0xe7f000f8, 0x0007f104, 0x0303f002, 0xbd000ed0, -/* 0x09a1: ctx_xfer_idle */ +/* 0x09b9: ctx_xfer_idle */ 0x00e7f104, 0x03e3f000, 0xf100eecf, 0xf42000e4, 0x11f4f21b, 0x0d02f406, -/* 0x09b8: ctx_xfer_pre */ +/* 0x09d0: ctx_xfer_pre */ 0xf510f7f0, - 0xf407c621, -/* 0x09c2: ctx_xfer_pre_load */ + 0xf407de21, +/* 0x09da: ctx_xfer_pre_load */ 0xf7f01c11, - 0x6721f502, - 0x7921f507, - 0x8e21f507, + 0x7f21f502, + 0x9121f507, + 0xa621f507, 0xf5f4bd07, - 0xf5076721, -/* 0x09db: ctx_xfer_exec */ - 0x98080c21, + 0xf5077f21, +/* 0x09f3: ctx_xfer_exec */ + 0x98082421, 0x24bd1601, 0x050007f1, 0xd00103f0, @@ -934,21 +941,21 @@ uint32_t nvf0_grhub_code[] = { 0xa7f01301, 0xd021f40c, 0xf505f7f0, - 0xf407ee21, -/* 0x0a6a: ctx_xfer_post */ + 0xf4080621, +/* 0x0a82: ctx_xfer_post */ 0xf7f02e02, - 0x6721f502, + 0x7f21f502, 0xf5f4bd07, - 0xf507c621, + 0xf507de21, 0xf5027f21, - 0xbd077921, - 0x6721f5f4, + 0xbd079121, + 0x7f21f5f4, 0x1011f407, 0xfd400198, 0x0bf40511, - 0x3d21f507, -/* 0x0a95: ctx_xfer_no_post_mmio */ -/* 0x0a95: ctx_xfer_done */ + 0x5521f507, +/* 0x0aad: ctx_xfer_no_post_mmio */ +/* 0x0aad: ctx_xfer_done */ 0x0000f809, 0x00000000, 0x00000000, @@ -970,10 +977,4 @@ uint32_t nvf0_grhub_code[] = { 0x00000000, 0x00000000, 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, }; diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc index 7593fbc..6ffe283 100644 --- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc +++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc @@ -32,6 +32,7 @@ #define NV_PGRAPH_FECS_INTR_ACK 0x409004 #define NV_PGRAPH_FECS_INTR 0x409008 +#define NV_PGRAPH_FECS_INTR_FWMTHD 0x00000400 #define NV_PGRAPH_FECS_INTR_CHSW 0x00000100 #define NV_PGRAPH_FECS_INTR_FIFO 0x00000004 #define NV_PGRAPH_FECS_INTR_MODE 0x40900c -- 2.7.4