Lines Matching defs:pd_info

329 				 struct tpmi_per_power_domain_info *pd_info,
336 pd_info->perf_levels = devm_kcalloc(dev, levels, sizeof(struct perf_level), GFP_KERNEL);
337 if (!pd_info->perf_levels)
340 pd_info->ratio_unit = pd_info->pp_header.ratio_unit;
341 pd_info->avx_levels = SST_MAX_AVX_LEVELS;
342 pd_info->pp_block_size = pd_info->pp_header.block_size;
345 *((u64 *)&pd_info->feature_offsets) = readq(pd_info->sst_base +
346 pd_info->sst_header.pp_offset +
349 perf_level_offsets = readq(pd_info->sst_base + pd_info->sst_header.pp_offset +
359 pd_info->perf_levels[i].mmio_offset = pd_info->sst_header.pp_offset + offset;
365 static int sst_main(struct auxiliary_device *auxdev, struct tpmi_per_power_domain_info *pd_info)
370 *((u64 *)&pd_info->sst_header) = readq(pd_info->sst_base);
371 pd_info->sst_header.cp_offset *= 8;
372 pd_info->sst_header.pp_offset *= 8;
374 if (pd_info->sst_header.interface_version == TPMI_VERSION_INVALID)
377 if (TPMI_MAJOR_VERSION(pd_info->sst_header.interface_version) != ISST_MAJOR_VERSION) {
379 TPMI_MAJOR_VERSION(pd_info->sst_header.interface_version));
383 if (TPMI_MINOR_VERSION(pd_info->sst_header.interface_version) != ISST_MINOR_VERSION)
385 TPMI_MINOR_VERSION(pd_info->sst_header.interface_version));
388 *((u64 *)&pd_info->cp_header) = readq(pd_info->sst_base + pd_info->sst_header.cp_offset);
391 *((u64 *)&pd_info->pp_header) = readq(pd_info->sst_base + pd_info->sst_header.pp_offset);
396 if (pd_info->pp_header.level_en_mask & mask)
400 pd_info->max_level = levels;
401 sst_add_perf_profiles(auxdev, pd_info, levels + 1);
1306 struct tpmi_per_power_domain_info *pd_info;
1314 pd_info = &sst_inst->power_domain_info[part][pd];
1315 if (pd_info->sst_base)
1447 struct tpmi_per_power_domain_info *pd_info;
1511 pd_info = devm_kcalloc(dev, num_resources, sizeof(*pd_info), GFP_KERNEL);
1512 if (!pd_info) {
1538 pd_info[i].sst_base = NULL;
1542 pd_info[i].package_id = pkg;
1543 pd_info[i].power_domain_id = i;
1544 pd_info[i].auxdev = auxdev;
1545 pd_info[i].write_blocked = write_blocked;
1546 pd_info[i].sst_base = devm_ioremap_resource(dev, res);
1547 if (IS_ERR(pd_info[i].sst_base)) {
1548 ret = PTR_ERR(pd_info[i].sst_base);
1552 ret = sst_main(auxdev, &pd_info[i]);
1561 devm_iounmap(dev, pd_info[i].sst_base);
1562 pd_info[i].sst_base = NULL;
1576 tpmi_sst->power_domain_info[partition] = pd_info;