On 4/5/2025 4:15 AM, Konrad Dybcio wrote: > On 4/3/25 2:03 PM, Gokul Sriram Palanisamy wrote: >> Introduce a helper to return the machid which is used to identify the >> specific board variant derived from the same SoC. >> >> Signed-off-by: Gokul Sriram Palanisamy <[email protected]> >> --- >> drivers/soc/qcom/smem.c | 26 ++++++++++++++++++++++++++ >> include/linux/soc/qcom/smem.h | 1 + >> 2 files changed, 27 insertions(+) >> >> diff --git a/drivers/soc/qcom/smem.c b/drivers/soc/qcom/smem.c >> index 592819701809..327f7358191d 100644 >> --- a/drivers/soc/qcom/smem.c >> +++ b/drivers/soc/qcom/smem.c >> @@ -827,6 +827,32 @@ int qcom_smem_get_soc_id(u32 *id) >> } >> EXPORT_SYMBOL_GPL(qcom_smem_get_soc_id); >> >> +/** >> + * qcom_smem_get_machid() - return the machid >> + * @id: On success, we return the machid here. >> + * >> + * generate machid from HW/SW build ID and return it. >> + * >> + * Return: 0 on success, negative errno on failure. >> + */ >> + >> +int qcom_smem_get_machid(u32 *id) >> +{ >> + struct socinfo *info; >> + >> + info = qcom_smem_get(QCOM_SMEM_HOST_ANY, SMEM_HW_SW_BUILD_ID, NULL); >> + if (IS_ERR(info)) >> + return PTR_ERR(info); >> + >> + *id = ((info->hw_plat << 24) | >> + (((info->plat_ver & 0xffff0000) >> 16) << 16) | >> + ((info->plat_ver & 0x0000ffff) << 8) | >> + (info->hw_plat_subtype)); > FIELD_PREP + GENMASK, not raw bit ops, please > > Is this format specific to this usecase, or is it used more widely? > If the former, it may be better to export these variables separately > and combine them into this specific combination of fields in the > consumer > This is specific to this usecase. Will use FIELD_PREP and GENMASK.
Regards, Gokul
