#include "priv.h"
#include "cgrp.h"
#include "chan.h"
#include "chid.h"
#include "runl.h"
#include <core/gpuobj.h>
#include <subdev/gsp.h>
#include <subdev/mmu.h>
#include <subdev/vfn.h>
#include <engine/gr.h>
#include <nvhw/drf.h>
#include <nvrm/nvtypes.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/alloc/alloc_channel.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/class/cl2080_notification.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080ce.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080fifo.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gpu.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080internal.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/ctrl/ctrla06f/ctrla06fgpfifo.h>
#include <nvrm/535.113.01/nvidia/generated/g_kernel_channel_nvoc.h>
#include <nvrm/535.113.01/nvidia/generated/g_kernel_fifo_nvoc.h>
#include <nvrm/535.113.01/nvidia/inc/kernel/gpu/gpu_engine_type.h>
static u32
r535_chan_doorbell_handle(struct nvkm_chan *chan)
{ … }
static void
r535_chan_stop(struct nvkm_chan *chan)
{ … }
static void
r535_chan_start(struct nvkm_chan *chan)
{ … }
static void
r535_chan_ramfc_clear(struct nvkm_chan *chan)
{ … }
#define CHID_PER_USERD …
static int
r535_chan_ramfc_write(struct nvkm_chan *chan, u64 offset, u64 length, u32 devm, bool priv)
{ … }
static const struct nvkm_chan_func_ramfc
r535_chan_ramfc = …;
struct r535_chan_userd { … } *userd;
static void
r535_chan_id_put(struct nvkm_chan *chan)
{ … }
static int
r535_chan_id_get_locked(struct nvkm_chan *chan, struct nvkm_memory *muserd, u64 ouserd)
{ … }
static int
r535_chan_id_get(struct nvkm_chan *chan, struct nvkm_memory *muserd, u64 ouserd)
{ … }
static const struct nvkm_chan_func
r535_chan = …;
static const struct nvkm_cgrp_func
r535_cgrp = …;
static int
r535_engn_nonstall(struct nvkm_engn *engn)
{ … }
static const struct nvkm_engn_func
r535_ce = …;
static int
r535_gr_ctor(struct nvkm_engn *engn, struct nvkm_vctx *vctx, struct nvkm_chan *chan)
{ … }
static const struct nvkm_engn_func
r535_gr = …;
static int
r535_flcn_bind(struct nvkm_engn *engn, struct nvkm_vctx *vctx, struct nvkm_chan *chan)
{ … }
static int
r535_flcn_ctor(struct nvkm_engn *engn, struct nvkm_vctx *vctx, struct nvkm_chan *chan)
{ … }
static const struct nvkm_engn_func
r535_flcn = …;
static void
r535_runl_allow(struct nvkm_runl *runl, u32 engm)
{ … }
static void
r535_runl_block(struct nvkm_runl *runl, u32 engm)
{ … }
static const struct nvkm_runl_func
r535_runl = …;
static int
r535_fifo_2080_type(enum nvkm_subdev_type type, int inst)
{ … }
static int
r535_fifo_engn_type(RM_ENGINE_TYPE rm, enum nvkm_subdev_type *ptype)
{ … }
static int
r535_fifo_ectx_size(struct nvkm_fifo *fifo)
{ … }
static int
r535_fifo_runl_ctor(struct nvkm_fifo *fifo)
{ … }
static void
r535_fifo_dtor(struct nvkm_fifo *fifo)
{ … }
int
r535_fifo_new(const struct nvkm_fifo_func *hw, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, struct nvkm_fifo **pfifo)
{ … }