drm/nouveau/gr/gm200: switch over to using sw_bundle_init from firmware
authorBen Skeggs <bskeggs@redhat.com>
Wed, 24 Feb 2016 23:58:12 +0000 (09:58 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Mon, 14 Mar 2016 00:13:27 +0000 (10:13 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.h
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm200.c
drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm206.c

index 71473b6..88860fa 100644 (file)
@@ -211,7 +211,5 @@ extern const struct gf100_gr_init gk208_grctx_init_crstr_0[];
 extern const struct gf100_gr_init gm107_grctx_init_gpc_unk_0[];
 extern const struct gf100_gr_init gm107_grctx_init_wwdx_0[];
 
-extern const struct gf100_gr_pack gm200_grctx_pack_icmd[];
-
 extern const struct gf100_gr_pack gm200_grctx_pack_mthd[];
 #endif
index d2d7160..30d82e4 100644 (file)
  ******************************************************************************/
 
 static const struct gf100_gr_init
-gm200_grctx_init_icmd_0[] = {
-       { 0x001000,   1, 0x01, 0x00000002 },
-       { 0x0006aa,   1, 0x01, 0x00000001 },
-       { 0x0006ad,   2, 0x01, 0x00000100 },
-       { 0x0006b1,   1, 0x01, 0x00000011 },
-       { 0x00078c,   1, 0x01, 0x00000008 },
-       { 0x000792,   1, 0x01, 0x00000001 },
-       { 0x000794,   3, 0x01, 0x00000001 },
-       { 0x000797,   1, 0x01, 0x000000cf },
-       { 0x00079a,   1, 0x01, 0x00000002 },
-       { 0x0007a1,   1, 0x01, 0x00000001 },
-       { 0x0007a3,   3, 0x01, 0x00000001 },
-       { 0x000831,   1, 0x01, 0x00000004 },
-       { 0x01e100,   1, 0x01, 0x00000001 },
-       { 0x001000,   1, 0x01, 0x00000008 },
-       { 0x000039,   3, 0x01, 0x00000000 },
-       { 0x000380,   1, 0x01, 0x00000001 },
-       { 0x000366,   2, 0x01, 0x00000000 },
-       { 0x000368,   1, 0x01, 0x00000fff },
-       { 0x000370,   2, 0x01, 0x00000000 },
-       { 0x000372,   1, 0x01, 0x000fffff },
-       { 0x000374,   1, 0x01, 0x00000100 },
-       { 0x000818,   8, 0x01, 0x00000000 },
-       { 0x000848,  16, 0x01, 0x00000000 },
-       { 0x000738,   1, 0x01, 0x00000000 },
-       { 0x000b07,   1, 0x01, 0x00000002 },
-       { 0x000b08,   2, 0x01, 0x00000100 },
-       { 0x000b0a,   1, 0x01, 0x00000001 },
-       { 0x000a04,   1, 0x01, 0x000000ff },
-       { 0x000a0b,   1, 0x01, 0x00000040 },
-       { 0x00097f,   1, 0x01, 0x00000100 },
-       { 0x000a02,   1, 0x01, 0x00000001 },
-       { 0x000809,   1, 0x01, 0x00000007 },
-       { 0x00c221,   1, 0x01, 0x00000040 },
-       { 0x00c401,   1, 0x01, 0x00000001 },
-       { 0x00c402,   1, 0x01, 0x00010001 },
-       { 0x00c403,   2, 0x01, 0x00000001 },
-       { 0x00c40e,   1, 0x01, 0x00000020 },
-       { 0x01e100,   1, 0x01, 0x00000001 },
-       { 0x001000,   1, 0x01, 0x00000001 },
-       { 0x000b07,   1, 0x01, 0x00000002 },
-       { 0x000b08,   2, 0x01, 0x00000100 },
-       { 0x000b0a,   1, 0x01, 0x00000001 },
-       { 0x01e100,   1, 0x01, 0x00000001 },
-       { 0x001000,   1, 0x01, 0x00000004 },
-       { 0x000039,   3, 0x01, 0x00000000 },
-       { 0x0000a9,   1, 0x01, 0x0000ffff },
-       { 0x000038,   1, 0x01, 0x0fac6881 },
-       { 0x00003d,   1, 0x01, 0x00000001 },
-       { 0x0000e8,   8, 0x01, 0x00000400 },
-       { 0x000078,   8, 0x01, 0x00000300 },
-       { 0x000050,   1, 0x01, 0x00000011 },
-       { 0x000058,   8, 0x01, 0x00000008 },
-       { 0x000208,   8, 0x01, 0x00000001 },
-       { 0x000081,   1, 0x01, 0x00000001 },
-       { 0x000085,   1, 0x01, 0x00000004 },
-       { 0x000088,   1, 0x01, 0x00000400 },
-       { 0x000090,   1, 0x01, 0x00000300 },
-       { 0x000098,   1, 0x01, 0x00001001 },
-       { 0x0000e3,   1, 0x01, 0x00000001 },
-       { 0x0000da,   1, 0x01, 0x00000001 },
-       { 0x0000b4,   4, 0x01, 0x88888888 },
-       { 0x0000f8,   1, 0x01, 0x00000003 },
-       { 0x0000fa,   1, 0x01, 0x00000001 },
-       { 0x0000b1,   2, 0x01, 0x00000001 },
-       { 0x00009f,   4, 0x01, 0x0000ffff },
-       { 0x0000a8,   1, 0x01, 0x0000ffff },
-       { 0x0000ad,   1, 0x01, 0x0000013e },
-       { 0x0000e1,   1, 0x01, 0x00000010 },
-       { 0x000290,  16, 0x01, 0x00000000 },
-       { 0x0003b0,  16, 0x01, 0x00000000 },
-       { 0x0002a0,  16, 0x01, 0x00000000 },
-       { 0x000420,  16, 0x01, 0x00000000 },
-       { 0x0002b0,  16, 0x01, 0x00000000 },
-       { 0x000430,  16, 0x01, 0x00000000 },
-       { 0x0002c0,  16, 0x01, 0x00000000 },
-       { 0x0004d0,  16, 0x01, 0x00000000 },
-       { 0x000720,  16, 0x01, 0x00000000 },
-       { 0x0008c0,  16, 0x01, 0x00000000 },
-       { 0x000890,  16, 0x01, 0x00000000 },
-       { 0x0008e0,  16, 0x01, 0x00000000 },
-       { 0x0008a0,  16, 0x01, 0x00000000 },
-       { 0x0008f0,  16, 0x01, 0x00000000 },
-       { 0x00094c,   1, 0x01, 0x000000ff },
-       { 0x00094d,   1, 0x01, 0xffffffff },
-       { 0x00094e,   1, 0x01, 0x00000002 },
-       { 0x0002f2,   2, 0x01, 0x00000001 },
-       { 0x0002f5,   1, 0x01, 0x00000001 },
-       { 0x0002f7,   1, 0x01, 0x00000001 },
-       { 0x000303,   1, 0x01, 0x00000001 },
-       { 0x0002e6,   1, 0x01, 0x00000001 },
-       { 0x000466,   1, 0x01, 0x00000052 },
-       { 0x000301,   1, 0x01, 0x3f800000 },
-       { 0x000304,   1, 0x01, 0x30201000 },
-       { 0x000305,   1, 0x01, 0x70605040 },
-       { 0x000306,   1, 0x01, 0xb8a89888 },
-       { 0x000307,   1, 0x01, 0xf8e8d8c8 },
-       { 0x00030a,   1, 0x01, 0x00ffff00 },
-       { 0x00030b,   1, 0x01, 0x0000001a },
-       { 0x00030c,   1, 0x01, 0x00000001 },
-       { 0x000318,   1, 0x01, 0x00000001 },
-       { 0x000340,   1, 0x01, 0x00000000 },
-       { 0x00037d,   1, 0x01, 0x00000006 },
-       { 0x0003a0,   1, 0x01, 0x00000002 },
-       { 0x0003aa,   1, 0x01, 0x00000001 },
-       { 0x0003a9,   1, 0x01, 0x00000001 },
-       { 0x000380,   1, 0x01, 0x00000001 },
-       { 0x000383,   1, 0x01, 0x00000011 },
-       { 0x000360,   1, 0x01, 0x00000040 },
-       { 0x000366,   2, 0x01, 0x00000000 },
-       { 0x000368,   1, 0x01, 0x00000fff },
-       { 0x000370,   2, 0x01, 0x00000000 },
-       { 0x000372,   1, 0x01, 0x000fffff },
-       { 0x000374,   1, 0x01, 0x00000100 },
-       { 0x00037a,   1, 0x01, 0x00000012 },
-       { 0x000619,   1, 0x01, 0x00000003 },
-       { 0x000811,   1, 0x01, 0x00000003 },
-       { 0x000812,   1, 0x01, 0x00000004 },
-       { 0x000813,   1, 0x01, 0x00000006 },
-       { 0x000814,   1, 0x01, 0x00000008 },
-       { 0x000815,   1, 0x01, 0x0000000b },
-       { 0x000800,   6, 0x01, 0x00000001 },
-       { 0x000632,   1, 0x01, 0x00000001 },
-       { 0x000633,   1, 0x01, 0x00000002 },
-       { 0x000634,   1, 0x01, 0x00000003 },
-       { 0x000635,   1, 0x01, 0x00000004 },
-       { 0x000654,   1, 0x01, 0x3f800000 },
-       { 0x000657,   1, 0x01, 0x3f800000 },
-       { 0x000655,   2, 0x01, 0x3f800000 },
-       { 0x0006cd,   1, 0x01, 0x3f800000 },
-       { 0x0007f5,   1, 0x01, 0x3f800000 },
-       { 0x0007dc,   1, 0x01, 0x39291909 },
-       { 0x0007dd,   1, 0x01, 0x79695949 },
-       { 0x0007de,   1, 0x01, 0xb9a99989 },
-       { 0x0007df,   1, 0x01, 0xf9e9d9c9 },
-       { 0x0007e8,   1, 0x01, 0x00003210 },
-       { 0x0007e9,   1, 0x01, 0x00007654 },
-       { 0x0007ea,   1, 0x01, 0x00000098 },
-       { 0x0007ec,   1, 0x01, 0x39291909 },
-       { 0x0007ed,   1, 0x01, 0x79695949 },
-       { 0x0007ee,   1, 0x01, 0xb9a99989 },
-       { 0x0007ef,   1, 0x01, 0xf9e9d9c9 },
-       { 0x0007f0,   1, 0x01, 0x00003210 },
-       { 0x0007f1,   1, 0x01, 0x00007654 },
-       { 0x0007f2,   1, 0x01, 0x00000098 },
-       { 0x0005a5,   1, 0x01, 0x00000001 },
-       { 0x0005aa,   1, 0x01, 0x00000002 },
-       { 0x0005cb,   1, 0x01, 0x00000004 },
-       { 0x0005d0,   1, 0x01, 0x20181008 },
-       { 0x0005d1,   1, 0x01, 0x40383028 },
-       { 0x0005d2,   1, 0x01, 0x60585048 },
-       { 0x0005d3,   1, 0x01, 0x80787068 },
-       { 0x000980, 128, 0x01, 0x00000000 },
-       { 0x000468,   1, 0x01, 0x00000004 },
-       { 0x00046c,   1, 0x01, 0x00000001 },
-       { 0x000470,  96, 0x01, 0x00000000 },
-       { 0x0005e0,  16, 0x01, 0x00000d10 },
-       { 0x000510,  16, 0x01, 0x3f800000 },
-       { 0x000520,   1, 0x01, 0x000002b6 },
-       { 0x000529,   1, 0x01, 0x00000001 },
-       { 0x000530,  16, 0x01, 0xffff0000 },
-       { 0x000550,  32, 0x01, 0xffff0000 },
-       { 0x000585,   1, 0x01, 0x0000003f },
-       { 0x000576,   1, 0x01, 0x00000003 },
-       { 0x00057b,   1, 0x01, 0x00000059 },
-       { 0x000586,   1, 0x01, 0x00000040 },
-       { 0x000582,   2, 0x01, 0x00000080 },
-       { 0x000595,   1, 0x01, 0x00400040 },
-       { 0x000596,   1, 0x01, 0x00000492 },
-       { 0x000597,   1, 0x01, 0x08080203 },
-       { 0x0005ad,   1, 0x01, 0x00000008 },
-       { 0x000598,   1, 0x01, 0x00020001 },
-       { 0x0005d4,   1, 0x01, 0x00000001 },
-       { 0x0005c2,   1, 0x01, 0x00000001 },
-       { 0x000638,   2, 0x01, 0x00000001 },
-       { 0x00063a,   1, 0x01, 0x00000002 },
-       { 0x00063b,   2, 0x01, 0x00000001 },
-       { 0x00063d,   1, 0x01, 0x00000002 },
-       { 0x00063e,   1, 0x01, 0x00000001 },
-       { 0x0008b8,   8, 0x01, 0x00000001 },
-       { 0x000900,   8, 0x01, 0x00000001 },
-       { 0x000908,   8, 0x01, 0x00000002 },
-       { 0x000910,  16, 0x01, 0x00000001 },
-       { 0x000920,   8, 0x01, 0x00000002 },
-       { 0x000928,   8, 0x01, 0x00000001 },
-       { 0x000662,   1, 0x01, 0x00000001 },
-       { 0x000648,   9, 0x01, 0x00000001 },
-       { 0x000674,   1, 0x01, 0x00000001 },
-       { 0x000658,   1, 0x01, 0x0000000f },
-       { 0x0007ff,   1, 0x01, 0x0000000a },
-       { 0x00066a,   1, 0x01, 0x40000000 },
-       { 0x00066b,   1, 0x01, 0x10000000 },
-       { 0x00066c,   2, 0x01, 0xffff0000 },
-       { 0x0007af,   2, 0x01, 0x00000008 },
-       { 0x0007f6,   1, 0x01, 0x00000001 },
-       { 0x0006b2,   1, 0x01, 0x00000055 },
-       { 0x0007ad,   1, 0x01, 0x00000003 },
-       { 0x000971,   1, 0x01, 0x00000008 },
-       { 0x000972,   1, 0x01, 0x00000040 },
-       { 0x000973,   1, 0x01, 0x0000012c },
-       { 0x00097c,   1, 0x01, 0x00000040 },
-       { 0x000975,   1, 0x01, 0x00000020 },
-       { 0x000976,   1, 0x01, 0x00000001 },
-       { 0x000977,   1, 0x01, 0x00000020 },
-       { 0x000978,   1, 0x01, 0x00000001 },
-       { 0x000957,   1, 0x01, 0x00000003 },
-       { 0x00095e,   1, 0x01, 0x20164010 },
-       { 0x00095f,   1, 0x01, 0x00000020 },
-       { 0x000a0d,   1, 0x01, 0x00000006 },
-       { 0x00097d,   1, 0x01, 0x0000000c },
-       { 0x000683,   1, 0x01, 0x00000006 },
-       { 0x000687,   1, 0x01, 0x003fffff },
-       { 0x0006a0,   1, 0x01, 0x00000005 },
-       { 0x000840,   1, 0x01, 0x00400008 },
-       { 0x000841,   1, 0x01, 0x08000080 },
-       { 0x000842,   1, 0x01, 0x00400008 },
-       { 0x000843,   1, 0x01, 0x08000080 },
-       { 0x000818,   8, 0x01, 0x00000000 },
-       { 0x000848,  16, 0x01, 0x00000000 },
-       { 0x000738,   1, 0x01, 0x00000000 },
-       { 0x0006aa,   1, 0x01, 0x00000001 },
-       { 0x0006ab,   1, 0x01, 0x00000002 },
-       { 0x0006ac,   1, 0x01, 0x00000080 },
-       { 0x0006ad,   2, 0x01, 0x00000100 },
-       { 0x0006b1,   1, 0x01, 0x00000011 },
-       { 0x0006bb,   1, 0x01, 0x000000cf },
-       { 0x0006ce,   1, 0x01, 0x2a712488 },
-       { 0x000739,   1, 0x01, 0x4085c000 },
-       { 0x00073a,   1, 0x01, 0x00000080 },
-       { 0x000786,   1, 0x01, 0x80000100 },
-       { 0x00073c,   1, 0x01, 0x00010100 },
-       { 0x00073d,   1, 0x01, 0x02800000 },
-       { 0x000787,   1, 0x01, 0x000000cf },
-       { 0x00078c,   1, 0x01, 0x00000008 },
-       { 0x000792,   1, 0x01, 0x00000001 },
-       { 0x000794,   3, 0x01, 0x00000001 },
-       { 0x000797,   1, 0x01, 0x000000cf },
-       { 0x000836,   1, 0x01, 0x00000001 },
-       { 0x00079a,   1, 0x01, 0x00000002 },
-       { 0x000833,   1, 0x01, 0x04444480 },
-       { 0x0007a1,   1, 0x01, 0x00000001 },
-       { 0x0007a3,   3, 0x01, 0x00000001 },
-       { 0x000831,   1, 0x01, 0x00000004 },
-       { 0x000b07,   1, 0x01, 0x00000002 },
-       { 0x000b08,   2, 0x01, 0x00000100 },
-       { 0x000b0a,   1, 0x01, 0x00000001 },
-       { 0x000a04,   1, 0x01, 0x000000ff },
-       { 0x000a0b,   1, 0x01, 0x00000040 },
-       { 0x00097f,   1, 0x01, 0x00000100 },
-       { 0x000a02,   1, 0x01, 0x00000001 },
-       { 0x000809,   1, 0x01, 0x00000007 },
-       { 0x00c221,   1, 0x01, 0x00000040 },
-       { 0x00c1b0,   8, 0x01, 0x0000000f },
-       { 0x00c1b8,   1, 0x01, 0x0fac6881 },
-       { 0x00c1b9,   1, 0x01, 0x00fac688 },
-       { 0x00c401,   1, 0x01, 0x00000001 },
-       { 0x00c402,   1, 0x01, 0x00010001 },
-       { 0x00c403,   2, 0x01, 0x00000001 },
-       { 0x00c40e,   1, 0x01, 0x00000020 },
-       { 0x00c413,   4, 0x01, 0x88888888 },
-       { 0x00c423,   1, 0x01, 0x0000ff00 },
-       { 0x00c420,   1, 0x01, 0x00880101 },
-       { 0x01e100,   1, 0x01, 0x00000001 },
-       {}
-};
-
-const struct gf100_gr_pack
-gm200_grctx_pack_icmd[] = {
-       { gm200_grctx_init_icmd_0 },
-       {}
-};
-
-static const struct gf100_gr_init
 gm200_grctx_init_b197_0[] = {
        { 0x000800,   8, 0x40, 0x00000000 },
        { 0x000804,   8, 0x40, 0x00000000 },
@@ -747,7 +474,7 @@ gm200_grctx_generate_main(struct gf100_gr *gr, struct gf100_grctx *info)
 
        gm200_grctx_generate_405b60(gr);
 
-       gf100_gr_icmd(gr, grctx->icmd);
+       gf100_gr_icmd(gr, gr->fuc_bundle);
        nvkm_wr32(device, 0x404154, 0x00000800);
        gf100_gr_mthd(gr, grctx->mthd);
 
@@ -759,7 +486,6 @@ const struct gf100_grctx_func
 gm200_grctx = {
        .main  = gm200_grctx_generate_main,
        .unkn  = gk104_grctx_generate_unkn,
-       .icmd  = gm200_grctx_pack_icmd,
        .mthd  = gm200_grctx_pack_mthd,
        .bundle = gm107_grctx_generate_bundle,
        .bundle_size = 0x3000,
index 66fe517..fc8a6cd 100644 (file)
@@ -27,7 +27,6 @@ const struct gf100_grctx_func
 gm206_grctx = {
        .main  = gm200_grctx_generate_main,
        .unkn  = gk104_grctx_generate_unkn,
-       .icmd  = gm200_grctx_pack_icmd,
        .mthd  = gm200_grctx_pack_mthd,
        .bundle = gm107_grctx_generate_bundle,
        .bundle_size = 0x3000,