#include "priv.h"
#include <core/client.h>
#include <core/option.h>
#include <nvif/class.h>
#include <nvif/if0002.h>
#include <nvif/if0003.h>
#include <nvif/ioctl.h>
#include <nvif/unpack.h>
static u8
nvkm_pm_count_perfdom(struct nvkm_pm *pm)
{ … }
static u16
nvkm_perfdom_count_perfsig(struct nvkm_perfdom *dom)
{ … }
static struct nvkm_perfdom *
nvkm_perfdom_find(struct nvkm_pm *pm, int di)
{ … }
static struct nvkm_perfsig *
nvkm_perfsig_find(struct nvkm_pm *pm, u8 di, u8 si, struct nvkm_perfdom **pdom)
{ … }
static u8
nvkm_perfsig_count_perfsrc(struct nvkm_perfsig *sig)
{ … }
static struct nvkm_perfsrc *
nvkm_perfsrc_find(struct nvkm_pm *pm, struct nvkm_perfsig *sig, int si)
{ … }
static int
nvkm_perfsrc_enable(struct nvkm_pm *pm, struct nvkm_perfctr *ctr)
{ … }
static int
nvkm_perfsrc_disable(struct nvkm_pm *pm, struct nvkm_perfctr *ctr)
{ … }
static int
nvkm_perfdom_init(struct nvkm_perfdom *dom, void *data, u32 size)
{ … }
static int
nvkm_perfdom_sample(struct nvkm_perfdom *dom, void *data, u32 size)
{ … }
static int
nvkm_perfdom_read(struct nvkm_perfdom *dom, void *data, u32 size)
{ … }
static int
nvkm_perfdom_mthd(struct nvkm_object *object, u32 mthd, void *data, u32 size)
{ … }
static void *
nvkm_perfdom_dtor(struct nvkm_object *object)
{ … }
static int
nvkm_perfctr_new(struct nvkm_perfdom *dom, int slot, u8 domain,
struct nvkm_perfsig *signal[4], u64 source[4][8],
u16 logic_op, struct nvkm_perfctr **pctr)
{ … }
static const struct nvkm_object_func
nvkm_perfdom = …;
static int
nvkm_perfdom_new_(struct nvkm_perfmon *perfmon,
const struct nvkm_oclass *oclass, void *data, u32 size,
struct nvkm_object **pobject)
{ … }
static int
nvkm_perfmon_mthd_query_domain(struct nvkm_perfmon *perfmon,
void *data, u32 size)
{ … }
static int
nvkm_perfmon_mthd_query_signal(struct nvkm_perfmon *perfmon,
void *data, u32 size)
{ … }
static int
nvkm_perfmon_mthd_query_source(struct nvkm_perfmon *perfmon,
void *data, u32 size)
{ … }
static int
nvkm_perfmon_mthd(struct nvkm_object *object, u32 mthd, void *data, u32 size)
{ … }
static int
nvkm_perfmon_child_new(const struct nvkm_oclass *oclass, void *data, u32 size,
struct nvkm_object **pobject)
{ … }
static int
nvkm_perfmon_child_get(struct nvkm_object *object, int index,
struct nvkm_oclass *oclass)
{ … }
static void *
nvkm_perfmon_dtor(struct nvkm_object *object)
{ … }
static const struct nvkm_object_func
nvkm_perfmon = …;
static int
nvkm_perfmon_new(struct nvkm_pm *pm, const struct nvkm_oclass *oclass,
void *data, u32 size, struct nvkm_object **pobject)
{ … }
static int
nvkm_pm_oclass_new(struct nvkm_device *device, const struct nvkm_oclass *oclass,
void *data, u32 size, struct nvkm_object **pobject)
{ … }
static const struct nvkm_device_oclass
nvkm_pm_oclass = …;
static int
nvkm_pm_oclass_get(struct nvkm_oclass *oclass, int index,
const struct nvkm_device_oclass **class)
{ … }
static int
nvkm_perfsrc_new(struct nvkm_pm *pm, struct nvkm_perfsig *sig,
const struct nvkm_specsrc *spec)
{ … }
int
nvkm_perfdom_new(struct nvkm_pm *pm, const char *name, u32 mask,
u32 base, u32 size_unit, u32 size_domain,
const struct nvkm_specdom *spec)
{ … }
static int
nvkm_pm_fini(struct nvkm_engine *engine, bool suspend)
{ … }
static void *
nvkm_pm_dtor(struct nvkm_engine *engine)
{ … }
static const struct nvkm_engine_func
nvkm_pm = …;
int
nvkm_pm_ctor(const struct nvkm_pm_func *func, struct nvkm_device *device,
enum nvkm_subdev_type type, int inst, struct nvkm_pm *pm)
{ … }