#include "priv.h"
#include <subdev/gsp.h>
#include <nvhw/drf.h>
#include <nvrm/nvtypes.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/class/cl84a0.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080internal.h>
#include <nvrm/535.113.01/common/sdk/nvidia/inc/nvos.h>
#include <nvrm/535.113.01/nvidia/generated/g_fbsr_nvoc.h>
#include <nvrm/535.113.01/nvidia/generated/g_rpc-structures.h>
#include <nvrm/535.113.01/nvidia/kernel/inc/vgpu/rpc_global_enums.h>
struct fbsr_item { … };
struct fbsr { … };
static int
fbsr_memlist(struct nvkm_gsp_device *device, u32 handle, enum nvkm_memory_target aper,
u64 phys, u64 size, struct sg_table *sgt, struct nvkm_gsp_object *object)
{ … }
static int
fbsr_send(struct fbsr *fbsr, struct fbsr_item *item)
{ … }
static int
fbsr_init(struct fbsr *fbsr, struct sg_table *sgt, u64 items_size)
{ … }
static bool
fbsr_vram(struct fbsr *fbsr, const char *type, u64 addr, u64 size)
{ … }
static bool
fbsr_inst(struct fbsr *fbsr, const char *type, struct nvkm_memory *memory)
{ … }
static void
r535_instmem_resume(struct nvkm_instmem *imem)
{ … }
static int
r535_instmem_suspend(struct nvkm_instmem *imem)
{ … }
static void *
r535_instmem_dtor(struct nvkm_instmem *imem)
{ … }
int
r535_instmem_new(const struct nvkm_instmem_func *hw,
struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_instmem **pinstmem)
{ … }