Lines Matching refs:pm

34 nvkm_pm_count_perfdom(struct nvkm_pm *pm)  in nvkm_pm_count_perfdom()  argument
39 list_for_each_entry(dom, &pm->domains, head) in nvkm_pm_count_perfdom()
60 nvkm_perfdom_find(struct nvkm_pm *pm, int di) in nvkm_perfdom_find() argument
65 list_for_each_entry(dom, &pm->domains, head) { in nvkm_perfdom_find()
73 nvkm_perfsig_find(struct nvkm_pm *pm, u8 di, u8 si, struct nvkm_perfdom **pdom) in nvkm_perfsig_find() argument
78 dom = nvkm_perfdom_find(pm, di); in nvkm_perfsig_find()
102 nvkm_perfsrc_find(struct nvkm_pm *pm, struct nvkm_perfsig *sig, int si) in nvkm_perfsrc_find() argument
117 list_for_each_entry(src, &pm->sources, head) { in nvkm_perfsrc_find()
127 nvkm_perfsrc_enable(struct nvkm_pm *pm, struct nvkm_perfctr *ctr) in nvkm_perfsrc_enable() argument
129 struct nvkm_subdev *subdev = &pm->engine.subdev; in nvkm_perfsrc_enable()
139 sig = nvkm_perfsig_find(pm, ctr->domain, in nvkm_perfsrc_enable()
144 src = nvkm_perfsrc_find(pm, sig, ctr->source[i][j]); in nvkm_perfsrc_enable()
166 nvkm_perfsrc_disable(struct nvkm_pm *pm, struct nvkm_perfctr *ctr) in nvkm_perfsrc_disable() argument
168 struct nvkm_subdev *subdev = &pm->engine.subdev; in nvkm_perfsrc_disable()
178 sig = nvkm_perfsig_find(pm, ctr->domain, in nvkm_perfsrc_disable()
183 src = nvkm_perfsrc_find(pm, sig, ctr->source[i][j]); in nvkm_perfsrc_disable()
212 struct nvkm_pm *pm = dom->perfmon->pm; in nvkm_perfdom_init() local
223 dom->func->init(pm, dom, dom->ctr[i]); in nvkm_perfdom_init()
226 nvkm_perfsrc_enable(pm, dom->ctr[i]); in nvkm_perfdom_init()
231 dom->func->next(pm, dom); in nvkm_perfdom_init()
242 struct nvkm_pm *pm = dom->perfmon->pm; in nvkm_perfdom_sample() local
250 pm->sequence++; in nvkm_perfdom_sample()
253 list_for_each_entry(dom, &pm->domains, head) in nvkm_perfdom_sample()
254 dom->func->next(pm, dom); in nvkm_perfdom_sample()
266 struct nvkm_pm *pm = dom->perfmon->pm; in nvkm_perfdom_read() local
277 dom->func->read(pm, dom, dom->ctr[i]); in nvkm_perfdom_read()
311 struct nvkm_pm *pm = dom->perfmon->pm; in nvkm_perfdom_dtor() local
317 nvkm_perfsrc_disable(pm, ctr); in nvkm_perfdom_dtor()
371 struct nvkm_pm *pm = perfmon->pm; in nvkm_perfdom_new_() local
391 sig[s] = nvkm_perfsig_find(pm, args->v0.domain, in nvkm_perfdom_new_()
399 if (src[s][m] && !nvkm_perfsrc_find(pm, sig[s], in nvkm_perfdom_new_()
439 struct nvkm_pm *pm = perfmon->pm; in nvkm_perfmon_mthd_query_domain() local
452 domain_nr = nvkm_pm_count_perfdom(pm); in nvkm_perfmon_mthd_query_domain()
457 dom = nvkm_perfdom_find(pm, di); in nvkm_perfmon_mthd_query_domain()
487 struct nvkm_pm *pm = perfmon->pm; in nvkm_perfmon_mthd_query_signal() local
488 struct nvkm_device *device = pm->engine.subdev.device; in nvkm_perfmon_mthd_query_signal()
504 dom = nvkm_perfdom_find(pm, args->v0.domain); in nvkm_perfmon_mthd_query_signal()
541 struct nvkm_pm *pm = perfmon->pm; in nvkm_perfmon_mthd_query_source() local
558 sig = nvkm_perfsig_find(pm, args->v0.domain, args->v0.signal, &dom); in nvkm_perfmon_mthd_query_source()
567 src = nvkm_perfsrc_find(pm, sig, sig->source[si]); in nvkm_perfmon_mthd_query_source()
628 struct nvkm_pm *pm = perfmon->pm; in nvkm_perfmon_dtor() local
629 mutex_lock(&pm->engine.subdev.mutex); in nvkm_perfmon_dtor()
630 if (pm->perfmon == &perfmon->object) in nvkm_perfmon_dtor()
631 pm->perfmon = NULL; in nvkm_perfmon_dtor()
632 mutex_unlock(&pm->engine.subdev.mutex); in nvkm_perfmon_dtor()
644 nvkm_perfmon_new(struct nvkm_pm *pm, const struct nvkm_oclass *oclass, in nvkm_perfmon_new() argument
652 perfmon->pm = pm; in nvkm_perfmon_new()
665 struct nvkm_pm *pm = nvkm_pm(oclass->engine); in nvkm_pm_oclass_new() local
668 ret = nvkm_perfmon_new(pm, oclass, data, size, pobject); in nvkm_pm_oclass_new()
672 mutex_lock(&pm->engine.subdev.mutex); in nvkm_pm_oclass_new()
673 if (pm->perfmon == NULL) in nvkm_pm_oclass_new()
674 pm->perfmon = *pobject; in nvkm_pm_oclass_new()
675 ret = (pm->perfmon == *pobject) ? 0 : -EBUSY; in nvkm_pm_oclass_new()
676 mutex_unlock(&pm->engine.subdev.mutex); in nvkm_pm_oclass_new()
701 nvkm_perfsrc_new(struct nvkm_pm *pm, struct nvkm_perfsig *sig, in nvkm_perfsrc_new() argument
722 list_for_each_entry(src, &pm->sources, head) { in nvkm_perfsrc_new()
751 list_add_tail(&src->head, &pm->sources); in nvkm_perfsrc_new()
764 nvkm_perfdom_new(struct nvkm_pm *pm, const char *name, u32 mask, in nvkm_perfdom_new() argument
794 list_add_tail(&dom->head, &pm->domains); in nvkm_perfdom_new()
805 ret = nvkm_perfsrc_new(pm, sig, ssig->source); in nvkm_perfdom_new()
823 struct nvkm_pm *pm = nvkm_pm(engine); in nvkm_pm_fini() local
824 if (pm->func->fini) in nvkm_pm_fini()
825 pm->func->fini(pm); in nvkm_pm_fini()
832 struct nvkm_pm *pm = nvkm_pm(engine); in nvkm_pm_dtor() local
836 list_for_each_entry_safe(dom, next_dom, &pm->domains, head) { in nvkm_pm_dtor()
841 list_for_each_entry_safe(src, next_src, &pm->sources, head) { in nvkm_pm_dtor()
847 return pm; in nvkm_pm_dtor()
859 int index, struct nvkm_pm *pm) in nvkm_pm_ctor() argument
861 pm->func = func; in nvkm_pm_ctor()
862 INIT_LIST_HEAD(&pm->domains); in nvkm_pm_ctor()
863 INIT_LIST_HEAD(&pm->sources); in nvkm_pm_ctor()
864 return nvkm_engine_ctor(&nvkm_pm, device, index, 0, true, &pm->engine); in nvkm_pm_ctor()