drm/nve0/gr: remove 0x404160 bashing from hub fuc
authorBen Skeggs <bskeggs@redhat.com>
Thu, 23 Aug 2012 05:32:38 +0000 (01:32 -0400)
committerBen Skeggs <bskeggs@redhat.com>
Wed, 3 Oct 2012 03:13:08 +0000 (13:13 +1000)
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>
drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnve0.fuc
drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnve0.fuc.h

index 816ae57..138eeaa 100644 (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
index 05c3995..decf0c6 100644 (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,
-       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,
+       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,
-       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,
+       0x11f40631,
+       0x80019810,
+       0xf40511fd,
+       0x21f5070b,
+/* 0x08e2: ctx_xfer_no_post_mmio */
+/* 0x08e2: ctx_xfer_done */
+       0x00f807b1,
        0x00000000,
        0x00000000,
        0x00000000,