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


Reply via email to