Lines Matching refs:dtm

292 	u8 dtm;  member
1363 static int arm_cmn_find_free_wp_idx(struct arm_cmn_dtm *dtm, in arm_cmn_find_free_wp_idx() argument
1368 if (dtm->wp_event[wp_idx] >= 0) in arm_cmn_find_free_wp_idx()
1369 if (dtm->wp_event[++wp_idx] >= 0) in arm_cmn_find_free_wp_idx()
1382 static void arm_cmn_claim_wp_idx(struct arm_cmn_dtm *dtm, in arm_cmn_claim_wp_idx() argument
1389 dtm->wp_event[wp_idx] = hw->dtc_idx[dtc]; in arm_cmn_claim_wp_idx()
1450 struct arm_cmn_dtm *dtm = NULL; in arm_cmn_read_dtm() local
1457 if (dtm != &cmn->dtms[dn->dtm]) { in arm_cmn_read_dtm()
1458 dtm = &cmn->dtms[dn->dtm] + hw->dtm_offset; in arm_cmn_read_dtm()
1459 reg = readq_relaxed(dtm->base + offset); in arm_cmn_read_dtm()
1640 struct arm_cmn_val *val, int dtm) in arm_cmn_val_find_free_wp_config() argument
1644 if (val->wp[dtm][wp_idx]) in arm_cmn_val_find_free_wp_config()
1645 if (val->wp[dtm][++wp_idx]) in arm_cmn_val_find_free_wp_config()
1672 int wp_idx, dtm = dn->dtm, sel = hw->filter_sel; in arm_cmn_val_add_event() local
1674 val->dtm_count[dtm]++; in arm_cmn_val_add_event()
1677 val->occupid[dtm][sel] = CMN_EVENT_OCCUPID(event) + 1; in arm_cmn_val_add_event()
1682 wp_idx = arm_cmn_val_find_free_wp_config(event, val, dtm); in arm_cmn_val_add_event()
1683 val->wp[dtm][wp_idx] = 1; in arm_cmn_val_add_event()
1684 val->wp_combine[dtm][wp_idx >> 1] += !!CMN_EVENT_WP_COMBINE(event); in arm_cmn_val_add_event()
1723 int wp_idx, dtm = dn->dtm, sel = hw->filter_sel; in arm_cmn_validate_group() local
1725 if (val->dtm_count[dtm] == CMN_DTM_NUM_COUNTERS) in arm_cmn_validate_group()
1728 if (sel > SEL_NONE && val->occupid[dtm][sel] && in arm_cmn_validate_group()
1729 val->occupid[dtm][sel] != CMN_EVENT_OCCUPID(event) + 1) in arm_cmn_validate_group()
1735 wp_idx = arm_cmn_val_find_free_wp_config(event, val, dtm); in arm_cmn_validate_group()
1740 val->wp_combine[dtm][wp_idx >> 1] != !!CMN_EVENT_WP_COMBINE(event)) in arm_cmn_validate_group()
1849 struct arm_cmn_dtm *dtm = &cmn->dtms[hw->dn[i].dtm] + hw->dtm_offset; in arm_cmn_event_clear() local
1855 dtm->wp_event[wp_idx] = -1; in arm_cmn_event_clear()
1861 dtm->pmu_config_low &= ~CMN__PMEVCNT_PAIRED(dtm_idx); in arm_cmn_event_clear()
1862 writel_relaxed(dtm->pmu_config_low, dtm->base + CMN_DTM_PMU_CONFIG); in arm_cmn_event_clear()
1907 struct arm_cmn_dtm *dtm = &cmn->dtms[dn->dtm] + hw->dtm_offset; in arm_cmn_event_add() local
1912 while (dtm->pmu_config_low & CMN__PMEVCNT_PAIRED(dtm_idx)) in arm_cmn_event_add()
1922 wp_idx = arm_cmn_find_free_wp_idx(dtm, event); in arm_cmn_event_add()
1928 tmp = dtm->wp_event[wp_idx ^ 1]; in arm_cmn_event_add()
1935 arm_cmn_claim_wp_idx(dtm, event, d, wp_idx, i); in arm_cmn_event_add()
1936 writel_relaxed(cfg, dtm->base + CMN_DTM_WPn_CONFIG(wp_idx)); in arm_cmn_event_add()
1952 dtm->input_sel[dtm_idx] = input_sel; in arm_cmn_event_add()
1954 dtm->pmu_config_low &= ~(CMN__PMEVCNT0_GLOBAL_NUM << shift); in arm_cmn_event_add()
1955 dtm->pmu_config_low |= FIELD_PREP(CMN__PMEVCNT0_GLOBAL_NUM, hw->dtc_idx[d]) << shift; in arm_cmn_event_add()
1956 dtm->pmu_config_low |= CMN__PMEVCNT_PAIRED(dtm_idx); in arm_cmn_event_add()
1957 reg = (u64)le32_to_cpu(dtm->pmu_config_high) << 32 | dtm->pmu_config_low; in arm_cmn_event_add()
1958 writeq_relaxed(reg, dtm->base + CMN_DTM_PMU_CONFIG); in arm_cmn_event_add()
2118 static void arm_cmn_init_dtm(struct arm_cmn_dtm *dtm, struct arm_cmn_node *xp, int idx) in arm_cmn_init_dtm() argument
2122 dtm->base = xp->pmu_base + CMN_DTM_OFFSET(idx); in arm_cmn_init_dtm()
2123 dtm->pmu_config_low = CMN_DTM_PMU_CONFIG_PMU_EN; in arm_cmn_init_dtm()
2124 writeq_relaxed(dtm->pmu_config_low, dtm->base + CMN_DTM_PMU_CONFIG); in arm_cmn_init_dtm()
2126 dtm->wp_event[i] = -1; in arm_cmn_init_dtm()
2127 writeq_relaxed(0, dtm->base + CMN_DTM_WPn_MASK(i)); in arm_cmn_init_dtm()
2128 writeq_relaxed(~0ULL, dtm->base + CMN_DTM_WPn_VAL(i)); in arm_cmn_init_dtm()
2180 dn->dtm = xp->dtm; in arm_cmn_init_dtcs()
2182 dn->dtm += arm_cmn_nid(dn).port / 2; in arm_cmn_init_dtcs()
2254 struct arm_cmn_dtm *dtm; in arm_cmn_discover() local
2334 dtm = devm_kcalloc(cmn->dev, i, sizeof(*dtm), GFP_KERNEL); in arm_cmn_discover()
2335 if (!dtm) in arm_cmn_discover()
2340 cmn->dtms = dtm; in arm_cmn_discover()
2362 xp->dtm = dtm - cmn->dtms; in arm_cmn_discover()
2363 arm_cmn_init_dtm(dtm++, xp, 0); in arm_cmn_discover()
2385 arm_cmn_init_dtm(dtm++, xp, 1); in arm_cmn_discover()
2387 arm_cmn_init_dtm(dtm++, xp, 2); in arm_cmn_discover()
2498 sz = (void *)dtm - (void *)cmn->dtms; in arm_cmn_discover()
2499 dtm = devm_krealloc(cmn->dev, cmn->dtms, sz, GFP_KERNEL); in arm_cmn_discover()
2500 if (dtm) in arm_cmn_discover()
2501 cmn->dtms = dtm; in arm_cmn_discover()