Skip to content

Commit d9c2a25

Browse files
Naman Jainandersson
authored andcommitted
soc: qcom: socinfo: Add support for new fields in revision 19
Add support for below fields coming in socinfo structure under v19: * num_func_clusters: number of clusters with at least one functional core * boot_cluster: cluster selected as boot cluster * boot_core: core selected as boot core While at it, rename some variables to align them with their functionalities. Signed-off-by: Naman Jain <quic_namajain@quicinc.com> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20230606134626.18790-3-quic_namajain@quicinc.com
1 parent 158826c commit d9c2a25

2 files changed

Lines changed: 30 additions & 10 deletions

File tree

drivers/soc/qcom/socinfo.c

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -133,12 +133,15 @@ struct socinfo_params {
133133
u32 nproduct_id;
134134
u32 num_clusters;
135135
u32 ncluster_array_offset;
136-
u32 num_defective_parts;
137-
u32 ndefective_parts_array_offset;
136+
u32 num_subset_parts;
137+
u32 nsubset_parts_array_offset;
138138
u32 nmodem_supported;
139139
u32 feature_code;
140140
u32 pcode;
141141
u32 oem_variant;
142+
u32 num_func_clusters;
143+
u32 boot_cluster;
144+
u32 boot_core;
142145
};
143146

144147
struct smem_image_version {
@@ -565,6 +568,18 @@ static void socinfo_debugfs_init(struct qcom_socinfo *qcom_socinfo,
565568
&qcom_socinfo->info.fmt);
566569

567570
switch (qcom_socinfo->info.fmt) {
571+
case SOCINFO_VERSION(0, 19):
572+
qcom_socinfo->info.num_func_clusters = __le32_to_cpu(info->num_func_clusters);
573+
qcom_socinfo->info.boot_cluster = __le32_to_cpu(info->boot_cluster);
574+
qcom_socinfo->info.boot_core = __le32_to_cpu(info->boot_core);
575+
576+
debugfs_create_u32("num_func_clusters", 0444, qcom_socinfo->dbg_root,
577+
&qcom_socinfo->info.num_func_clusters);
578+
debugfs_create_u32("boot_cluster", 0444, qcom_socinfo->dbg_root,
579+
&qcom_socinfo->info.boot_cluster);
580+
debugfs_create_u32("boot_core", 0444, qcom_socinfo->dbg_root,
581+
&qcom_socinfo->info.boot_core);
582+
fallthrough;
568583
case SOCINFO_VERSION(0, 18):
569584
case SOCINFO_VERSION(0, 17):
570585
qcom_socinfo->info.oem_variant = __le32_to_cpu(info->oem_variant);
@@ -589,17 +604,18 @@ static void socinfo_debugfs_init(struct qcom_socinfo *qcom_socinfo,
589604
case SOCINFO_VERSION(0, 14):
590605
qcom_socinfo->info.num_clusters = __le32_to_cpu(info->num_clusters);
591606
qcom_socinfo->info.ncluster_array_offset = __le32_to_cpu(info->ncluster_array_offset);
592-
qcom_socinfo->info.num_defective_parts = __le32_to_cpu(info->num_defective_parts);
593-
qcom_socinfo->info.ndefective_parts_array_offset = __le32_to_cpu(info->ndefective_parts_array_offset);
607+
qcom_socinfo->info.num_subset_parts = __le32_to_cpu(info->num_subset_parts);
608+
qcom_socinfo->info.nsubset_parts_array_offset =
609+
__le32_to_cpu(info->nsubset_parts_array_offset);
594610

595611
debugfs_create_u32("num_clusters", 0444, qcom_socinfo->dbg_root,
596612
&qcom_socinfo->info.num_clusters);
597613
debugfs_create_u32("ncluster_array_offset", 0444, qcom_socinfo->dbg_root,
598614
&qcom_socinfo->info.ncluster_array_offset);
599-
debugfs_create_u32("num_defective_parts", 0444, qcom_socinfo->dbg_root,
600-
&qcom_socinfo->info.num_defective_parts);
601-
debugfs_create_u32("ndefective_parts_array_offset", 0444, qcom_socinfo->dbg_root,
602-
&qcom_socinfo->info.ndefective_parts_array_offset);
615+
debugfs_create_u32("num_subset_parts", 0444, qcom_socinfo->dbg_root,
616+
&qcom_socinfo->info.num_subset_parts);
617+
debugfs_create_u32("nsubset_parts_array_offset", 0444, qcom_socinfo->dbg_root,
618+
&qcom_socinfo->info.nsubset_parts_array_offset);
603619
fallthrough;
604620
case SOCINFO_VERSION(0, 13):
605621
qcom_socinfo->info.nproduct_id = __le32_to_cpu(info->nproduct_id);

include/linux/soc/qcom/socinfo.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ struct socinfo {
5454
/* Version 14 */
5555
__le32 num_clusters;
5656
__le32 ncluster_array_offset;
57-
__le32 num_defective_parts;
58-
__le32 ndefective_parts_array_offset;
57+
__le32 num_subset_parts;
58+
__le32 nsubset_parts_array_offset;
5959
/* Version 15 */
6060
__le32 nmodem_supported;
6161
/* Version 16 */
@@ -68,6 +68,10 @@ struct socinfo {
6868
/* Version 18 */
6969
__le32 num_kvps;
7070
__le32 kvps_offset;
71+
/* Version 19 */
72+
__le32 num_func_clusters;
73+
__le32 boot_cluster;
74+
__le32 boot_core;
7175
};
7276

7377
#endif

0 commit comments

Comments
 (0)