Lines Matching refs:dtm

288 	u8 dtm;  member
1359 static int arm_cmn_find_free_wp_idx(struct arm_cmn_dtm *dtm, in arm_cmn_find_free_wp_idx() argument
1364 if (dtm->wp_event[wp_idx] >= 0) in arm_cmn_find_free_wp_idx()
1365 if (dtm->wp_event[++wp_idx] >= 0) in arm_cmn_find_free_wp_idx()
1378 static void arm_cmn_claim_wp_idx(struct arm_cmn_dtm *dtm, in arm_cmn_claim_wp_idx() argument
1385 dtm->wp_event[wp_idx] = hw->dtc_idx[dtc]; in arm_cmn_claim_wp_idx()
1446 struct arm_cmn_dtm *dtm = NULL; in arm_cmn_read_dtm() local
1453 if (dtm != &cmn->dtms[dn->dtm]) { in arm_cmn_read_dtm()
1454 dtm = &cmn->dtms[dn->dtm] + hw->dtm_offset; in arm_cmn_read_dtm()
1455 reg = readq_relaxed(dtm->base + offset); in arm_cmn_read_dtm()
1636 struct arm_cmn_val *val, int dtm) in arm_cmn_val_find_free_wp_config() argument
1640 if (val->wp[dtm][wp_idx]) in arm_cmn_val_find_free_wp_config()
1641 if (val->wp[dtm][++wp_idx]) in arm_cmn_val_find_free_wp_config()
1668 int wp_idx, dtm = dn->dtm, sel = hw->filter_sel; in arm_cmn_val_add_event() local
1670 val->dtm_count[dtm]++; in arm_cmn_val_add_event()
1673 val->occupid[dtm][sel] = CMN_EVENT_OCCUPID(event) + 1; in arm_cmn_val_add_event()
1678 wp_idx = arm_cmn_val_find_free_wp_config(event, val, dtm); in arm_cmn_val_add_event()
1679 val->wp[dtm][wp_idx] = 1; in arm_cmn_val_add_event()
1680 val->wp_combine[dtm][wp_idx >> 1] += !!CMN_EVENT_WP_COMBINE(event); in arm_cmn_val_add_event()
1719 int wp_idx, dtm = dn->dtm, sel = hw->filter_sel; in arm_cmn_validate_group() local
1721 if (val->dtm_count[dtm] == CMN_DTM_NUM_COUNTERS) in arm_cmn_validate_group()
1724 if (sel > SEL_NONE && val->occupid[dtm][sel] && in arm_cmn_validate_group()
1725 val->occupid[dtm][sel] != CMN_EVENT_OCCUPID(event) + 1) in arm_cmn_validate_group()
1731 wp_idx = arm_cmn_val_find_free_wp_config(event, val, dtm); in arm_cmn_validate_group()
1736 val->wp_combine[dtm][wp_idx >> 1] != !!CMN_EVENT_WP_COMBINE(event)) in arm_cmn_validate_group()
1845 struct arm_cmn_dtm *dtm = &cmn->dtms[hw->dn[i].dtm] + hw->dtm_offset; in arm_cmn_event_clear() local
1851 dtm->wp_event[wp_idx] = -1; in arm_cmn_event_clear()
1857 dtm->pmu_config_low &= ~CMN__PMEVCNT_PAIRED(dtm_idx); in arm_cmn_event_clear()
1858 writel_relaxed(dtm->pmu_config_low, dtm->base + CMN_DTM_PMU_CONFIG); in arm_cmn_event_clear()
1903 struct arm_cmn_dtm *dtm = &cmn->dtms[dn->dtm] + hw->dtm_offset; in arm_cmn_event_add() local
1908 while (dtm->pmu_config_low & CMN__PMEVCNT_PAIRED(dtm_idx)) in arm_cmn_event_add()
1918 wp_idx = arm_cmn_find_free_wp_idx(dtm, event); in arm_cmn_event_add()
1924 tmp = dtm->wp_event[wp_idx ^ 1]; in arm_cmn_event_add()
1931 arm_cmn_claim_wp_idx(dtm, event, d, wp_idx, i); in arm_cmn_event_add()
1932 writel_relaxed(cfg, dtm->base + CMN_DTM_WPn_CONFIG(wp_idx)); in arm_cmn_event_add()
1948 dtm->input_sel[dtm_idx] = input_sel; in arm_cmn_event_add()
1950 dtm->pmu_config_low &= ~(CMN__PMEVCNT0_GLOBAL_NUM << shift); in arm_cmn_event_add()
1951 dtm->pmu_config_low |= FIELD_PREP(CMN__PMEVCNT0_GLOBAL_NUM, hw->dtc_idx[d]) << shift; in arm_cmn_event_add()
1952 dtm->pmu_config_low |= CMN__PMEVCNT_PAIRED(dtm_idx); in arm_cmn_event_add()
1953 reg = (u64)le32_to_cpu(dtm->pmu_config_high) << 32 | dtm->pmu_config_low; in arm_cmn_event_add()
1954 writeq_relaxed(reg, dtm->base + CMN_DTM_PMU_CONFIG); in arm_cmn_event_add()
2114 static void arm_cmn_init_dtm(struct arm_cmn_dtm *dtm, struct arm_cmn_node *xp, int idx) in arm_cmn_init_dtm() argument
2118 dtm->base = xp->pmu_base + CMN_DTM_OFFSET(idx); in arm_cmn_init_dtm()
2119 dtm->pmu_config_low = CMN_DTM_PMU_CONFIG_PMU_EN; in arm_cmn_init_dtm()
2120 writeq_relaxed(dtm->pmu_config_low, dtm->base + CMN_DTM_PMU_CONFIG); in arm_cmn_init_dtm()
2122 dtm->wp_event[i] = -1; in arm_cmn_init_dtm()
2123 writeq_relaxed(0, dtm->base + CMN_DTM_WPn_MASK(i)); in arm_cmn_init_dtm()
2124 writeq_relaxed(~0ULL, dtm->base + CMN_DTM_WPn_VAL(i)); in arm_cmn_init_dtm()
2176 dn->dtm = xp->dtm; in arm_cmn_init_dtcs()
2178 dn->dtm += arm_cmn_nid(dn).port / 2; in arm_cmn_init_dtcs()
2250 struct arm_cmn_dtm *dtm; in arm_cmn_discover() local
2327 dtm = devm_kcalloc(cmn->dev, i, sizeof(*dtm), GFP_KERNEL); in arm_cmn_discover()
2328 if (!dtm) in arm_cmn_discover()
2333 cmn->dtms = dtm; in arm_cmn_discover()
2355 xp->dtm = dtm - cmn->dtms; in arm_cmn_discover()
2356 arm_cmn_init_dtm(dtm++, xp, 0); in arm_cmn_discover()
2378 arm_cmn_init_dtm(dtm++, xp, 1); in arm_cmn_discover()
2380 arm_cmn_init_dtm(dtm++, xp, 2); in arm_cmn_discover()
2482 sz = (void *)dtm - (void *)cmn->dtms; in arm_cmn_discover()
2483 dtm = devm_krealloc(cmn->dev, cmn->dtms, sz, GFP_KERNEL); in arm_cmn_discover()
2484 if (dtm) in arm_cmn_discover()
2485 cmn->dtms = dtm; in arm_cmn_discover()