Lines Matching refs:ctr
127 nvkm_perfsrc_enable(struct nvkm_pm *pm, struct nvkm_perfctr *ctr) in nvkm_perfsrc_enable() argument
138 for (j = 0; j < 8 && ctr->source[i][j]; j++) { in nvkm_perfsrc_enable()
139 sig = nvkm_perfsig_find(pm, ctr->domain, in nvkm_perfsrc_enable()
140 ctr->signal[i], &dom); in nvkm_perfsrc_enable()
144 src = nvkm_perfsrc_find(pm, sig, ctr->source[i][j]); in nvkm_perfsrc_enable()
153 value |= ((ctr->source[i][j] >> 32) << src->shift); in nvkm_perfsrc_enable()
166 nvkm_perfsrc_disable(struct nvkm_pm *pm, struct nvkm_perfctr *ctr) in nvkm_perfsrc_disable() argument
177 for (j = 0; j < 8 && ctr->source[i][j]; j++) { in nvkm_perfsrc_disable()
178 sig = nvkm_perfsig_find(pm, ctr->domain, in nvkm_perfsrc_disable()
179 ctr->signal[i], &dom); in nvkm_perfsrc_disable()
183 src = nvkm_perfsrc_find(pm, sig, ctr->source[i][j]); in nvkm_perfsrc_disable()
222 if (dom->ctr[i]) { in nvkm_perfdom_init()
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()
276 if (dom->ctr[i]) in nvkm_perfdom_read()
277 dom->func->read(pm, dom, dom->ctr[i]); in nvkm_perfdom_read()
284 if (dom->ctr[i]) in nvkm_perfdom_read()
285 args->v0.ctr[i] = dom->ctr[i]->ctr; in nvkm_perfdom_read()
315 struct nvkm_perfctr *ctr = dom->ctr[i]; in nvkm_perfdom_dtor() local
316 if (ctr) { in nvkm_perfdom_dtor()
317 nvkm_perfsrc_disable(pm, ctr); in nvkm_perfdom_dtor()
318 if (ctr->head.next) in nvkm_perfdom_dtor()
319 list_del(&ctr->head); in nvkm_perfdom_dtor()
321 kfree(ctr); in nvkm_perfdom_dtor()
332 struct nvkm_perfctr *ctr; in nvkm_perfctr_new() local
338 ctr = *pctr = kzalloc(sizeof(*ctr), GFP_KERNEL); in nvkm_perfctr_new()
339 if (!ctr) in nvkm_perfctr_new()
342 ctr->domain = domain; in nvkm_perfctr_new()
343 ctr->logic_op = logic_op; in nvkm_perfctr_new()
344 ctr->slot = slot; in nvkm_perfctr_new()
347 ctr->signal[i] = signal[i] - dom->signal; in nvkm_perfctr_new()
349 ctr->source[i][j] = source[i][j]; in nvkm_perfctr_new()
352 list_add_tail(&ctr->head, &dom->list); in nvkm_perfctr_new()
374 struct nvkm_perfctr *ctr[4] = {}; in nvkm_perfdom_new_() local
386 for (c = 0; c < ARRAY_SIZE(args->v0.ctr); c++) { in nvkm_perfdom_new_()
390 for (s = 0; s < ARRAY_SIZE(args->v0.ctr[c].signal); s++) { in nvkm_perfdom_new_()
392 args->v0.ctr[c].signal[s], in nvkm_perfdom_new_()
394 if (args->v0.ctr[c].signal[s] && !sig[s]) in nvkm_perfdom_new_()
398 src[s][m] = args->v0.ctr[c].source[s][m]; in nvkm_perfdom_new_()
406 args->v0.ctr[c].logic_op, &ctr[c]); in nvkm_perfdom_new_()
423 for (c = 0; c < ARRAY_SIZE(ctr); c++) in nvkm_perfdom_new_()
424 dom->ctr[c] = ctr[c]; in nvkm_perfdom_new_()