Lines Matching defs:trp
90 struct tpmi_rapl_package *trp;
103 trp = kzalloc(sizeof(*trp), GFP_KERNEL);
104 if (!trp) {
109 list_add(&trp->node, &tpmi_rapl_packages);
112 return trp;
122 static void trp_release(struct tpmi_rapl_package *trp)
125 list_del(&trp->node);
130 kfree(trp);
140 static int parse_one_domain(struct tpmi_rapl_package *trp, u32 offset)
148 u64 tpmi_domain_header = readq(trp->base + offset);
184 tpmi_domain_info = readq(trp->base + offset + TPMI_RAPL_REG_DOMAIN_INFO);
197 if (trp->priv.regs[domain_type][RAPL_DOMAIN_REG_UNIT].mmio) {
213 trp->priv.limits[domain_type] |= BIT(POWER_LIMIT1);
217 trp->priv.limits[domain_type] |= BIT(POWER_LIMIT2);
221 trp->priv.limits[domain_type] |= BIT(POWER_LIMIT4);
235 trp->priv.regs[domain_type][reg_id].mmio = trp->base + offset + reg_index * 8;
244 struct tpmi_rapl_package *trp;
254 trp = trp_alloc(info->package_id);
255 if (IS_ERR(trp))
256 return PTR_ERR(trp);
271 trp->base = devm_ioremap_resource(&auxdev->dev, res);
272 if (IS_ERR(trp->base)) {
273 ret = PTR_ERR(trp->base);
278 ret = parse_one_domain(trp, offset);
283 trp->tpmi_info = info;
284 trp->priv.type = RAPL_IF_TPMI;
285 trp->priv.read_raw = tpmi_rapl_read_raw;
286 trp->priv.write_raw = tpmi_rapl_write_raw;
287 trp->priv.control_type = tpmi_control_type;
290 trp->rp = rapl_find_package_domain(info->package_id, &trp->priv, false);
291 if (trp->rp) {
297 trp->rp = rapl_add_package(info->package_id, &trp->priv, false);
298 if (IS_ERR(trp->rp)) {
300 info->package_id, PTR_ERR(trp->rp));
301 ret = PTR_ERR(trp->rp);
305 auxiliary_set_drvdata(auxdev, trp);
309 trp_release(trp);
315 struct tpmi_rapl_package *trp = auxiliary_get_drvdata(auxdev);
317 rapl_remove_package(trp->rp);
318 trp_release(trp);