Lines Matching refs:pmu
52 gk20a_pmu_dvfs_target(struct gk20a_pmu *pmu, int *state) in gk20a_pmu_dvfs_target() argument
54 struct nvkm_clk *clk = pmu->base.subdev.device->clk; in gk20a_pmu_dvfs_target()
60 gk20a_pmu_dvfs_get_cur_state(struct gk20a_pmu *pmu, int *state) in gk20a_pmu_dvfs_get_cur_state() argument
62 struct nvkm_clk *clk = pmu->base.subdev.device->clk; in gk20a_pmu_dvfs_get_cur_state()
69 gk20a_pmu_dvfs_get_target_state(struct gk20a_pmu *pmu, in gk20a_pmu_dvfs_get_target_state() argument
72 struct gk20a_pmu_dvfs_data *data = pmu->data; in gk20a_pmu_dvfs_get_target_state()
73 struct nvkm_clk *clk = pmu->base.subdev.device->clk; in gk20a_pmu_dvfs_get_target_state()
88 nvkm_trace(&pmu->base.subdev, "cur level = %d, new level = %d\n", in gk20a_pmu_dvfs_get_target_state()
100 gk20a_pmu_dvfs_get_dev_status(struct gk20a_pmu *pmu, in gk20a_pmu_dvfs_get_dev_status() argument
103 struct nvkm_device *device = pmu->base.subdev.device; in gk20a_pmu_dvfs_get_dev_status()
110 gk20a_pmu_dvfs_reset_dev_status(struct gk20a_pmu *pmu) in gk20a_pmu_dvfs_reset_dev_status() argument
112 struct nvkm_device *device = pmu->base.subdev.device; in gk20a_pmu_dvfs_reset_dev_status()
120 struct gk20a_pmu *pmu = in gk20a_pmu_dvfs_work() local
122 struct gk20a_pmu_dvfs_data *data = pmu->data; in gk20a_pmu_dvfs_work()
124 struct nvkm_subdev *subdev = &pmu->base.subdev; in gk20a_pmu_dvfs_work()
139 ret = gk20a_pmu_dvfs_get_dev_status(pmu, &status); in gk20a_pmu_dvfs_work()
153 ret = gk20a_pmu_dvfs_get_cur_state(pmu, &state); in gk20a_pmu_dvfs_work()
159 if (gk20a_pmu_dvfs_get_target_state(pmu, &state, data->avg_load)) { in gk20a_pmu_dvfs_work()
161 gk20a_pmu_dvfs_target(pmu, &state); in gk20a_pmu_dvfs_work()
165 gk20a_pmu_dvfs_reset_dev_status(pmu); in gk20a_pmu_dvfs_work()
172 struct gk20a_pmu *pmu = gk20a_pmu(subdev); in gk20a_pmu_fini() local
173 nvkm_timer_alarm_cancel(subdev->device->timer, &pmu->alarm); in gk20a_pmu_fini()
186 struct gk20a_pmu *pmu = gk20a_pmu(subdev); in gk20a_pmu_init() local
187 struct nvkm_device *device = pmu->base.subdev.device; in gk20a_pmu_init()
194 nvkm_timer_alarm(device->timer, 2000000000, &pmu->alarm); in gk20a_pmu_init()
216 struct gk20a_pmu *pmu; in gk20a_pmu_new() local
218 if (!(pmu = kzalloc(sizeof(*pmu), GFP_KERNEL))) in gk20a_pmu_new()
220 pmu->base.func = &func; in gk20a_pmu_new()
221 *ppmu = &pmu->base; in gk20a_pmu_new()
223 nvkm_subdev_ctor(&gk20a_pmu, device, index, 0, &pmu->base.subdev); in gk20a_pmu_new()
224 pmu->data = &gk20a_dvfs_data; in gk20a_pmu_new()
225 nvkm_alarm_init(&pmu->alarm, gk20a_pmu_dvfs_work); in gk20a_pmu_new()