[PATCH v4 1/4] soc: qcom: cmd-db: Add cmd_db_read_slave_id() & cmd_db_read_aux_data() functions

neil.armstrong at linaro.org neil.armstrong at linaro.org
Tue Jul 22 11:02:52 CEST 2025


On 11/07/2025 16:38, Aswin Murugan wrote:
> Partially reverted commit "soc: qcom: cmd-db: drop unused
> functions" by restoring only the cmd_db_read_slave_id() and
> cmd_db_read_aux_data() functions, which were removed in that
> commit. These functions are required for the RPMH Power Domain
> Driver.
> 
> Signed-off-by: Balaji Selvanathan <balaji.selvanathan at oss.qualcomm.com>
> Signed-off-by: Aswin Murugan <aswin.murugan at oss.qualcomm.com>
> ---
> v4:
> - Moved this change before the RPMH Power Domain Driver change
> 
> v3:
> - No changes to this patch in v3
> 
> v2:
> - No changes to this patch in v2
> ---
>   drivers/soc/qcom/cmd-db.c | 45 +++++++++++++++++++++++++++++++++++++++
>   include/soc/qcom/cmd-db.h |  2 ++
>   2 files changed, 47 insertions(+)
> 
> diff --git a/drivers/soc/qcom/cmd-db.c b/drivers/soc/qcom/cmd-db.c
> index 67be18e89f4..d0a6047b8a6 100644
> --- a/drivers/soc/qcom/cmd-db.c
> +++ b/drivers/soc/qcom/cmd-db.c
> @@ -183,6 +183,51 @@ u32 cmd_db_read_addr(const char *id)
>   }
>   EXPORT_SYMBOL_GPL(cmd_db_read_addr);
>   
> +/**
> + * cmd_db_read_slave_id - Get the slave ID for a given resource address
> + *
> + * @id: Resource id to query the DB for version
> + *
> + * Return: cmd_db_hw_type enum on success, CMD_DB_HW_INVALID on error
> + */
> +enum cmd_db_hw_type cmd_db_read_slave_id(const char *id)
> +{
> +	int ret;
> +	const struct entry_header *ent;
> +	u32 addr;
> +
> +	ret = cmd_db_get_header(id, &ent, NULL);
> +	if (ret < 0)
> +		return CMD_DB_HW_INVALID;
> +
> +	addr = le32_to_cpu(ent->addr);
> +	return (addr >> SLAVE_ID_SHIFT) & SLAVE_ID_MASK;
> +}
> +
> +/**
> + * cmd_db_read_aux_data() - Query command db for aux data.
> + *
> + *  @id: Resource to retrieve AUX Data on
> + *  @len: size of data buffer returned
> + *
> + *  Return: pointer to data on success, error pointer otherwise
> + */
> +const void *cmd_db_read_aux_data(const char *id, size_t *len)
> +{
> +	int ret;
> +	const struct entry_header *ent;
> +	const struct rsc_hdr *rsc_hdr;
> +
> +	ret = cmd_db_get_header(id, &ent, &rsc_hdr);
> +	if (ret)
> +		return ERR_PTR(ret);
> +
> +	if (len)
> +		*len = le16_to_cpu(ent->len);
> +
> +	return rsc_offset(rsc_hdr, ent);
> +}
> +
>   static int cmd_db_bind(struct udevice *dev)
>   {
>   	void __iomem *base;
> diff --git a/include/soc/qcom/cmd-db.h b/include/soc/qcom/cmd-db.h
> index 1190f2c22ca..16609ac9d78 100644
> --- a/include/soc/qcom/cmd-db.h
> +++ b/include/soc/qcom/cmd-db.h
> @@ -21,6 +21,8 @@ enum cmd_db_hw_type {
>   
>   #if IS_ENABLED(CONFIG_QCOM_COMMAND_DB)
>   u32 cmd_db_read_addr(const char *resource_id);
> +enum cmd_db_hw_type cmd_db_read_slave_id(const char *resource_id);
> +const void *cmd_db_read_aux_data(const char *resource_id, size_t *len);
>   
>   #else
>   static inline u32 cmd_db_read_addr(const char *resource_id)

Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>


More information about the U-Boot mailing list