diff --git a/drivers/soc/qcom/socinfo.c b/drivers/soc/qcom/socinfo.c index 1add94d9a621..deac24c2f3bd 100644 --- a/drivers/soc/qcom/socinfo.c +++ b/drivers/soc/qcom/socinfo.c @@ -290,6 +290,9 @@ struct socinfo { __le32 nnum_partname_mapping; /* Version 17 */ __le32 hw_plat_oem_variant; + /* Version 18 */ + __le32 num_kvps; + __le32 kvps_offset; } *socinfo; #define PART_NAME_MAX 32 @@ -1243,6 +1246,8 @@ static void socinfo_populate_sysfs(struct qcom_socinfo *qcom_socinfo) int i = 0; switch (socinfo_format) { + case SOCINFO_VERSION(0, 18): + fallthrough; case SOCINFO_VERSION(0, 17): msm_custom_socinfo_attrs[i++] = &dev_attr_platform_oem_variant_id.attr; msm_custom_socinfo_attrs[i++] = &dev_attr_platform_oem_variant.attr; @@ -1592,6 +1597,36 @@ static void socinfo_print(void) socinfo->hw_plat_oem_variant); break; + case SOCINFO_VERSION(0, 18): + pr_info("v%u.%u, id=%u, ver=%u.%u, raw_id=%u, raw_ver=%u, hw_plat=%u, hw_plat_ver=%u\n accessory_chip=%u, hw_plat_subtype=%u, pmic_model=%u, pmic_die_revision=%u foundry_id=%u serial_number=%u num_pmics=%u chip_family=0x%x raw_device_family=0x%x raw_device_number=0x%x nproduct_id=0x%x num_clusters=0x%x ncluster_array_offset=0x%x num_defective_parts=0x%x ndefective_parts_array_offset=0x%x nmodem_supported=0x%x feature_code=0x%x pcode=0x%x sku=%s hw_plat_oem_variant=%u num_kvps=%u kvps_offset=%u\n", + f_maj, f_min, socinfo->id, v_maj, v_min, + socinfo->raw_id, socinfo->raw_ver, + socinfo->hw_plat, + socinfo->plat_ver, + socinfo->accessory_chip, + socinfo->hw_plat_subtype, + socinfo->pmic_model, + socinfo->pmic_die_rev, + socinfo->foundry_id, + socinfo->serial_num, + socinfo->num_pmics, + socinfo->chip_family, + socinfo->raw_device_family, + socinfo->raw_device_num, + socinfo->nproduct_id, + socinfo->num_clusters, + socinfo->ncluster_array_offset, + socinfo->num_defective_parts, + socinfo->ndefective_parts_array_offset, + socinfo->nmodem_supported, + socinfo->feature_code, + socinfo->pcode, + sku ? sku : "Unknown", + socinfo->hw_plat_oem_variant, + socinfo->num_kvps, + socinfo->kvps_offset); + break; + default: pr_err("Unknown format found: v%u.%u\n", f_maj, f_min); break; @@ -1886,6 +1921,8 @@ static void socinfo_debugfs_init(struct qcom_socinfo *qcom_socinfo, &qcom_socinfo->info.fmt); switch (qcom_socinfo->info.fmt) { + case SOCINFO_VERSION(0, 18): + fallthrough; case SOCINFO_VERSION(0, 17): qcom_socinfo->info.hw_plat_oem_variant = __le32_to_cpu(info->hw_plat_oem_variant);