From 8b21220a05eb19bfbde15285ec33bf282ff08e5a Mon Sep 17 00:00:00 2001 From: Shivendra Kakrania Date: Mon, 14 Sep 2020 13:16:17 -0700 Subject: [PATCH] soc: mmrm: Adding domain info to identify the clients accurately Along with client id, client domain info is also required by mmrm driver to identify & register clients accurately. Change-Id: I516749c363474604b4b24f967c1068f8d48d90a7 Signed-off-by: Shivendra Kakrania --- include/linux/soc/qcom/msm_mmrm.h | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/include/linux/soc/qcom/msm_mmrm.h b/include/linux/soc/qcom/msm_mmrm.h index ad2db07b8e20..ceab5a962411 100644 --- a/include/linux/soc/qcom/msm_mmrm.h +++ b/include/linux/soc/qcom/msm_mmrm.h @@ -11,6 +11,17 @@ #define MMRM_CLK_CLIENT_NAME_SIZE 128 +/** + * mmrm_client_domain : MMRM client domain + * Clients need to configure this in mmrm_clk_client_desc + */ +enum mmrm_client_domain { + MMRM_CLIENT_DOMAIN_CAMERA = 0x1, + MMRM_CLIENT_DOMAIN_CVP = 0x2, + MMRM_CLIENT_DOMAIN_DISPLAY = 0x3, + MMRM_CLIENT_DOMAIN_VIDEO = 0x4, +}; + /** * mmrm_client_type : MMRM Client type */ @@ -98,11 +109,13 @@ struct mmrm_client { /** * mmrm_clk_client_desc : MMRM clock client descriptor used * for registering client - * @client_id: Client provides this info as one of CLK_SRC_XXXX + * @client_domain: Client provides MMRM_CLIENT_DOMAIN_XXXX + * @client_id: Client provides CLK_SRC_XXXX id * @name : Client name * @clk : Pointer to clock struct */ struct mmrm_clk_client_desc { + u32 client_domain; u32 client_id; const char name[MMRM_CLK_CLIENT_NAME_SIZE]; struct clk *clk; @@ -122,7 +135,7 @@ struct mmrm_clk_client_desc { struct mmrm_client_desc { enum mmrm_client_type client_type; union { - mmrm_clk_client_desc desc; + struct mmrm_clk_client_desc desc; } client_info; enum mmrm_client_priority priority; void *pvt_data; @@ -218,13 +231,13 @@ static inline int mmrm_client_deregister(struct mmrm_client *client) } static inline int mmrm_client_set_value(struct mmrm_client *client, - struct mmrm_client_set_data *client_data, unsigned long val) + struct mmrm_client_data *client_data, unsigned long val) { return -EINVAL; } static inline int mmrm_client_set_value_in_range(struct mmrm_client *client, - struct mmrm_client_set_data *client_data, + struct mmrm_client_data *client_data, struct mmrm_client_res_value *val) { return -EINVAL;