Lines Matching full:xp

84 /* DTMs live in the PMU space of XP registers */
290 /* XP properties really, but replicated to children for convenience */
439 const struct arm_cmn_node *xp, int port) in arm_cmn_device_connect_info() argument
441 int offset = CMN_MXP__CONNECT_INFO(port) - arm_cmn_pmu_offset(cmn, xp); in arm_cmn_device_connect_info()
454 return readl_relaxed(xp->pmu_base + offset); in arm_cmn_device_connect_info()
500 static void arm_cmn_show_logid(struct seq_file *s, const struct arm_cmn_node *xp, int p, int d) in arm_cmn_show_logid() argument
504 u16 id = xp->id | d | (p << xp->deviceid_bits); in arm_cmn_show_logid()
536 struct arm_cmn_node *xp = cmn->xps + xp_base; in arm_cmn_map_show() local
545 port[p][x] = arm_cmn_device_connect_info(cmn, xp + x, p); in arm_cmn_map_show()
546 seq_printf(s, " XP #%-3d|", xp_base + x); in arm_cmn_map_show()
551 s8 dtc = xp[x].dtc; in arm_cmn_map_show()
568 arm_cmn_show_logid(s, xp + x, p, 0); in arm_cmn_map_show()
571 arm_cmn_show_logid(s, xp + x, p, 1); in arm_cmn_map_show()
720 /* Hide XP events for unused interfaces/channels */ in arm_cmn_event_attr_is_visible()
879 /* Good thing there are only 3 fundamental XP events... */
1022 /* We treat watchpoints as a special made-up class of XP events */
1790 /* For watchpoints we need the actual XP node here */ in arm_cmn_event_init()
2117 static void arm_cmn_init_dtm(struct arm_cmn_dtm *dtm, struct arm_cmn_node *xp, int idx) in arm_cmn_init_dtm() argument
2121 dtm->base = xp->pmu_base + CMN_DTM_OFFSET(idx); in arm_cmn_init_dtm()
2162 struct arm_cmn_node *dn, *xp; in arm_cmn_init_dtcs() local
2177 xp = arm_cmn_node_to_xp(cmn, dn); in arm_cmn_init_dtcs()
2178 dn->dtc = xp->dtc; in arm_cmn_init_dtcs()
2179 dn->dtm = xp->dtm; in arm_cmn_init_dtcs()
2282 * an XP port then we risk locking up if we try to access anything behind in arm_cmn_discover()
2319 * bound, account for double the number of non-XP nodes. in arm_cmn_discover()
2338 struct arm_cmn_node *xp = dn++; in arm_cmn_discover() local
2343 arm_cmn_init_node_info(cmn, reg & CMN_CHILD_NODE_ADDR, xp); in arm_cmn_discover()
2345 * Thanks to the order in which XP logical IDs seem to be in arm_cmn_discover()
2347 * looking out for the XP at (0,1) without needing to know in arm_cmn_discover()
2350 if (xp->id == (1 << 3)) in arm_cmn_discover()
2351 cmn->mesh_x = xp->logid; in arm_cmn_discover()
2354 xp->dtc = -1; in arm_cmn_discover()
2356 xp->dtc = arm_cmn_dtc_domain(cmn, xp_region); in arm_cmn_discover()
2358 xp->dtm = dtm - cmn->dtms; in arm_cmn_discover()
2359 arm_cmn_init_dtm(dtm++, xp, 0); in arm_cmn_discover()
2362 * unnecessary XP events easily, and also infer the per-XP in arm_cmn_discover()
2366 if (arm_cmn_device_connect_info(cmn, xp, p)) in arm_cmn_discover()
2370 xp->portid_bits = 3; in arm_cmn_discover()
2371 xp->deviceid_bits = 2; in arm_cmn_discover()
2373 xp->portid_bits = 2; in arm_cmn_discover()
2374 xp->deviceid_bits = 1; in arm_cmn_discover()
2376 xp->portid_bits = 1; in arm_cmn_discover()
2377 xp->deviceid_bits = 2; in arm_cmn_discover()
2381 arm_cmn_init_dtm(dtm++, xp, 1); in arm_cmn_discover()
2383 arm_cmn_init_dtm(dtm++, xp, 2); in arm_cmn_discover()
2399 * but they don't go to regular XP DTMs, and they depend on in arm_cmn_discover()
2419 dn->portid_bits = xp->portid_bits; in arm_cmn_discover()
2420 dn->deviceid_bits = xp->deviceid_bits; in arm_cmn_discover()
2492 * an XP at (0,1), thus we must have an Nx1 configuration. in arm_cmn_discover()
2498 /* 1x1 config plays havoc with XP event encodings */ in arm_cmn_discover()
2500 dev_warn(cmn->dev, "1x1 config not fully supported, translate XP events manually\n"); in arm_cmn_discover()