Lines Matching refs:dtm
264 int dtm; member
1234 struct arm_cmn_dtm *dtm = NULL; in arm_cmn_read_dtm() local
1241 if (dtm != &cmn->dtms[dn->dtm]) { in arm_cmn_read_dtm()
1242 dtm = &cmn->dtms[dn->dtm] + hw->dtm_offset; in arm_cmn_read_dtm()
1243 reg = readq_relaxed(dtm->base + offset); in arm_cmn_read_dtm()
1436 int wp_idx, dtm = dn->dtm, sel = hw->filter_sel; in arm_cmn_val_add_event() local
1438 val->dtm_count[dtm]++; in arm_cmn_val_add_event()
1441 val->occupid[dtm][sel] = CMN_EVENT_OCCUPID(event) + 1; in arm_cmn_val_add_event()
1447 val->wp[dtm][wp_idx] = CMN_EVENT_WP_COMBINE(event) + 1; in arm_cmn_val_add_event()
1484 int wp_idx, wp_cmb, dtm = dn->dtm, sel = hw->filter_sel; in arm_cmn_validate_group() local
1486 if (val->dtm_count[dtm] == CMN_DTM_NUM_COUNTERS) in arm_cmn_validate_group()
1489 if (sel > SEL_NONE && val->occupid[dtm][sel] && in arm_cmn_validate_group()
1490 val->occupid[dtm][sel] != CMN_EVENT_OCCUPID(event) + 1) in arm_cmn_validate_group()
1497 if (val->wp[dtm][wp_idx]) in arm_cmn_validate_group()
1500 wp_cmb = val->wp[dtm][wp_idx ^ 1]; in arm_cmn_validate_group()
1603 struct arm_cmn_dtm *dtm = &cmn->dtms[hw->dn[i].dtm] + hw->dtm_offset; in arm_cmn_event_clear() local
1607 dtm->wp_event[arm_cmn_wp_idx(event)] = -1; in arm_cmn_event_clear()
1612 dtm->pmu_config_low &= ~CMN__PMEVCNT_PAIRED(dtm_idx); in arm_cmn_event_clear()
1613 writel_relaxed(dtm->pmu_config_low, dtm->base + CMN_DTM_PMU_CONFIG); in arm_cmn_event_clear()
1655 struct arm_cmn_dtm *dtm = &cmn->dtms[dn->dtm] + hw->dtm_offset; in arm_cmn_event_add() local
1660 while (dtm->pmu_config_low & CMN__PMEVCNT_PAIRED(dtm_idx)) in arm_cmn_event_add()
1670 if (dtm->wp_event[wp_idx] >= 0) in arm_cmn_event_add()
1673 tmp = dtm->wp_event[wp_idx ^ 1]; in arm_cmn_event_add()
1679 dtm->wp_event[wp_idx] = dtc_idx; in arm_cmn_event_add()
1680 writel_relaxed(cfg, dtm->base + CMN_DTM_WPn_CONFIG(wp_idx)); in arm_cmn_event_add()
1696 dtm->input_sel[dtm_idx] = input_sel; in arm_cmn_event_add()
1698 dtm->pmu_config_low &= ~(CMN__PMEVCNT0_GLOBAL_NUM << shift); in arm_cmn_event_add()
1699 dtm->pmu_config_low |= FIELD_PREP(CMN__PMEVCNT0_GLOBAL_NUM, dtc_idx) << shift; in arm_cmn_event_add()
1700 dtm->pmu_config_low |= CMN__PMEVCNT_PAIRED(dtm_idx); in arm_cmn_event_add()
1701 reg = (u64)le32_to_cpu(dtm->pmu_config_high) << 32 | dtm->pmu_config_low; in arm_cmn_event_add()
1702 writeq_relaxed(reg, dtm->base + CMN_DTM_PMU_CONFIG); in arm_cmn_event_add()
1862 static void arm_cmn_init_dtm(struct arm_cmn_dtm *dtm, struct arm_cmn_node *xp, int idx) in arm_cmn_init_dtm() argument
1866 dtm->base = xp->pmu_base + CMN_DTM_OFFSET(idx); in arm_cmn_init_dtm()
1867 dtm->pmu_config_low = CMN_DTM_PMU_CONFIG_PMU_EN; in arm_cmn_init_dtm()
1869 dtm->wp_event[i] = -1; in arm_cmn_init_dtm()
1870 writeq_relaxed(0, dtm->base + CMN_DTM_WPn_MASK(i)); in arm_cmn_init_dtm()
1871 writeq_relaxed(~0ULL, dtm->base + CMN_DTM_WPn_VAL(i)); in arm_cmn_init_dtm()
1923 dn->dtm = xp->dtm; in arm_cmn_init_dtcs()
1925 dn->dtm += arm_cmn_nid(cmn, dn->id).port / 2; in arm_cmn_init_dtcs()
1990 struct arm_cmn_dtm *dtm; in arm_cmn_discover() local
2044 dtm = devm_kcalloc(cmn->dev, i, sizeof(*dtm), GFP_KERNEL); in arm_cmn_discover()
2045 if (!dtm) in arm_cmn_discover()
2050 cmn->dtms = dtm; in arm_cmn_discover()
2071 xp->dtm = dtm - cmn->dtms; in arm_cmn_discover()
2072 arm_cmn_init_dtm(dtm++, xp, 0); in arm_cmn_discover()
2094 arm_cmn_init_dtm(dtm++, xp, 1); in arm_cmn_discover()
2096 arm_cmn_init_dtm(dtm++, xp, 2); in arm_cmn_discover()
2178 sz = (void *)dtm - (void *)cmn->dtms; in arm_cmn_discover()
2179 dtm = devm_krealloc(cmn->dev, cmn->dtms, sz, GFP_KERNEL); in arm_cmn_discover()
2180 if (dtm) in arm_cmn_discover()
2181 cmn->dtms = dtm; in arm_cmn_discover()