sst_header
if (!(pd_info->sst_header.cap_mask & SST_PP_CAP_CP_ENABLE))
cp_base = pd_info->sst_base + pd_info->sst_header.cp_offset;
if (!(pd_info->sst_header.cap_mask & SST_PP_CAP_PP_ENABLE))
pd_info->sst_header.pp_offset +
if (!(pd_info->sst_header.cap_mask & SST_PP_CAP_CP_ENABLE))
cp_base = pd_info->sst_base + pd_info->sst_header.cp_offset;
if (!(pd_info->sst_header.cap_mask & SST_PP_CAP_PP_ENABLE))
pd_info->sst_header.pp_offset + SST_PP_CONTROL_OFFSET);
struct sst_header sst_header;
pd_info->sst_header.pp_offset +
perf_level_offsets = readq(pd_info->sst_base + pd_info->sst_header.pp_offset +
pd_info->perf_levels[i].mmio_offset = pd_info->sst_header.pp_offset + offset;
*((u64 *)&pd_info->sst_header) = readq(pd_info->sst_base);
pd_info->sst_header.cp_offset *= 8;
pd_info->sst_header.pp_offset *= 8;
if (pd_info->sst_header.interface_version == TPMI_VERSION_INVALID)
if (TPMI_MAJOR_VERSION(pd_info->sst_header.interface_version) != ISST_MAJOR_VERSION) {
TPMI_MAJOR_VERSION(pd_info->sst_header.interface_version));
if (TPMI_MINOR_VERSION(pd_info->sst_header.interface_version) > ISST_MINOR_VERSION)
TPMI_MINOR_VERSION(pd_info->sst_header.interface_version));
*((u64 *)&pd_info->cp_header) = readq(pd_info->sst_base + pd_info->sst_header.cp_offset);
*((u64 *)&pd_info->pp_header) = readq(pd_info->sst_base + pd_info->sst_header.pp_offset);
val = readq(power_domain_info->sst_base + power_domain_info->sst_header.cp_offset +\
power_domain_info->sst_header.cp_offset + (offset));\
writeq(val, power_domain_info->sst_base + power_domain_info->sst_header.cp_offset +\
core_power.supported = !!(power_domain_info->sst_header.cap_mask & BIT(0));
power_domain_info->sst_header.cp_offset + offset);
power_domain_info->sst_header.cp_offset + offset);
val = readq(power_domain_info->sst_base + power_domain_info->sst_header.pp_offset +\
val = readq(power_domain_info->sst_base + power_domain_info->sst_header.pp_offset +\
writeq(val, power_domain_info->sst_base + power_domain_info->sst_header.pp_offset +\
perf_level.enabled = !!(power_domain_info->sst_header.cap_mask & BIT(1));