Loading drivers/soc/qcom/socinfo.c +97 −1 Original line number Diff line number Diff line Loading @@ -189,6 +189,13 @@ struct socinfo_v0_11 { uint32_t pmic_array_offset; }; struct socinfo_v0_12 { struct socinfo_v0_11 v0_11; uint32_t chip_family; uint32_t raw_device_family; uint32_t raw_device_number; }; static union { struct socinfo_v0_1 v0_1; struct socinfo_v0_2 v0_2; Loading @@ -201,10 +208,11 @@ static union { struct socinfo_v0_9 v0_9; struct socinfo_v0_10 v0_10; struct socinfo_v0_11 v0_11; struct socinfo_v0_12 v0_12; } *socinfo; /* max socinfo format version supported */ #define MAX_SOCINFO_FORMAT SOCINFO_VERSION(0, 11) #define MAX_SOCINFO_FORMAT SOCINFO_VERSION(0, 12) static struct msm_soc_info cpu_of_id[] = { Loading Loading @@ -681,6 +689,30 @@ static uint32_t socinfo_get_serial_number(void) : 0; } static uint32_t socinfo_get_chip_family(void) { return socinfo ? (socinfo_format >= SOCINFO_VERSION(0, 12) ? socinfo->v0_12.chip_family : 0) : 0; } static uint32_t socinfo_get_raw_device_family(void) { return socinfo ? (socinfo_format >= SOCINFO_VERSION(0, 12) ? socinfo->v0_12.raw_device_family : 0) : 0; } static uint32_t socinfo_get_raw_device_number(void) { return socinfo ? (socinfo_format >= SOCINFO_VERSION(0, 12) ? socinfo->v0_12.raw_device_number : 0) : 0; } enum pmic_model socinfo_get_pmic_model(void) { return socinfo ? Loading Loading @@ -827,6 +859,33 @@ msm_get_serial_number(struct device *dev, socinfo_get_serial_number()); } static ssize_t msm_get_chip_family(struct device *dev, struct device_attribute *attr, char *buf) { return snprintf(buf, PAGE_SIZE, "0x%x\n", socinfo_get_chip_family()); } static ssize_t msm_get_raw_device_family(struct device *dev, struct device_attribute *attr, char *buf) { return snprintf(buf, PAGE_SIZE, "0x%x\n", socinfo_get_raw_device_family()); } static ssize_t msm_get_raw_device_number(struct device *dev, struct device_attribute *attr, char *buf) { return snprintf(buf, PAGE_SIZE, "0x%x\n", socinfo_get_raw_device_number()); } static ssize_t msm_get_pmic_model(struct device *dev, struct device_attribute *attr, Loading Loading @@ -1063,6 +1122,18 @@ static struct device_attribute msm_soc_attr_serial_number = __ATTR(serial_number, S_IRUGO, msm_get_serial_number, NULL); static struct device_attribute msm_soc_attr_chip_family = __ATTR(chip_family, S_IRUGO, msm_get_chip_family, NULL); static struct device_attribute msm_soc_attr_raw_device_family = __ATTR(raw_device_family, S_IRUGO, msm_get_raw_device_family, NULL); static struct device_attribute msm_soc_attr_raw_device_number = __ATTR(raw_device_number, S_IRUGO, msm_get_raw_device_number, NULL); static struct device_attribute msm_soc_attr_pmic_model = __ATTR(pmic_model, S_IRUGO, msm_get_pmic_model, NULL); Loading Loading @@ -1193,6 +1264,13 @@ static void __init populate_soc_sysfs_files(struct device *msm_soc_device) device_create_file(msm_soc_device, &images); switch (socinfo_format) { case SOCINFO_VERSION(0, 12): device_create_file(msm_soc_device, &msm_soc_attr_chip_family); device_create_file(msm_soc_device, &msm_soc_attr_raw_device_family); device_create_file(msm_soc_device, &msm_soc_attr_raw_device_number); case SOCINFO_VERSION(0, 11): case SOCINFO_VERSION(0, 10): device_create_file(msm_soc_device, Loading Loading @@ -1390,6 +1468,24 @@ static void socinfo_print(void) socinfo->v0_10.serial_number, socinfo->v0_11.num_pmics); break; case SOCINFO_VERSION(0, 12): 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\n", f_maj, f_min, socinfo->v0_1.id, v_maj, v_min, socinfo->v0_2.raw_id, socinfo->v0_2.raw_version, socinfo->v0_3.hw_platform, socinfo->v0_4.platform_version, socinfo->v0_5.accessory_chip, socinfo->v0_6.hw_platform_subtype, socinfo->v0_7.pmic_model, socinfo->v0_7.pmic_die_revision, socinfo->v0_9.foundry_id, socinfo->v0_10.serial_number, socinfo->v0_11.num_pmics, socinfo->v0_12.chip_family, socinfo->v0_12.raw_device_family, socinfo->v0_12.raw_device_number); break; default: pr_err("Unknown format found: v%u.%u\n", f_maj, f_min); break; Loading Loading
drivers/soc/qcom/socinfo.c +97 −1 Original line number Diff line number Diff line Loading @@ -189,6 +189,13 @@ struct socinfo_v0_11 { uint32_t pmic_array_offset; }; struct socinfo_v0_12 { struct socinfo_v0_11 v0_11; uint32_t chip_family; uint32_t raw_device_family; uint32_t raw_device_number; }; static union { struct socinfo_v0_1 v0_1; struct socinfo_v0_2 v0_2; Loading @@ -201,10 +208,11 @@ static union { struct socinfo_v0_9 v0_9; struct socinfo_v0_10 v0_10; struct socinfo_v0_11 v0_11; struct socinfo_v0_12 v0_12; } *socinfo; /* max socinfo format version supported */ #define MAX_SOCINFO_FORMAT SOCINFO_VERSION(0, 11) #define MAX_SOCINFO_FORMAT SOCINFO_VERSION(0, 12) static struct msm_soc_info cpu_of_id[] = { Loading Loading @@ -681,6 +689,30 @@ static uint32_t socinfo_get_serial_number(void) : 0; } static uint32_t socinfo_get_chip_family(void) { return socinfo ? (socinfo_format >= SOCINFO_VERSION(0, 12) ? socinfo->v0_12.chip_family : 0) : 0; } static uint32_t socinfo_get_raw_device_family(void) { return socinfo ? (socinfo_format >= SOCINFO_VERSION(0, 12) ? socinfo->v0_12.raw_device_family : 0) : 0; } static uint32_t socinfo_get_raw_device_number(void) { return socinfo ? (socinfo_format >= SOCINFO_VERSION(0, 12) ? socinfo->v0_12.raw_device_number : 0) : 0; } enum pmic_model socinfo_get_pmic_model(void) { return socinfo ? Loading Loading @@ -827,6 +859,33 @@ msm_get_serial_number(struct device *dev, socinfo_get_serial_number()); } static ssize_t msm_get_chip_family(struct device *dev, struct device_attribute *attr, char *buf) { return snprintf(buf, PAGE_SIZE, "0x%x\n", socinfo_get_chip_family()); } static ssize_t msm_get_raw_device_family(struct device *dev, struct device_attribute *attr, char *buf) { return snprintf(buf, PAGE_SIZE, "0x%x\n", socinfo_get_raw_device_family()); } static ssize_t msm_get_raw_device_number(struct device *dev, struct device_attribute *attr, char *buf) { return snprintf(buf, PAGE_SIZE, "0x%x\n", socinfo_get_raw_device_number()); } static ssize_t msm_get_pmic_model(struct device *dev, struct device_attribute *attr, Loading Loading @@ -1063,6 +1122,18 @@ static struct device_attribute msm_soc_attr_serial_number = __ATTR(serial_number, S_IRUGO, msm_get_serial_number, NULL); static struct device_attribute msm_soc_attr_chip_family = __ATTR(chip_family, S_IRUGO, msm_get_chip_family, NULL); static struct device_attribute msm_soc_attr_raw_device_family = __ATTR(raw_device_family, S_IRUGO, msm_get_raw_device_family, NULL); static struct device_attribute msm_soc_attr_raw_device_number = __ATTR(raw_device_number, S_IRUGO, msm_get_raw_device_number, NULL); static struct device_attribute msm_soc_attr_pmic_model = __ATTR(pmic_model, S_IRUGO, msm_get_pmic_model, NULL); Loading Loading @@ -1193,6 +1264,13 @@ static void __init populate_soc_sysfs_files(struct device *msm_soc_device) device_create_file(msm_soc_device, &images); switch (socinfo_format) { case SOCINFO_VERSION(0, 12): device_create_file(msm_soc_device, &msm_soc_attr_chip_family); device_create_file(msm_soc_device, &msm_soc_attr_raw_device_family); device_create_file(msm_soc_device, &msm_soc_attr_raw_device_number); case SOCINFO_VERSION(0, 11): case SOCINFO_VERSION(0, 10): device_create_file(msm_soc_device, Loading Loading @@ -1390,6 +1468,24 @@ static void socinfo_print(void) socinfo->v0_10.serial_number, socinfo->v0_11.num_pmics); break; case SOCINFO_VERSION(0, 12): 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\n", f_maj, f_min, socinfo->v0_1.id, v_maj, v_min, socinfo->v0_2.raw_id, socinfo->v0_2.raw_version, socinfo->v0_3.hw_platform, socinfo->v0_4.platform_version, socinfo->v0_5.accessory_chip, socinfo->v0_6.hw_platform_subtype, socinfo->v0_7.pmic_model, socinfo->v0_7.pmic_die_revision, socinfo->v0_9.foundry_id, socinfo->v0_10.serial_number, socinfo->v0_11.num_pmics, socinfo->v0_12.chip_family, socinfo->v0_12.raw_device_family, socinfo->v0_12.raw_device_number); break; default: pr_err("Unknown format found: v%u.%u\n", f_maj, f_min); break; Loading