Lines Matching refs:ctr

129 nvkm_perfsrc_enable(struct nvkm_pm *pm, struct nvkm_perfctr *ctr)
140 for (j = 0; j < 8 && ctr->source[i][j]; j++) {
141 sig = nvkm_perfsig_find(pm, ctr->domain,
142 ctr->signal[i], &dom);
146 src = nvkm_perfsrc_find(pm, sig, ctr->source[i][j]);
155 value |= ((ctr->source[i][j] >> 32) << src->shift);
168 nvkm_perfsrc_disable(struct nvkm_pm *pm, struct nvkm_perfctr *ctr)
179 for (j = 0; j < 8 && ctr->source[i][j]; j++) {
180 sig = nvkm_perfsig_find(pm, ctr->domain,
181 ctr->signal[i], &dom);
185 src = nvkm_perfsrc_find(pm, sig, ctr->source[i][j]);
224 if (dom->ctr[i]) {
225 dom->func->init(pm, dom, dom->ctr[i]);
228 nvkm_perfsrc_enable(pm, dom->ctr[i]);
278 if (dom->ctr[i])
279 dom->func->read(pm, dom, dom->ctr[i]);
286 if (dom->ctr[i])
287 args->v0.ctr[i] = dom->ctr[i]->ctr;
317 struct nvkm_perfctr *ctr = dom->ctr[i];
318 if (ctr) {
319 nvkm_perfsrc_disable(pm, ctr);
320 if (ctr->head.next)
321 list_del(&ctr->head);
323 kfree(ctr);
334 struct nvkm_perfctr *ctr;
340 ctr = *pctr = kzalloc(sizeof(*ctr), GFP_KERNEL);
341 if (!ctr)
344 ctr->domain = domain;
345 ctr->logic_op = logic_op;
346 ctr->slot = slot;
349 ctr->signal[i] = signal[i] - dom->signal;
351 ctr->source[i][j] = source[i][j];
354 list_add_tail(&ctr->head, &dom->list);
376 struct nvkm_perfctr *ctr[4] = {};
388 for (c = 0; c < ARRAY_SIZE(args->v0.ctr); c++) {
392 for (s = 0; s < ARRAY_SIZE(args->v0.ctr[c].signal); s++) {
394 args->v0.ctr[c].signal[s],
396 if (args->v0.ctr[c].signal[s] && !sig[s])
400 src[s][m] = args->v0.ctr[c].source[s][m];
408 args->v0.ctr[c].logic_op, &ctr[c]);
425 for (c = 0; c < ARRAY_SIZE(ctr); c++)
426 dom->ctr[c] = ctr[c];