Lines Matching refs:gpc
773 gf100_gr_trap_gpc_rop(struct gf100_gr_priv *priv, int gpc) in gf100_gr_trap_gpc_rop() argument
778 trap[0] = nv_rd32(priv, GPC_UNIT(gpc, 0x0420)); in gf100_gr_trap_gpc_rop()
779 trap[1] = nv_rd32(priv, GPC_UNIT(gpc, 0x0434)); in gf100_gr_trap_gpc_rop()
780 trap[2] = nv_rd32(priv, GPC_UNIT(gpc, 0x0438)); in gf100_gr_trap_gpc_rop()
781 trap[3] = nv_rd32(priv, GPC_UNIT(gpc, 0x043c)); in gf100_gr_trap_gpc_rop()
783 nv_error(priv, "GPC%d/PROP trap:", gpc); in gf100_gr_trap_gpc_rop()
795 nv_wr32(priv, GPC_UNIT(gpc, 0x0420), 0xc0000000); in gf100_gr_trap_gpc_rop()
838 gf100_gr_trap_mp(struct gf100_gr_priv *priv, int gpc, int tpc) in gf100_gr_trap_mp() argument
840 u32 werr = nv_rd32(priv, TPC_UNIT(gpc, tpc, 0x648)); in gf100_gr_trap_mp()
841 u32 gerr = nv_rd32(priv, TPC_UNIT(gpc, tpc, 0x650)); in gf100_gr_trap_mp()
843 nv_error(priv, "GPC%i/TPC%i/MP trap:", gpc, tpc); in gf100_gr_trap_mp()
851 nv_wr32(priv, TPC_UNIT(gpc, tpc, 0x648), 0x00000000); in gf100_gr_trap_mp()
852 nv_wr32(priv, TPC_UNIT(gpc, tpc, 0x650), gerr); in gf100_gr_trap_mp()
856 gf100_gr_trap_tpc(struct gf100_gr_priv *priv, int gpc, int tpc) in gf100_gr_trap_tpc() argument
858 u32 stat = nv_rd32(priv, TPC_UNIT(gpc, tpc, 0x0508)); in gf100_gr_trap_tpc()
861 u32 trap = nv_rd32(priv, TPC_UNIT(gpc, tpc, 0x0224)); in gf100_gr_trap_tpc()
862 nv_error(priv, "GPC%d/TPC%d/TEX: 0x%08x\n", gpc, tpc, trap); in gf100_gr_trap_tpc()
863 nv_wr32(priv, TPC_UNIT(gpc, tpc, 0x0224), 0xc0000000); in gf100_gr_trap_tpc()
868 gf100_gr_trap_mp(priv, gpc, tpc); in gf100_gr_trap_tpc()
873 u32 trap = nv_rd32(priv, TPC_UNIT(gpc, tpc, 0x0084)); in gf100_gr_trap_tpc()
874 nv_error(priv, "GPC%d/TPC%d/POLY: 0x%08x\n", gpc, tpc, trap); in gf100_gr_trap_tpc()
875 nv_wr32(priv, TPC_UNIT(gpc, tpc, 0x0084), 0xc0000000); in gf100_gr_trap_tpc()
880 u32 trap = nv_rd32(priv, TPC_UNIT(gpc, tpc, 0x048c)); in gf100_gr_trap_tpc()
881 nv_error(priv, "GPC%d/TPC%d/L1C: 0x%08x\n", gpc, tpc, trap); in gf100_gr_trap_tpc()
882 nv_wr32(priv, TPC_UNIT(gpc, tpc, 0x048c), 0xc0000000); in gf100_gr_trap_tpc()
887 nv_error(priv, "GPC%d/TPC%d/0x%08x: unknown\n", gpc, tpc, stat); in gf100_gr_trap_tpc()
892 gf100_gr_trap_gpc(struct gf100_gr_priv *priv, int gpc) in gf100_gr_trap_gpc() argument
894 u32 stat = nv_rd32(priv, GPC_UNIT(gpc, 0x2c90)); in gf100_gr_trap_gpc()
898 gf100_gr_trap_gpc_rop(priv, gpc); in gf100_gr_trap_gpc()
903 u32 trap = nv_rd32(priv, GPC_UNIT(gpc, 0x0900)); in gf100_gr_trap_gpc()
904 nv_error(priv, "GPC%d/ZCULL: 0x%08x\n", gpc, trap); in gf100_gr_trap_gpc()
905 nv_wr32(priv, GPC_UNIT(gpc, 0x0900), 0xc0000000); in gf100_gr_trap_gpc()
910 u32 trap = nv_rd32(priv, GPC_UNIT(gpc, 0x1028)); in gf100_gr_trap_gpc()
911 nv_error(priv, "GPC%d/CCACHE: 0x%08x\n", gpc, trap); in gf100_gr_trap_gpc()
912 nv_wr32(priv, GPC_UNIT(gpc, 0x1028), 0xc0000000); in gf100_gr_trap_gpc()
917 u32 trap = nv_rd32(priv, GPC_UNIT(gpc, 0x0824)); in gf100_gr_trap_gpc()
918 nv_error(priv, "GPC%d/ESETUP: 0x%08x\n", gpc, trap); in gf100_gr_trap_gpc()
919 nv_wr32(priv, GPC_UNIT(gpc, 0x0824), 0xc0000000); in gf100_gr_trap_gpc()
923 for (tpc = 0; tpc < priv->tpc_nr[gpc]; tpc++) { in gf100_gr_trap_gpc()
926 gf100_gr_trap_tpc(priv, gpc, tpc); in gf100_gr_trap_gpc()
927 nv_wr32(priv, GPC_UNIT(gpc, 0x2c90), mask); in gf100_gr_trap_gpc()
933 nv_error(priv, "GPC%d/0x%08x: unknown\n", gpc, stat); in gf100_gr_trap_gpc()
941 int rop, gpc, i; in gf100_gr_trap_intr() local
1011 for (gpc = 0; stat && gpc < priv->gpc_nr; gpc++) { in gf100_gr_trap_intr()
1012 u32 mask = 0x00000001 << gpc; in gf100_gr_trap_intr()
1014 gf100_gr_trap_gpc(priv, gpc); in gf100_gr_trap_intr()
1059 u32 gpc; in gf100_gr_ctxctl_debug() local
1062 for (gpc = 0; gpc < gpcnr; gpc++) in gf100_gr_ctxctl_debug()
1063 gf100_gr_ctxctl_debug_unit(priv, 0x502000 + (gpc * 0x8000)); in gf100_gr_ctxctl_debug()
1386 gf100_gr_init_csdata(priv, cclass->gpc, 0x41a000, 0x000, 0x418000); in gf100_gr_init_ctxctl()
1419 int gpc, tpc, rop; in gf100_gr_init() local
1438 for (i = 0, gpc = -1; i < priv->tpc_total; i++) { in gf100_gr_init()
1440 gpc = (gpc + 1) % priv->gpc_nr; in gf100_gr_init()
1441 } while (!tpcnr[gpc]); in gf100_gr_init()
1442 tpc = priv->tpc_nr[gpc] - tpcnr[gpc]--; in gf100_gr_init()
1452 for (gpc = 0; gpc < priv->gpc_nr; gpc++) { in gf100_gr_init()
1453 nv_wr32(priv, GPC_UNIT(gpc, 0x0914), in gf100_gr_init()
1454 priv->magic_not_rop_nr << 8 | priv->tpc_nr[gpc]); in gf100_gr_init()
1455 nv_wr32(priv, GPC_UNIT(gpc, 0x0910), 0x00040000 | in gf100_gr_init()
1457 nv_wr32(priv, GPC_UNIT(gpc, 0x0918), magicgpc918); in gf100_gr_init()
1484 for (gpc = 0; gpc < priv->gpc_nr; gpc++) { in gf100_gr_init()
1485 nv_wr32(priv, GPC_UNIT(gpc, 0x0420), 0xc0000000); in gf100_gr_init()
1486 nv_wr32(priv, GPC_UNIT(gpc, 0x0900), 0xc0000000); in gf100_gr_init()
1487 nv_wr32(priv, GPC_UNIT(gpc, 0x1028), 0xc0000000); in gf100_gr_init()
1488 nv_wr32(priv, GPC_UNIT(gpc, 0x0824), 0xc0000000); in gf100_gr_init()
1489 for (tpc = 0; tpc < priv->tpc_nr[gpc]; tpc++) { in gf100_gr_init()
1490 nv_wr32(priv, TPC_UNIT(gpc, tpc, 0x508), 0xffffffff); in gf100_gr_init()
1491 nv_wr32(priv, TPC_UNIT(gpc, tpc, 0x50c), 0xffffffff); in gf100_gr_init()
1492 nv_wr32(priv, TPC_UNIT(gpc, tpc, 0x224), 0xc0000000); in gf100_gr_init()
1493 nv_wr32(priv, TPC_UNIT(gpc, tpc, 0x48c), 0xc0000000); in gf100_gr_init()
1494 nv_wr32(priv, TPC_UNIT(gpc, tpc, 0x084), 0xc0000000); in gf100_gr_init()
1495 nv_wr32(priv, TPC_UNIT(gpc, tpc, 0x644), 0x001ffffe); in gf100_gr_init()
1496 nv_wr32(priv, TPC_UNIT(gpc, tpc, 0x64c), 0x0000000f); in gf100_gr_init()
1498 nv_wr32(priv, GPC_UNIT(gpc, 0x2c90), 0xffffffff); in gf100_gr_init()
1499 nv_wr32(priv, GPC_UNIT(gpc, 0x2c94), 0xffffffff); in gf100_gr_init()