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: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
Ben Skeggs 2012-08-23 01:32:38 -04:00
parent 1978a2f280
commit ec6566f323
2 changed files with 189 additions and 282 deletions

View File

@ -468,28 +468,6 @@ ih:
bclr $flags $p0
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
//
// In: $r15 value to set 0x404170 to
@ -630,7 +608,6 @@ ctx_load:
// In: $r2 channel address
//
ctx_chan:
call #ctx_4160s
call #ctx_load
mov $r10 12 // DONE_UNK12
call #wait_donez
@ -642,7 +619,6 @@ ctx_chan:
iord $r2 I[$r1 + 0x000]
or $r2 $r2
bra ne #ctx_chan_wait
call #ctx_4160c
ret
// Execute per-context state overrides list
@ -709,7 +685,6 @@ ctx_xfer:
ctx_xfer_pre:
mov $r15 0x10
call #ctx_86c
call #ctx_4160s
bra not $p1 #ctx_xfer_exec
ctx_xfer_pre_load:
@ -798,7 +773,6 @@ ctx_xfer:
call #ctx_mmio_exec
ctx_xfer_no_post_mmio:
call #ctx_4160c
ctx_xfer_done:
ret

View File

@ -553,7 +553,7 @@ uint32_t nve0_grhub_code[] = {
0xd00799f0,
0x32f40089,
0x0231f401,
0x082921f5,
0x07fb21f5,
0x085c87f1,
0xbd0684b6,
0x0799f094,
@ -563,7 +563,7 @@ uint32_t nve0_grhub_code[] = {
0x99f094bd,
0x0089d006,
0xf50131f4,
0xf1082921,
0xf107fb21,
0xb6085c87,
0x94bd0684,
0xd00699f0,
@ -572,7 +572,7 @@ uint32_t nve0_grhub_code[] = {
0xb920f931,
0x32f40212,
0x0232f401,
0x082921f5,
0x07fb21f5,
0x17f120fc,
0x14b60b00,
0x0012d006,
@ -582,7 +582,7 @@ uint32_t nve0_grhub_code[] = {
0x0131f40d,
0xf50232f4,
/* 0x0537: chsw_done */
0xf1082921,
0xf107fb21,
0xb60b0c17,
0x27f00614,
0x0012d001,
@ -594,7 +594,7 @@ uint32_t nve0_grhub_code[] = {
0xb0ff200e,
0x1bf401e4,
0x02f2b90d,
0x07b521f5,
0x078f21f5,
/* 0x0567: main_not_ctx_chan */
0xb0420ef4,
0x1bf402e4,
@ -604,7 +604,7 @@ uint32_t nve0_grhub_code[] = {
0x0089d007,
0xf40132f4,
0x21f50232,
0x87f10829,
0x87f107fb,
0x84b6085c,
0xf094bd06,
0x89d00799,
@ -653,267 +653,200 @@ uint32_t nve0_grhub_code[] = {
0xfe80fc90,
0x80fc0088,
0xf80032f4,
/* 0x0631: ctx_4160s */
0x60e7f101,
/* 0x0631: ctx_4170s */
0x70e7f101,
0x40e3f041,
0xf401f7f0,
/* 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,
0xf410f5f0,
0x00f88d21,
/* 0x06b8: ctx_load */
0x083c87f1,
0xbd0684b6,
0x0599f094,
0xf00089d0,
0x21f40ca7,
0x2417f1c9,
0x0614b60a,
0xf10010d0,
0xb60b0037,
0x32d00634,
0x0c17f140,
0x0614b60a,
0xd00747f0,
0x14d00012,
/* 0x06f1: ctx_chan_wait_0 */
0x4014cf40,
0xf41f44f0,
0x32d0fa1b,
0x000bfe00,
0xb61f2af0,
0x20b60424,
0x3c87f102,
0x0684b608,
0x99f094bd,
0x0089d008,
0x0a0417f1,
0xd00614b6,
0x17f10012,
0x14b60a20,
0x0227f006,
0x800023f1,
0xf00012d0,
0x27f11017,
0x23f00300,
0x0512fa02,
0x87f103f8,
0x84b6085c,
/* 0x0640: ctx_4170w */
0x4170e7f1,
0xf440e3f0,
0xf4f06821,
0xf31bf410,
/* 0x0652: ctx_redswitch */
0xe7f100f8,
0xe4b60614,
0x70f7f106,
0x00efd002,
/* 0x0663: ctx_redswitch_delay */
0xb608f7f0,
0x1bf401f2,
0x70f7f1fd,
0x00efd007,
/* 0x0672: ctx_86c */
0xe7f100f8,
0xe4b6086c,
0x00efd006,
0x8a14e7f1,
0xf440e3f0,
0xe7f18d21,
0xe3f0a86c,
0x8d21f441,
/* 0x0692: ctx_load */
0x87f100f8,
0x84b6083c,
0xf094bd06,
0x89d00899,
0xc1019800,
0x981814b6,
0x25b6c002,
0x0512fd08,
0xf1160180,
0x89d00599,
0x0ca7f000,
0xf1c921f4,
0xb60a2417,
0x10d00614,
0x0037f100,
0x0634b60b,
0xf14032d0,
0xb60a0c17,
0x47f00614,
0x0012d007,
/* 0x06cb: ctx_chan_wait_0 */
0xcf4014d0,
0x44f04014,
0xfa1bf41f,
0xfe0032d0,
0x2af0000b,
0x0424b61f,
0xf10220b6,
0xb6083c87,
0x94bd0684,
0xd00999f0,
0x27f10089,
0x24b60a04,
0x0021d006,
0xf10127f0,
0xb60a2017,
0x12d00614,
0x0017f100,
0x0613f002,
0xf80501fa,
0x5c87f103,
0xd00899f0,
0x17f10089,
0x14b60a04,
0x0012d006,
0x0a2017f1,
0xf00614b6,
0x23f10227,
0x12d08000,
0x1017f000,
0x030027f1,
0xfa0223f0,
0x03f80512,
0x085c87f1,
0xbd0684b6,
0x0899f094,
0x980089d0,
0x14b6c101,
0xc0029818,
0xfd0825b6,
0x01800512,
0x3c87f116,
0x0684b608,
0x99f094bd,
0x0089d009,
0x085c87f1,
0xbd0684b6,
0x0599f094,
0xf80089d0,
/* 0x07b5: ctx_chan */
0x3121f500,
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,
0x0a0427f1,
0xd00624b6,
0x27f00021,
0x2017f101,
0x0614b60a,
0xf10012d0,
0xf0020017,
0x01fa0613,
0xf803f806,
/* 0x0829: ctx_xfer */
0x0611f400,
/* 0x082f: ctx_xfer_pre */
0xf01102f4,
0x21f510f7,
0x21f50698,
0xf103f805,
0xb6085c87,
0x94bd0684,
0xd00999f0,
0x87f10089,
0x84b6085c,
0xf094bd06,
0x89d00599,
/* 0x078f: ctx_chan */
0xf500f800,
0xf0069221,
0x21f40ca7,
0x1017f1c9,
0x0614b60a,
0xd00527f0,
/* 0x07a6: ctx_chan_wait */
0x12cf0012,
0x0522fd00,
0xf8fa1bf4,
/* 0x07b1: ctx_mmio_exec */
0x81039800,
0x0a0427f1,
0xd00624b6,
0x34bd0023,
/* 0x07c0: ctx_mmio_loop */
0xf4ff34c4,
0x57f10f1b,
0x53f00300,
0x0535fa06,
/* 0x07d2: ctx_mmio_pull */
0x4e9803f8,
0xc14f98c0,
0xb68d21f4,
0x12b60830,
0xdf1bf401,
/* 0x07e4: ctx_mmio_done */
0xd0160398,
0x00800023,
0x0017f180,
0x0613f002,
0xf80601fa,
/* 0x07fb: ctx_xfer */
0xf400f803,
0x02f40611,
/* 0x0801: ctx_xfer_pre */
0x10f7f00d,
0x067221f5,
/* 0x080b: ctx_xfer_pre_load */
0xf01c11f4,
0x21f502f7,
0x21f50631,
0x21f50640,
0xf4bd0652,
0x063121f5,
0x069221f5,
/* 0x0824: ctx_xfer_exec */
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,
0x11f40631,
/* 0x083d: ctx_xfer_pre_load */
0x02f7f01c,
0x065721f5,
0x066621f5,
0x067821f5,
0x21f5f4bd,
0x21f50657,
/* 0x0856: ctx_xfer_exec */
0x019806b8,
0x1427f116,
0x0624b604,
0xf10020d0,
0xf0a500e7,
0x1fb941e3,
0x8d21f402,
0xf004e0b6,
0x2cf001fc,
0x0124b602,
0xf405f2fd,
0x17f18d21,
0x13f04afc,
0x0c27f002,
0xf50012d0,
0xf1020721,
0xf047fc27,
0x20d00223,
0x012cf000,
0xd00320b6,
0xacf00012,
0x06a5f001,
0x9800b7f0,
0x0d98140c,
0x00e7f015,
0x015c21f5,
0xf508a7f0,
0xf5010321,
0xf4020721,
0xa7f02201,
0xc921f40c,
0x0a1017f1,
0xf00614b6,
0x12d00527,
/* 0x08dd: ctx_xfer_post_save_wait */
0x0012cf00,
0xf40522fd,
0x02f4fa1b,
/* 0x08e9: ctx_xfer_post */
0x02f7f032,
0x065721f5,
0x21f5f4bd,
0x21f50698,
0x21f50226,
0xf4bd0666,
0x065721f5,
0x981011f4,
0x11fd8001,
0x070bf405,
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,
0x80019810,
0xf40511fd,
0x21f5070b,
/* 0x08e2: ctx_xfer_no_post_mmio */
/* 0x08e2: ctx_xfer_done */
0x00f807b1,
0x00000000,
0x00000000,
0x00000000,