#define CP_FLAG_CLEAR …
#define CP_FLAG_SET …
#define CP_FLAG_SWAP_DIRECTION …
#define CP_FLAG_SWAP_DIRECTION_LOAD …
#define CP_FLAG_SWAP_DIRECTION_SAVE …
#define CP_FLAG_UNK01 …
#define CP_FLAG_UNK01_CLEAR …
#define CP_FLAG_UNK01_SET …
#define CP_FLAG_UNK03 …
#define CP_FLAG_UNK03_CLEAR …
#define CP_FLAG_UNK03_SET …
#define CP_FLAG_USER_SAVE …
#define CP_FLAG_USER_SAVE_NOT_PENDING …
#define CP_FLAG_USER_SAVE_PENDING …
#define CP_FLAG_USER_LOAD …
#define CP_FLAG_USER_LOAD_NOT_PENDING …
#define CP_FLAG_USER_LOAD_PENDING …
#define CP_FLAG_UNK0B …
#define CP_FLAG_UNK0B_CLEAR …
#define CP_FLAG_UNK0B_SET …
#define CP_FLAG_XFER_SWITCH …
#define CP_FLAG_XFER_SWITCH_DISABLE …
#define CP_FLAG_XFER_SWITCH_ENABLE …
#define CP_FLAG_STATE …
#define CP_FLAG_STATE_STOPPED …
#define CP_FLAG_STATE_RUNNING …
#define CP_FLAG_UNK1D …
#define CP_FLAG_UNK1D_CLEAR …
#define CP_FLAG_UNK1D_SET …
#define CP_FLAG_UNK20 …
#define CP_FLAG_UNK20_CLEAR …
#define CP_FLAG_UNK20_SET …
#define CP_FLAG_STATUS …
#define CP_FLAG_STATUS_BUSY …
#define CP_FLAG_STATUS_IDLE …
#define CP_FLAG_AUTO_SAVE …
#define CP_FLAG_AUTO_SAVE_NOT_PENDING …
#define CP_FLAG_AUTO_SAVE_PENDING …
#define CP_FLAG_AUTO_LOAD …
#define CP_FLAG_AUTO_LOAD_NOT_PENDING …
#define CP_FLAG_AUTO_LOAD_PENDING …
#define CP_FLAG_NEWCTX …
#define CP_FLAG_NEWCTX_BUSY …
#define CP_FLAG_NEWCTX_DONE …
#define CP_FLAG_XFER …
#define CP_FLAG_XFER_IDLE …
#define CP_FLAG_XFER_BUSY …
#define CP_FLAG_ALWAYS …
#define CP_FLAG_ALWAYS_FALSE …
#define CP_FLAG_ALWAYS_TRUE …
#define CP_FLAG_INTR …
#define CP_FLAG_INTR_NOT_PENDING …
#define CP_FLAG_INTR_PENDING …
#define CP_CTX …
#define CP_CTX_COUNT …
#define CP_CTX_COUNT_SHIFT …
#define CP_CTX_REG …
#define CP_LOAD_SR …
#define CP_LOAD_SR_VALUE …
#define CP_BRA …
#define CP_BRA_IP …
#define CP_BRA_IP_SHIFT …
#define CP_BRA_IF_CLEAR …
#define CP_BRA_FLAG …
#define CP_WAIT …
#define CP_WAIT_SET …
#define CP_WAIT_FLAG …
#define CP_SET …
#define CP_SET_1 …
#define CP_SET_FLAG …
#define CP_NEWCTX …
#define CP_NEXT_TO_SWAP …
#define CP_SET_CONTEXT_POINTER …
#define CP_SET_XFER_POINTER …
#define CP_ENABLE …
#define CP_END …
#define CP_NEXT_TO_CURRENT …
#define CP_DISABLE1 …
#define CP_DISABLE2 …
#define CP_XFER_1 …
#define CP_XFER_2 …
#define CP_SEEK_1 …
#define CP_SEEK_2 …
#include "ctxnv40.h"
#include "nv50.h"
#include <subdev/fb.h>
#define IS_NVA3F(x) …
#define IS_NVAAF(x) …
enum cp_label { … };
static void nv50_gr_construct_mmio(struct nvkm_grctx *ctx);
static void nv50_gr_construct_xfer1(struct nvkm_grctx *ctx);
static void nv50_gr_construct_xfer2(struct nvkm_grctx *ctx);
static int
nv50_grctx_generate(struct nvkm_grctx *ctx)
{ … }
void
nv50_grctx_fill(struct nvkm_device *device, struct nvkm_gpuobj *mem)
{ … }
int
nv50_grctx_init(struct nvkm_device *device, u32 *size)
{ … }
static void
nv50_gr_construct_mmio_ddata(struct nvkm_grctx *ctx);
static void
nv50_gr_construct_mmio(struct nvkm_grctx *ctx)
{ … }
static void
dd_emit(struct nvkm_grctx *ctx, int num, u32 val) { … }
static void
nv50_gr_construct_mmio_ddata(struct nvkm_grctx *ctx)
{ … }
static void
xf_emit(struct nvkm_grctx *ctx, int num, u32 val) { … }
static void nv50_gr_construct_gene_dispatch(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_m2mf(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_ccache(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_unk10xx(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_unk14xx(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_zcull(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_clipid(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_unk24xx(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_vfetch(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_eng2d(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_csched(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_unk1cxx(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_strmout(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_unk34xx(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_ropm1(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_ropm2(struct nvkm_grctx *ctx);
static void nv50_gr_construct_gene_ropc(struct nvkm_grctx *ctx);
static void nv50_gr_construct_xfer_tp(struct nvkm_grctx *ctx);
static void
nv50_gr_construct_xfer1(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_dispatch(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_m2mf(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_ccache(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_unk10xx(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_unk34xx(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_unk14xx(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_zcull(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_clipid(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_unk24xx(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_vfetch(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_eng2d(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_csched(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_unk1cxx(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_strmout(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_ropm1(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_ropm2(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_gene_ropc(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_xfer_unk84xx(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_xfer_tprop(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_xfer_tex(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_xfer_unk8cxx(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_xfer_tp(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_xfer_mpc(struct nvkm_grctx *ctx)
{ … }
static void
nv50_gr_construct_xfer2(struct nvkm_grctx *ctx)
{ … }