Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

soc: qcom: socinfo: add support to extract more than 32 image versions

SMEM_IMAGE_VERSION_TABLE contains the version of the first 32 images.
Add images beyond that and read these from SMEM_IMAGE_VERSION_TABLE_2.

Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20251031-image-crm-part2-v2-2-c224c45c381a@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>

authored by

Kathiravan Thirumoorthy and committed by
Bjorn Andersson
db252c10 d4032769

+37 -8
+37 -8
drivers/soc/qcom/socinfo.c
··· 67 67 #define SMEM_IMAGE_TABLE_GEARVM_INDEX 29 68 68 #define SMEM_IMAGE_TABLE_UEFI_INDEX 30 69 69 #define SMEM_IMAGE_TABLE_CDSP3_INDEX 31 70 + #define SMEM_IMAGE_TABLE_AUDIOPD_ADSP1_INDEX 32 71 + #define SMEM_IMAGE_TABLE_AUDIOPD_ADSP2_INDEX 33 72 + #define SMEM_IMAGE_TABLE_DCP_INDEX 34 73 + #define SMEM_IMAGE_TABLE_OOBS_INDEX 35 74 + #define SMEM_IMAGE_TABLE_OOBNS_INDEX 36 75 + #define SMEM_IMAGE_TABLE_DEVCFG_INDEX 37 76 + #define SMEM_IMAGE_TABLE_BTPD_INDEX 38 77 + #define SMEM_IMAGE_TABLE_QECP_INDEX 39 78 + 70 79 #define SMEM_IMAGE_VERSION_TABLE 469 80 + #define SMEM_IMAGE_VERSION_TABLE_2 667 71 81 72 82 /* 73 83 * SMEM Image table names ··· 89 79 [SMEM_IMAGE_TABLE_APPSBL_INDEX] = "appsbl", 90 80 [SMEM_IMAGE_TABLE_APPS_INDEX] = "apps", 91 81 [SMEM_IMAGE_TABLE_AUDIOPD_INDEX] = "audiopd", 82 + [SMEM_IMAGE_TABLE_AUDIOPD_ADSP1_INDEX] = "audiopd_adsp1", 83 + [SMEM_IMAGE_TABLE_AUDIOPD_ADSP2_INDEX] = "audiopd_adsp2", 92 84 [SMEM_IMAGE_TABLE_BOOT_INDEX] = "boot", 85 + [SMEM_IMAGE_TABLE_BTPD_INDEX] = "btpd", 93 86 [SMEM_IMAGE_TABLE_CDSP1_INDEX] = "cdsp1", 94 87 [SMEM_IMAGE_TABLE_CDSP2_INDEX] = "cdsp2", 95 88 [SMEM_IMAGE_TABLE_CDSP3_INDEX] = "cdsp3", 96 89 [SMEM_IMAGE_TABLE_CDSP_INDEX] = "cdsp", 97 90 [SMEM_IMAGE_TABLE_CHARGERPD_INDEX] = "chargerpd", 98 91 [SMEM_IMAGE_TABLE_CNSS_INDEX] = "cnss", 92 + [SMEM_IMAGE_TABLE_DCP_INDEX] = "dcp", 93 + [SMEM_IMAGE_TABLE_DEVCFG_INDEX] = "devcfg", 99 94 [SMEM_IMAGE_TABLE_DSPS_INDEX] = "dsps", 100 95 [SMEM_IMAGE_TABLE_GEARVM_INDEX] = "gearvm", 101 96 [SMEM_IMAGE_TABLE_GPDSP1_INDEX] = "gpdsp1", ··· 110 95 [SMEM_IMAGE_TABLE_NPU_INDEX] = "npu", 111 96 [SMEM_IMAGE_TABLE_OEMPD_INDEX] = "oempd", 112 97 [SMEM_IMAGE_TABLE_OISPD_INDEX] = "oispd", 98 + [SMEM_IMAGE_TABLE_OOBNS_INDEX] = "oobns", 99 + [SMEM_IMAGE_TABLE_OOBS_INDEX] = "oobs", 100 + [SMEM_IMAGE_TABLE_QECP_INDEX] = "qecp", 113 101 [SMEM_IMAGE_TABLE_RPM_INDEX] = "rpm", 114 102 [SMEM_IMAGE_TABLE_SDI_INDEX] = "sdi", 115 103 [SMEM_IMAGE_TABLE_SENSORPD_INDEX] = "sensorpd", ··· 663 645 struct smem_image_version *versions; 664 646 struct dentry *dentry; 665 647 size_t size; 666 - int i; 648 + int i, j; 667 649 unsigned int num_pmics; 668 650 unsigned int pmic_array_offset; 669 651 ··· 807 789 break; 808 790 } 809 791 810 - versions = qcom_smem_get(QCOM_SMEM_HOST_ANY, SMEM_IMAGE_VERSION_TABLE, 811 - &size); 812 - 813 - for (i = 0; i < ARRAY_SIZE(socinfo_image_names); i++) { 792 + for (i = 0, j = 0; i < ARRAY_SIZE(socinfo_image_names); i++, j++) { 814 793 if (!socinfo_image_names[i]) 815 794 continue; 816 795 796 + if (i == 0) { 797 + versions = qcom_smem_get(QCOM_SMEM_HOST_ANY, 798 + SMEM_IMAGE_VERSION_TABLE, 799 + &size); 800 + } else if (i == 32) { 801 + versions = qcom_smem_get(QCOM_SMEM_HOST_ANY, 802 + SMEM_IMAGE_VERSION_TABLE_2, 803 + &size); 804 + if (IS_ERR(versions)) 805 + break; 806 + 807 + j = 0; 808 + } 809 + 817 810 dentry = debugfs_create_dir(socinfo_image_names[i], 818 811 qcom_socinfo->dbg_root); 819 - debugfs_create_file("name", 0444, dentry, &versions[i], 812 + debugfs_create_file("name", 0444, dentry, &versions[j], 820 813 &qcom_image_name_ops); 821 - debugfs_create_file("variant", 0444, dentry, &versions[i], 814 + debugfs_create_file("variant", 0444, dentry, &versions[j], 822 815 &qcom_image_variant_ops); 823 - debugfs_create_file("oem", 0444, dentry, &versions[i], 816 + debugfs_create_file("oem", 0444, dentry, &versions[j], 824 817 &qcom_image_oem_ops); 825 818 } 826 819 }