From 4db26dbeb1bbf8f7ce4fb69dc4873b37cdd0f36c Mon Sep 17 00:00:00 2001 From: Naman Jain Date: Wed, 19 Oct 2022 11:59:07 +0530 Subject: [PATCH] soc: qcom: Add v18 support for socinfo Add support for version 18 in socinfo driver. Add fields in socinfo structure which are added in SMEM in v18, while not creating any APIs to use/expose them as there is no use case requirement for these fields in HLOS as of now. Change-Id: I88a15821f5b85184edb7cae1fdeb3824c0f748b8 Signed-off-by: Naman Jain --- drivers/soc/qcom/socinfo.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) 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);