tad_pmu
for (i = 0; i < tad_pmu->region_cnt; i++)
writeq_relaxed(0, tad_pmu->regions[i].base +
for (i = 0; i < tad_pmu->region_cnt; i++) {
writeq_relaxed(reg_val, tad_pmu->regions[i].base +
struct tad_pmu *tad_pmu = to_tad_pmu(event->pmu);
tad_pmu->events[idx] = NULL;
clear_bit(idx, tad_pmu->counters_map);
struct tad_pmu *tad_pmu = to_tad_pmu(event->pmu);
idx = find_first_zero_bit(tad_pmu->counters_map, TAD_MAX_COUNTERS);
set_bit(idx, tad_pmu->counters_map);
tad_pmu->events[idx] = event;
struct tad_pmu *tad_pmu = to_tad_pmu(event->pmu);
event->cpu = tad_pmu->cpu;
#define to_tad_pmu(p) (container_of(p, struct tad_pmu, pmu))
struct tad_pmu *tad_pmu = to_tad_pmu(dev_get_drvdata(dev));
return cpumap_print_to_pagebuf(true, buf, cpumask_of(tad_pmu->cpu));
struct tad_pmu *tad_pmu;
tad_pmu = devm_kzalloc(&pdev->dev, sizeof(*tad_pmu), GFP_KERNEL);
if (!tad_pmu)
platform_set_drvdata(pdev, tad_pmu);
tad_pmu->regions = regions;
tad_pmu->region_cnt = tad_cnt;
tad_pmu->pmu = (struct pmu) {
tad_pmu->pmu.attr_groups = tad_pmu_attr_groups;
tad_pmu->pmu.attr_groups = ody_tad_pmu_attr_groups;
tad_pmu->cpu = raw_smp_processor_id();
&tad_pmu->node);
ret = perf_pmu_register(&tad_pmu->pmu, name, -1);
&tad_pmu->node);
struct tad_pmu *pmu = platform_get_drvdata(pdev);
struct tad_pmu *pmu = hlist_entry_safe(node, struct tad_pmu, node);
struct tad_pmu *tad_pmu = to_tad_pmu(event->pmu);
for (i = 0, new = 0; i < tad_pmu->region_cnt; i++)
new += readq(tad_pmu->regions[i].base +
struct tad_pmu *tad_pmu = to_tad_pmu(event->pmu);
for (i = 0; i < tad_pmu->region_cnt; i++) {
writeq_relaxed(0, tad_pmu->regions[i].base +
struct tad_pmu *tad_pmu = to_tad_pmu(event->pmu);