提交 ec6566f3 编写于 作者: B Ben Skeggs

drm/nve0/gr: remove 0x404160 bashing from hub fuc

Triggers PIBUS interrupts due to register not existing anymore, and as
a result HUB_SET_CHAN times out.

After this commit, our fuc loads and can accelerate at least fbcon, X,
glxgears and OA on NVE4.  NVE7 not tested as of yet.
Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
上级 1978a2f2
...@@ -468,28 +468,6 @@ ih: ...@@ -468,28 +468,6 @@ ih:
bclr $flags $p0 bclr $flags $p0
iret iret
// Not real sure, but, MEM_CMD 7 will hang forever if this isn't done
ctx_4160s:
mov $r14 0x4160
sethi $r14 0x400000
mov $r15 1
call #nv_wr32
ctx_4160s_wait:
call #nv_rd32
xbit $r15 $r15 4
bra e #ctx_4160s_wait
ret
// Without clearing again at end of xfer, some things cause PGRAPH
// to hang with STATUS=0x00000007 until it's cleared.. fbcon can
// still function with it set however...
ctx_4160c:
mov $r14 0x4160
sethi $r14 0x400000
clear b32 $r15
call #nv_wr32
ret
// Again, not real sure // Again, not real sure
// //
// In: $r15 value to set 0x404170 to // In: $r15 value to set 0x404170 to
...@@ -630,7 +608,6 @@ ctx_load: ...@@ -630,7 +608,6 @@ ctx_load:
// In: $r2 channel address // In: $r2 channel address
// //
ctx_chan: ctx_chan:
call #ctx_4160s
call #ctx_load call #ctx_load
mov $r10 12 // DONE_UNK12 mov $r10 12 // DONE_UNK12
call #wait_donez call #wait_donez
...@@ -642,7 +619,6 @@ ctx_chan: ...@@ -642,7 +619,6 @@ ctx_chan:
iord $r2 I[$r1 + 0x000] iord $r2 I[$r1 + 0x000]
or $r2 $r2 or $r2 $r2
bra ne #ctx_chan_wait bra ne #ctx_chan_wait
call #ctx_4160c
ret ret
// Execute per-context state overrides list // Execute per-context state overrides list
...@@ -709,7 +685,6 @@ ctx_xfer: ...@@ -709,7 +685,6 @@ ctx_xfer:
ctx_xfer_pre: ctx_xfer_pre:
mov $r15 0x10 mov $r15 0x10
call #ctx_86c call #ctx_86c
call #ctx_4160s
bra not $p1 #ctx_xfer_exec bra not $p1 #ctx_xfer_exec
ctx_xfer_pre_load: ctx_xfer_pre_load:
...@@ -798,7 +773,6 @@ ctx_xfer: ...@@ -798,7 +773,6 @@ ctx_xfer:
call #ctx_mmio_exec call #ctx_mmio_exec
ctx_xfer_no_post_mmio: ctx_xfer_no_post_mmio:
call #ctx_4160c
ctx_xfer_done: ctx_xfer_done:
ret ret
......
...@@ -553,7 +553,7 @@ uint32_t nve0_grhub_code[] = { ...@@ -553,7 +553,7 @@ uint32_t nve0_grhub_code[] = {
0xd00799f0, 0xd00799f0,
0x32f40089, 0x32f40089,
0x0231f401, 0x0231f401,
0x082921f5, 0x07fb21f5,
0x085c87f1, 0x085c87f1,
0xbd0684b6, 0xbd0684b6,
0x0799f094, 0x0799f094,
...@@ -563,7 +563,7 @@ uint32_t nve0_grhub_code[] = { ...@@ -563,7 +563,7 @@ uint32_t nve0_grhub_code[] = {
0x99f094bd, 0x99f094bd,
0x0089d006, 0x0089d006,
0xf50131f4, 0xf50131f4,
0xf1082921, 0xf107fb21,
0xb6085c87, 0xb6085c87,
0x94bd0684, 0x94bd0684,
0xd00699f0, 0xd00699f0,
...@@ -572,7 +572,7 @@ uint32_t nve0_grhub_code[] = { ...@@ -572,7 +572,7 @@ uint32_t nve0_grhub_code[] = {
0xb920f931, 0xb920f931,
0x32f40212, 0x32f40212,
0x0232f401, 0x0232f401,
0x082921f5, 0x07fb21f5,
0x17f120fc, 0x17f120fc,
0x14b60b00, 0x14b60b00,
0x0012d006, 0x0012d006,
...@@ -582,7 +582,7 @@ uint32_t nve0_grhub_code[] = { ...@@ -582,7 +582,7 @@ uint32_t nve0_grhub_code[] = {
0x0131f40d, 0x0131f40d,
0xf50232f4, 0xf50232f4,
/* 0x0537: chsw_done */ /* 0x0537: chsw_done */
0xf1082921, 0xf107fb21,
0xb60b0c17, 0xb60b0c17,
0x27f00614, 0x27f00614,
0x0012d001, 0x0012d001,
...@@ -594,7 +594,7 @@ uint32_t nve0_grhub_code[] = { ...@@ -594,7 +594,7 @@ uint32_t nve0_grhub_code[] = {
0xb0ff200e, 0xb0ff200e,
0x1bf401e4, 0x1bf401e4,
0x02f2b90d, 0x02f2b90d,
0x07b521f5, 0x078f21f5,
/* 0x0567: main_not_ctx_chan */ /* 0x0567: main_not_ctx_chan */
0xb0420ef4, 0xb0420ef4,
0x1bf402e4, 0x1bf402e4,
...@@ -604,7 +604,7 @@ uint32_t nve0_grhub_code[] = { ...@@ -604,7 +604,7 @@ uint32_t nve0_grhub_code[] = {
0x0089d007, 0x0089d007,
0xf40132f4, 0xf40132f4,
0x21f50232, 0x21f50232,
0x87f10829, 0x87f107fb,
0x84b6085c, 0x84b6085c,
0xf094bd06, 0xf094bd06,
0x89d00799, 0x89d00799,
...@@ -653,267 +653,200 @@ uint32_t nve0_grhub_code[] = { ...@@ -653,267 +653,200 @@ uint32_t nve0_grhub_code[] = {
0xfe80fc90, 0xfe80fc90,
0x80fc0088, 0x80fc0088,
0xf80032f4, 0xf80032f4,
/* 0x0631: ctx_4160s */ /* 0x0631: ctx_4170s */
0x60e7f101, 0x70e7f101,
0x40e3f041, 0x40e3f041,
0xf401f7f0, 0xf410f5f0,
/* 0x063e: ctx_4160s_wait */
0x21f48d21,
0x04ffc868,
0xf8fa0bf4,
/* 0x0649: ctx_4160c */
0x60e7f100,
0x40e3f041,
0x21f4f4bd,
/* 0x0657: ctx_4170s */
0xf100f88d,
0xf04170e7,
0xf5f040e3,
0x8d21f410,
/* 0x0666: ctx_4170w */
0xe7f100f8,
0xe3f04170,
0x6821f440,
0xf410f4f0,
0x00f8f31b,
/* 0x0678: ctx_redswitch */
0x0614e7f1,
0xf106e4b6,
0xd00270f7,
0xf7f000ef,
/* 0x0689: ctx_redswitch_delay */
0x01f2b608,
0xf1fd1bf4,
0xd00770f7,
0x00f800ef,
/* 0x0698: ctx_86c */
0x086ce7f1,
0xd006e4b6,
0xe7f100ef,
0xe3f08a14,
0x8d21f440,
0xa86ce7f1,
0xf441e3f0,
0x00f88d21, 0x00f88d21,
/* 0x06b8: ctx_load */ /* 0x0640: ctx_4170w */
0x083c87f1, 0x4170e7f1,
0xbd0684b6, 0xf440e3f0,
0x0599f094, 0xf4f06821,
0xf00089d0, 0xf31bf410,
0x21f40ca7, /* 0x0652: ctx_redswitch */
0x2417f1c9, 0xe7f100f8,
0x0614b60a, 0xe4b60614,
0xf10010d0, 0x70f7f106,
0xb60b0037, 0x00efd002,
0x32d00634, /* 0x0663: ctx_redswitch_delay */
0x0c17f140, 0xb608f7f0,
0x0614b60a, 0x1bf401f2,
0xd00747f0, 0x70f7f1fd,
0x14d00012, 0x00efd007,
/* 0x06f1: ctx_chan_wait_0 */ /* 0x0672: ctx_86c */
0x4014cf40, 0xe7f100f8,
0xf41f44f0, 0xe4b6086c,
0x32d0fa1b, 0x00efd006,
0x000bfe00, 0x8a14e7f1,
0xb61f2af0, 0xf440e3f0,
0x20b60424, 0xe7f18d21,
0x3c87f102, 0xe3f0a86c,
0x0684b608, 0x8d21f441,
0x99f094bd, /* 0x0692: ctx_load */
0x0089d008, 0x87f100f8,
0x0a0417f1, 0x84b6083c,
0xd00614b6,
0x17f10012,
0x14b60a20,
0x0227f006,
0x800023f1,
0xf00012d0,
0x27f11017,
0x23f00300,
0x0512fa02,
0x87f103f8,
0x84b6085c,
0xf094bd06, 0xf094bd06,
0x89d00899, 0x89d00599,
0xc1019800, 0x0ca7f000,
0x981814b6, 0xf1c921f4,
0x25b6c002, 0xb60a2417,
0x0512fd08, 0x10d00614,
0xf1160180, 0x0037f100,
0x0634b60b,
0xf14032d0,
0xb60a0c17,
0x47f00614,
0x0012d007,
/* 0x06cb: ctx_chan_wait_0 */
0xcf4014d0,
0x44f04014,
0xfa1bf41f,
0xfe0032d0,
0x2af0000b,
0x0424b61f,
0xf10220b6,
0xb6083c87, 0xb6083c87,
0x94bd0684, 0x94bd0684,
0xd00999f0, 0xd00899f0,
0x27f10089, 0x17f10089,
0x24b60a04, 0x14b60a04,
0x0021d006, 0x0012d006,
0xf10127f0, 0x0a2017f1,
0xb60a2017, 0xf00614b6,
0x12d00614, 0x23f10227,
0x0017f100, 0x12d08000,
0x0613f002, 0x1017f000,
0xf80501fa, 0x030027f1,
0x5c87f103, 0xfa0223f0,
0x03f80512,
0x085c87f1,
0xbd0684b6,
0x0899f094,
0x980089d0,
0x14b6c101,
0xc0029818,
0xfd0825b6,
0x01800512,
0x3c87f116,
0x0684b608, 0x0684b608,
0x99f094bd, 0x99f094bd,
0x0089d009, 0x0089d009,
0x085c87f1, 0x0a0427f1,
0xbd0684b6, 0xd00624b6,
0x0599f094, 0x27f00021,
0xf80089d0, 0x2017f101,
/* 0x07b5: ctx_chan */ 0x0614b60a,
0x3121f500, 0xf10012d0,
0xb821f506,
0x0ca7f006,
0xf1c921f4,
0xb60a1017,
0x27f00614,
0x0012d005,
/* 0x07d0: ctx_chan_wait */
0xfd0012cf,
0x1bf40522,
0x4921f5fa,
/* 0x07df: ctx_mmio_exec */
0x9800f806,
0x27f18103,
0x24b60a04,
0x0023d006,
/* 0x07ee: ctx_mmio_loop */
0x34c434bd,
0x0f1bf4ff,
0x030057f1,
0xfa0653f0,
0x03f80535,
/* 0x0800: ctx_mmio_pull */
0x98c04e98,
0x21f4c14f,
0x0830b68d,
0xf40112b6,
/* 0x0812: ctx_mmio_done */
0x0398df1b,
0x0023d016,
0xf1800080,
0xf0020017, 0xf0020017,
0x01fa0613, 0x01fa0613,
0xf803f806, 0xf103f805,
/* 0x0829: ctx_xfer */ 0xb6085c87,
0x0611f400, 0x94bd0684,
/* 0x082f: ctx_xfer_pre */ 0xd00999f0,
0xf01102f4, 0x87f10089,
0x21f510f7, 0x84b6085c,
0x21f50698, 0xf094bd06,
0x11f40631, 0x89d00599,
/* 0x083d: ctx_xfer_pre_load */ /* 0x078f: ctx_chan */
0x02f7f01c, 0xf500f800,
0x065721f5, 0xf0069221,
0x066621f5, 0x21f40ca7,
0x067821f5, 0x1017f1c9,
0x21f5f4bd, 0x0614b60a,
0x21f50657, 0xd00527f0,
/* 0x0856: ctx_xfer_exec */ /* 0x07a6: ctx_chan_wait */
0x019806b8, 0x12cf0012,
0x1427f116, 0x0522fd00,
0x0624b604, 0xf8fa1bf4,
0xf10020d0, /* 0x07b1: ctx_mmio_exec */
0xf0a500e7, 0x81039800,
0x1fb941e3, 0x0a0427f1,
0x8d21f402, 0xd00624b6,
0xf004e0b6, 0x34bd0023,
0x2cf001fc, /* 0x07c0: ctx_mmio_loop */
0x0124b602, 0xf4ff34c4,
0xf405f2fd, 0x57f10f1b,
0x17f18d21, 0x53f00300,
0x13f04afc, 0x0535fa06,
0x0c27f002, /* 0x07d2: ctx_mmio_pull */
0xf50012d0, 0x4e9803f8,
0xf1020721, 0xc14f98c0,
0xf047fc27, 0xb68d21f4,
0x20d00223, 0x12b60830,
0x012cf000, 0xdf1bf401,
0xd00320b6, /* 0x07e4: ctx_mmio_done */
0xacf00012, 0xd0160398,
0x06a5f001, 0x00800023,
0x9800b7f0, 0x0017f180,
0x0d98140c, 0x0613f002,
0x00e7f015, 0xf80601fa,
0x015c21f5, /* 0x07fb: ctx_xfer */
0xf508a7f0, 0xf400f803,
0xf5010321, 0x02f40611,
0xf4020721, /* 0x0801: ctx_xfer_pre */
0xa7f02201, 0x10f7f00d,
0xc921f40c, 0x067221f5,
0x0a1017f1, /* 0x080b: ctx_xfer_pre_load */
0xf00614b6, 0xf01c11f4,
0x12d00527, 0x21f502f7,
/* 0x08dd: ctx_xfer_post_save_wait */ 0x21f50631,
0x0012cf00, 0x21f50640,
0xf40522fd, 0xf4bd0652,
0x02f4fa1b, 0x063121f5,
/* 0x08e9: ctx_xfer_post */ 0x069221f5,
0x02f7f032, /* 0x0824: ctx_xfer_exec */
0x065721f5, 0xf1160198,
0xb6041427,
0x20d00624,
0x00e7f100,
0x41e3f0a5,
0xf4021fb9,
0xe0b68d21,
0x01fcf004,
0xb6022cf0,
0xf2fd0124,
0x8d21f405,
0x4afc17f1,
0xf00213f0,
0x12d00c27,
0x0721f500,
0xfc27f102,
0x0223f047,
0xf00020d0,
0x20b6012c,
0x0012d003,
0xf001acf0,
0xb7f006a5,
0x140c9800,
0xf0150d98,
0x21f500e7,
0xa7f0015c,
0x0321f508,
0x0721f501,
0x2201f402,
0xf40ca7f0,
0x17f1c921,
0x14b60a10,
0x0527f006,
/* 0x08ab: ctx_xfer_post_save_wait */
0xcf0012d0,
0x22fd0012,
0xfa1bf405,
/* 0x08b7: ctx_xfer_post */
0xf02e02f4,
0x21f502f7,
0xf4bd0631,
0x067221f5,
0x022621f5,
0x064021f5,
0x21f5f4bd, 0x21f5f4bd,
0x21f50698, 0x11f40631,
0x21f50226, 0x80019810,
0xf4bd0666, 0xf40511fd,
0x065721f5, 0x21f5070b,
0x981011f4, /* 0x08e2: ctx_xfer_no_post_mmio */
0x11fd8001, /* 0x08e2: ctx_xfer_done */
0x070bf405, 0x00f807b1,
0x07df21f5,
/* 0x0914: ctx_xfer_no_post_mmio */
0x064921f5,
/* 0x0918: ctx_xfer_done */
0x000000f8,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册