Lines Matching defs:dtc
292 u8 dtc;
349 struct arm_cmn_dtc *dtc;
543 u8 dtc = cmn->xps[xp_base + x].dtc;
545 if (dtc & (dtc - 1))
548 seq_printf(s, " DTC %ld |", __ffs(dtc));
1369 writel_relaxed(0, cmn->dtc[0].base + CMN_DT_PMCR);
1378 cmn->dtc[0].base + CMN_DT_PMCR);
1411 static u64 arm_cmn_read_cc(struct arm_cmn_dtc *dtc)
1413 u64 val = readq_relaxed(dtc->base + CMN_DT_PMCCNTR);
1415 writeq_relaxed(CMN_CC_INIT, dtc->base + CMN_DT_PMCCNTR);
1419 static u32 arm_cmn_read_counter(struct arm_cmn_dtc *dtc, int idx)
1423 val = readl_relaxed(dtc->base + pmevcnt);
1424 writel_relaxed(CMN_COUNTER_INIT, dtc->base + pmevcnt);
1436 writel_relaxed(CMN_COUNTER_INIT, cmn->dtc[i].base + pmevcnt);
1437 cmn->dtc[i].counters[hw->dtc_idx] = event;
1454 delta = arm_cmn_read_cc(cmn->dtc + i);
1465 new = arm_cmn_read_counter(cmn->dtc + i, hw->dtc_idx);
1522 writeq_relaxed(CMN_CC_INIT, cmn->dtc[i].base + CMN_DT_PMCCNTR);
1523 cmn->dtc[i].cc_active = true;
1553 cmn->dtc[i].cc_active = false;
1787 cmn->dtc[i].counters[hw->dtc_idx] = NULL;
1794 struct arm_cmn_dtc *dtc = &cmn->dtc[0];
1801 while (cmn->dtc[i].cycles)
1805 cmn->dtc[i].cycles = event;
1816 while (dtc->counters[dtc_idx])
1844 CMN_EVENT_WP_COMBINE(dtc->counters[tmp]))
1896 cmn->dtc[__ffs(hw->dtcs_used)].cycles = NULL;
1929 irq_set_affinity(cmn->dtc[i].irq, cpumask_of(cpu));
1969 struct arm_cmn_dtc *dtc = dev_id;
1973 u32 status = readl_relaxed(dtc->base + CMN_DT_PMOVSR);
1980 if (WARN_ON(!dtc->counters[i]))
1982 delta = (u64)arm_cmn_read_counter(dtc, i) << 16;
1983 local64_add(delta, &dtc->counters[i]->count);
1989 if (dtc->cc_active && !WARN_ON(!dtc->cycles)) {
1990 delta = arm_cmn_read_cc(dtc);
1991 local64_add(delta, &dtc->cycles->count);
1995 writel_relaxed(status, dtc->base + CMN_DT_PMOVSR_CLR);
1997 if (!dtc->irq_friend)
1999 dtc += dtc->irq_friend;
2009 irq = cmn->dtc[i].irq;
2011 if (cmn->dtc[j].irq == irq) {
2012 cmn->dtc[j].irq_friend = i - j;
2018 dev_name(cmn->dev), &cmn->dtc[i]);
2047 struct arm_cmn_dtc *dtc = cmn->dtc + idx;
2049 dtc->base = dn->pmu_base - CMN_PMU_OFFSET;
2050 dtc->irq = platform_get_irq(to_platform_device(cmn->dev), idx);
2051 if (dtc->irq < 0)
2052 return dtc->irq;
2054 writel_relaxed(CMN_DT_DTC_CTL_DT_EN, dtc->base + CMN_DT_DTC_CTL);
2055 writel_relaxed(CMN_DT_PMCR_PMU_EN | CMN_DT_PMCR_OVFL_INTR_EN, dtc->base + CMN_DT_PMCR);
2056 writeq_relaxed(0, dtc->base + CMN_DT_PMCCNTR);
2057 writel_relaxed(0x1ff, dtc->base + CMN_DT_PMOVSR_CLR);
2079 cmn->dtc = devm_kcalloc(cmn->dev, cmn->num_dtcs, sizeof(cmn->dtc[0]), GFP_KERNEL);
2080 if (!cmn->dtc)
2089 dn->dtc &= dtcs_present;
2101 if (xp->dtc == 0xf)
2102 xp->dtc = 1 << dtc_idx;
2261 xp->dtc = 0xf;
2263 xp->dtc = 1 << arm_cmn_dtc_domain(cmn, xp_region);
2518 writel_relaxed(0, cmn->dtc[0].base + CMN_DT_DTC_CTL);