msm: ipa_fwmk: Provide api for mhi driver to update state

Provide api for mhi driver to notify IPA of power states.

Change-Id: I757b15e3c16bcb63cb09bb18a2056f07c6a9b95d
Signed-off-by: Akshay Pandit <pandit@codeaurora.org>
This commit is contained in:
Akshay Pandit 2020-11-10 21:23:09 +05:30
parent 043cae74b2
commit 5148b81b04
2 changed files with 17 additions and 1 deletions

View File

@ -319,6 +319,8 @@ struct ipa_fmwk_contex {
int (*ipa_mhi_handle_ipa_config_req)( int (*ipa_mhi_handle_ipa_config_req)(
struct ipa_config_req_msg_v01 *config_req); struct ipa_config_req_msg_v01 *config_req);
int (*ipa_mhi_update_mstate)(enum ipa_mhi_mstate mstate_info);
/* ipa_wigig APIs */ /* ipa_wigig APIs */
int (*ipa_wigig_init)(struct ipa_wigig_init_in_params *in, int (*ipa_wigig_init)(struct ipa_wigig_init_in_params *in,
struct ipa_wigig_init_out_params *out); struct ipa_wigig_init_out_params *out);
@ -1451,7 +1453,8 @@ int ipa_fmwk_register_ipa_mhi(const struct ipa_mhi_data *in)
|| ipa_fmwk_ctx->ipa_mhi_suspend || ipa_fmwk_ctx->ipa_mhi_suspend
|| ipa_fmwk_ctx->ipa_mhi_resume || ipa_fmwk_ctx->ipa_mhi_resume
|| ipa_fmwk_ctx->ipa_mhi_destroy || ipa_fmwk_ctx->ipa_mhi_destroy
|| ipa_fmwk_ctx->ipa_mhi_handle_ipa_config_req) { || ipa_fmwk_ctx->ipa_mhi_handle_ipa_config_req
|| ipa_fmwk_ctx->ipa_mhi_update_mstate) {
pr_err("ipa_mhi APIs were already initialized\n"); pr_err("ipa_mhi APIs were already initialized\n");
return -EPERM; return -EPERM;
} }
@ -1465,6 +1468,7 @@ int ipa_fmwk_register_ipa_mhi(const struct ipa_mhi_data *in)
ipa_fmwk_ctx->ipa_mhi_destroy = in->ipa_mhi_destroy; ipa_fmwk_ctx->ipa_mhi_destroy = in->ipa_mhi_destroy;
ipa_fmwk_ctx->ipa_mhi_handle_ipa_config_req = ipa_fmwk_ctx->ipa_mhi_handle_ipa_config_req =
in->ipa_mhi_handle_ipa_config_req; in->ipa_mhi_handle_ipa_config_req;
ipa_fmwk_ctx->ipa_mhi_update_mstate = in->ipa_mhi_update_mstate;
pr_info("ipa_mhi registered successfully\n"); pr_info("ipa_mhi registered successfully\n");
@ -1555,6 +1559,16 @@ int ipa_mhi_handle_ipa_config_req(struct ipa_config_req_msg_v01 *config_req)
} }
EXPORT_SYMBOL(ipa_mhi_handle_ipa_config_req); EXPORT_SYMBOL(ipa_mhi_handle_ipa_config_req);
int ipa_mhi_update_mstate(enum ipa_mhi_mstate mstate_info)
{
int ret;
IPA_FMWK_DISPATCH_RETURN(ipa_mhi_update_mstate, mstate_info);
return ret;
}
EXPORT_SYMBOL(ipa_mhi_update_mstate);
/* registration API for IPA wigig module */ /* registration API for IPA wigig module */
int ipa_fmwk_register_ipa_wigig(const struct ipa_wigig_data *in) int ipa_fmwk_register_ipa_wigig(const struct ipa_wigig_data *in)
{ {

View File

@ -227,6 +227,8 @@ struct ipa_mhi_data {
int (*ipa_mhi_handle_ipa_config_req)( int (*ipa_mhi_handle_ipa_config_req)(
struct ipa_config_req_msg_v01 *config_req); struct ipa_config_req_msg_v01 *config_req);
int (*ipa_mhi_update_mstate)(enum ipa_mhi_mstate mstate_info);
}; };
struct ipa_wigig_data { struct ipa_wigig_data {