Lines Matching refs:arc_pmu
22 struct arc_pmu { struct
81 static struct arc_pmu *arc_pmu; variable
158 hwc->sample_period = arc_pmu->max_period; in arc_pmu_event_init()
179 if (arc_pmu->ev_hw_idx[event->attr.config] < 0) in arc_pmu_event_init()
181 hwc->config |= arc_pmu->ev_hw_idx[event->attr.config]; in arc_pmu_event_init()
191 hwc->config |= arc_pmu->ev_hw_idx[ret]; in arc_pmu_event_init()
239 if (left > arc_pmu->max_period) in arc_pmu_event_set_period()
240 left = arc_pmu->max_period; in arc_pmu_event_set_period()
242 value = arc_pmu->max_period - left; in arc_pmu_event_set_period()
340 if (idx == arc_pmu->n_counters) in arc_pmu_add()
352 write_aux_reg(ARC_REG_PCT_INT_CNTL, (u32)arc_pmu->max_period); in arc_pmu_add()
354 (arc_pmu->max_period >> 32)); in arc_pmu_add()
380 arc_pmu_disable(&arc_pmu->pmu); in arc_pmu_intr()
421 arc_pmu_enable(&arc_pmu->pmu); in arc_pmu_intr()
471 arc_pmu = devm_kzalloc(&pdev->dev, sizeof(struct arc_pmu), GFP_KERNEL); in arc_pmu_device_probe()
472 if (!arc_pmu) in arc_pmu_device_probe()
477 arc_pmu->n_counters = pct_bcr.c; in arc_pmu_device_probe()
480 arc_pmu->max_period = (1ULL << counter_size) / 2 - 1ULL; in arc_pmu_device_probe()
483 arc_pmu->n_counters, counter_size, cc_bcr.c, in arc_pmu_device_probe()
488 arc_pmu->ev_hw_idx[i] = -1; in arc_pmu_device_probe()
503 arc_pmu->ev_hw_idx[i] = j; in arc_pmu_device_probe()
508 arc_pmu->pmu = (struct pmu) { in arc_pmu_device_probe()
527 arc_pmu->irq = irq; in arc_pmu_device_probe()
536 arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT; in arc_pmu_device_probe()
538 return perf_pmu_register(&arc_pmu->pmu, pdev->name, PERF_TYPE_RAW); in arc_pmu_device_probe()