[PATCH v10 0/2] soc: qcom: Add SoC info driver

From: Imran Khan
Date: Mon Feb 20 2017 - 11:47:59 EST

This is patchset v10, it takes care of review comments provided in
v8 and v9.

v9 --> v10:
- Removed version specific socinfo objects.
- Added a couple of PMIC models in pmic_model array.
- Corrected interpretation of PMIC information related
v8 --> v9:
- Removed qcom_odm attribute.
- Re-introduce soc_of_id array to map soc-id
into human readable string.
v7 --> v8:
- Fixed compilation warning detected in v7
v6 --> v7:
- Some minor style changes
- Rather than showing string for h/w types, just show the
number obtained from SMEM. The reader of this number
is supposed to parse this into a human readable string
as this information may be different for different ODMs
- Create an attribute 'qcom_odm' depending on the presence
of corresponding property in SMEM DT entry. This information
can be used for ODM specific interpretation of SMEM socinfo
- Read machine value from DT, rather than using soc-id as index
in an ever increasing array of machine names

v5 --> v6:
- use dev_ext_attribute to represent SMEM image items
- Avoid redundant function calls
- Avoid use of unnecessary global variables
- Remove redundant enums
- Avoid redundant checking of socinfo being NULL or not
- Avoid redundant checking of socinfo format version
- Rename show/store function of attributes as _show/_store
rather than _get/_set
- Use an array to represent socinfo attributes and create
attribute files in a loop depending on the minimum
socinfo format version for which these attributes are
- if obtained socinfo format version is greater than the
maximum known version return an error rather than falling
back to maximum known version

v4 --> v5:
- Removed redundant function socinfo_print

v3 --> v4:
- Corrected makefile so that smem and socinfo are treated as one module
- Moved the code snippet to get socinfo smem item into socinfo.c
- Removed redundant use of socinfo major version as it is always zero
- Removed unused enums
- Removed redundant indirections
- Use image_version object to store information about each entry in the
smem image table
- Replaced usage of snprintf with sprintf and scnprintf
- Get the address of image version table at the beginning and setup
image version attributes only if image version table is available
- Do the same for platform_subtype
- Make different type of image version objects read only or readable/
writable depending on their types. For example apps image attributes
can be modified via sysfs but the same can't be done for modem image
- Show PMIC model in a human readable form rather than a numeric number
- Avoid using table in single sysfs entry
- Removed checkpatch warnings about S_IRUGO

v2 --> v3:
- Add support to toss soc information data into entropy pool
- Since socinfo is rolled into smem driver, compile the
relevant portion of socinfo driver with smem driver

v1 --> v2:
- Removed inclusion of system_misc.h
- merged socinfo.h into socinfo.c
- made platform type and subtype arrays static
- replaced uint32_t with u32
- made functions static to avoid exposing vendor specific interface
- Replaced usage of IS_ERR_OR_NULL with IS_ERR.
- Remove raw-id attribute usage as human readable soc-id will suffice here
- Avoid using a separate platform driver for socinfo by rolling it into smem driver itself.
The sysfs setup is being done in a separate file (socinfo.c)
- For failure cases where socinfo can not be read use a single dummy socinfo with error values.
- Removed usage of early_machine_is_xxx.

Imran Khan (2):
soc: qcom: Add SoC info driver
Documentation/ABI: Add ABI infomation for QCOM socinfo driver

.../ABI/testing/sysfs-driver-qcom_socinfo | 171 +++++++
drivers/soc/qcom/Kconfig | 1 +
drivers/soc/qcom/Makefile | 3 +-
drivers/soc/qcom/smem.c | 5 +
drivers/soc/qcom/socinfo.c | 518 +++++++++++++++++++++
5 files changed, 697 insertions(+), 1 deletion(-)
create mode 100644 Documentation/ABI/testing/sysfs-driver-qcom_socinfo
create mode 100644 drivers/soc/qcom/socinfo.c

The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project