#define gk20a_pmu(p) …
#include "priv.h"
#include <subdev/clk.h>
#include <subdev/timer.h>
#include <subdev/volt.h>
#define BUSY_SLOT …
#define CLK_SLOT …
struct gk20a_pmu_dvfs_data { … };
struct gk20a_pmu { … };
struct gk20a_pmu_dvfs_dev_status { … };
static int
gk20a_pmu_dvfs_target(struct gk20a_pmu *pmu, int *state)
{ … }
static void
gk20a_pmu_dvfs_get_cur_state(struct gk20a_pmu *pmu, int *state)
{ … }
static int
gk20a_pmu_dvfs_get_target_state(struct gk20a_pmu *pmu,
int *state, int load)
{ … }
static void
gk20a_pmu_dvfs_get_dev_status(struct gk20a_pmu *pmu,
struct gk20a_pmu_dvfs_dev_status *status)
{ … }
static void
gk20a_pmu_dvfs_reset_dev_status(struct gk20a_pmu *pmu)
{ … }
static void
gk20a_pmu_dvfs_work(struct nvkm_alarm *alarm)
{ … }
static void
gk20a_pmu_fini(struct nvkm_pmu *pmu)
{ … }
static int
gk20a_pmu_init(struct nvkm_pmu *pmu)
{ … }
static struct gk20a_pmu_dvfs_data
gk20a_dvfs_data= …;
static const struct nvkm_pmu_func
gk20a_pmu = …;
static const struct nvkm_pmu_fwif
gk20a_pmu_fwif[] = …;
int
gk20a_pmu_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_pmu **ppmu)
{ … }