Loading drivers/platform/msm/ipa/ipa_v3/ipa_mhi.c +0 −40 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ #include <linux/ipa_mhi.h> #include "../ipa_common_i.h" #include "ipa_i.h" #include "ipa_qmi_service.h" #define IPA_MHI_DRV_NAME "ipa_mhi" Loading Loading @@ -106,33 +105,6 @@ bool ipa3_mhi_stop_gsi_channel(enum ipa_client_type client) return false; } static int ipa3_mhi_send_endp_ind_to_modem(void) { struct ipa_endp_desc_indication_msg_v01 req; struct ipa_ep_id_type_v01 *ep_info; int ipa_mhi_prod_ep_idx = ipa3_get_ep_mapping(IPA_CLIENT_MHI_LOW_LAT_PROD); int ipa_mhi_cons_ep_idx = ipa3_get_ep_mapping(IPA_CLIENT_MHI_LOW_LAT_CONS); memset(&req, 0, sizeof(struct ipa_endp_desc_indication_msg_v01)); req.ep_info_len = 2; req.ep_info_valid = true; req.num_eps_valid = true; req.num_eps = 2; ep_info = &req.ep_info[0]; ep_info->ep_id = ipa_mhi_cons_ep_idx; ep_info->ic_type = DATA_IC_TYPE_MHI_V01; ep_info->ep_type = DATA_EP_DESC_TYPE_EMB_FLOW_CTL_PROD_V01; ep_info->ep_status = DATA_EP_STATUS_CONNECTED_V01; ep_info = &req.ep_info[1]; ep_info->ep_id = ipa_mhi_prod_ep_idx; ep_info->ic_type = DATA_IC_TYPE_MHI_V01; ep_info->ep_type = DATA_EP_DESC_TYPE_EMB_FLOW_CTL_CONS_V01; ep_info->ep_status = DATA_EP_STATUS_CONNECTED_V01; return ipa3_qmi_send_endp_desc_indication(&req); } static int ipa3_mhi_reset_gsi_channel(enum ipa_client_type client) { int res; Loading Loading @@ -553,10 +525,6 @@ int ipa3_connect_mhi_pipe(struct ipa_mhi_connect_params_internal *in, int ipa_ep_idx; int res; enum ipa_client_type client; int ipa_mhi_prod_ep_idx = ipa3_get_ep_mapping(IPA_CLIENT_MHI_LOW_LAT_PROD); int ipa_mhi_cons_ep_idx = ipa3_get_ep_mapping(IPA_CLIENT_MHI_LOW_LAT_CONS); IPA_MHI_FUNC_ENTRY(); Loading Loading @@ -602,14 +570,6 @@ int ipa3_connect_mhi_pipe(struct ipa_mhi_connect_params_internal *in, ipa3_ctx->skip_ep_cfg_shadow[ipa_ep_idx] = ep->skip_ep_cfg; IPA_MHI_DBG("client %d (ep: %d) connected\n", client, ipa_ep_idx); if ((client == IPA_CLIENT_MHI_LOW_LAT_PROD || client == IPA_CLIENT_MHI_LOW_LAT_CONS) && ipa_mhi_prod_ep_idx != -1 && ipa3_ctx->ep[ipa_mhi_prod_ep_idx].valid && ipa_mhi_cons_ep_idx != -1 && ipa3_ctx->ep[ipa_mhi_cons_ep_idx].valid) ipa3_mhi_send_endp_ind_to_modem(); IPA_MHI_FUNC_EXIT(); return 0; Loading drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c +31 −1 Original line number Diff line number Diff line Loading @@ -1486,8 +1486,35 @@ static void apps_ipa_packet_receive_notify(void *priv, } } /* Send RSC endpoint info to modem using QMI indication message */ /* Send MHI endpoint info to modem using QMI indication message */ static int ipa_send_mhi_endp_ind_to_modem(void) { struct ipa_endp_desc_indication_msg_v01 req; struct ipa_ep_id_type_v01 *ep_info; int ipa_mhi_prod_ep_idx = ipa3_get_ep_mapping(IPA_CLIENT_MHI_LOW_LAT_PROD); int ipa_mhi_cons_ep_idx = ipa3_get_ep_mapping(IPA_CLIENT_MHI_LOW_LAT_CONS); memset(&req, 0, sizeof(struct ipa_endp_desc_indication_msg_v01)); req.ep_info_len = 2; req.ep_info_valid = true; req.num_eps_valid = true; req.num_eps = 2; ep_info = &req.ep_info[0]; ep_info->ep_id = ipa_mhi_cons_ep_idx; ep_info->ic_type = DATA_IC_TYPE_MHI_V01; ep_info->ep_type = DATA_EP_DESC_TYPE_EMB_FLOW_CTL_PROD_V01; ep_info->ep_status = DATA_EP_STATUS_CONNECTED_V01; ep_info = &req.ep_info[1]; ep_info->ep_id = ipa_mhi_prod_ep_idx; ep_info->ic_type = DATA_IC_TYPE_MHI_V01; ep_info->ep_type = DATA_EP_DESC_TYPE_EMB_FLOW_CTL_CONS_V01; ep_info->ep_status = DATA_EP_STATUS_CONNECTED_V01; return ipa3_qmi_send_endp_desc_indication(&req); } /* Send RSC endpoint info to modem using QMI indication message */ static int ipa_send_rsc_pipe_ind_to_modem(void) { struct ipa_endp_desc_indication_msg_v01 req; Loading Loading @@ -4137,6 +4164,9 @@ void ipa3_q6_handshake_complete(bool ssr_bootup) } if (ipa3_ctx->ipa_mhi_proxy) imp_handle_modem_ready(); if (ipa3_ctx->ipa_config_is_mhi) ipa_send_mhi_endp_ind_to_modem(); } static inline bool rmnet_ipa3_check_any_client_inited Loading Loading
drivers/platform/msm/ipa/ipa_v3/ipa_mhi.c +0 −40 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ #include <linux/ipa_mhi.h> #include "../ipa_common_i.h" #include "ipa_i.h" #include "ipa_qmi_service.h" #define IPA_MHI_DRV_NAME "ipa_mhi" Loading Loading @@ -106,33 +105,6 @@ bool ipa3_mhi_stop_gsi_channel(enum ipa_client_type client) return false; } static int ipa3_mhi_send_endp_ind_to_modem(void) { struct ipa_endp_desc_indication_msg_v01 req; struct ipa_ep_id_type_v01 *ep_info; int ipa_mhi_prod_ep_idx = ipa3_get_ep_mapping(IPA_CLIENT_MHI_LOW_LAT_PROD); int ipa_mhi_cons_ep_idx = ipa3_get_ep_mapping(IPA_CLIENT_MHI_LOW_LAT_CONS); memset(&req, 0, sizeof(struct ipa_endp_desc_indication_msg_v01)); req.ep_info_len = 2; req.ep_info_valid = true; req.num_eps_valid = true; req.num_eps = 2; ep_info = &req.ep_info[0]; ep_info->ep_id = ipa_mhi_cons_ep_idx; ep_info->ic_type = DATA_IC_TYPE_MHI_V01; ep_info->ep_type = DATA_EP_DESC_TYPE_EMB_FLOW_CTL_PROD_V01; ep_info->ep_status = DATA_EP_STATUS_CONNECTED_V01; ep_info = &req.ep_info[1]; ep_info->ep_id = ipa_mhi_prod_ep_idx; ep_info->ic_type = DATA_IC_TYPE_MHI_V01; ep_info->ep_type = DATA_EP_DESC_TYPE_EMB_FLOW_CTL_CONS_V01; ep_info->ep_status = DATA_EP_STATUS_CONNECTED_V01; return ipa3_qmi_send_endp_desc_indication(&req); } static int ipa3_mhi_reset_gsi_channel(enum ipa_client_type client) { int res; Loading Loading @@ -553,10 +525,6 @@ int ipa3_connect_mhi_pipe(struct ipa_mhi_connect_params_internal *in, int ipa_ep_idx; int res; enum ipa_client_type client; int ipa_mhi_prod_ep_idx = ipa3_get_ep_mapping(IPA_CLIENT_MHI_LOW_LAT_PROD); int ipa_mhi_cons_ep_idx = ipa3_get_ep_mapping(IPA_CLIENT_MHI_LOW_LAT_CONS); IPA_MHI_FUNC_ENTRY(); Loading Loading @@ -602,14 +570,6 @@ int ipa3_connect_mhi_pipe(struct ipa_mhi_connect_params_internal *in, ipa3_ctx->skip_ep_cfg_shadow[ipa_ep_idx] = ep->skip_ep_cfg; IPA_MHI_DBG("client %d (ep: %d) connected\n", client, ipa_ep_idx); if ((client == IPA_CLIENT_MHI_LOW_LAT_PROD || client == IPA_CLIENT_MHI_LOW_LAT_CONS) && ipa_mhi_prod_ep_idx != -1 && ipa3_ctx->ep[ipa_mhi_prod_ep_idx].valid && ipa_mhi_cons_ep_idx != -1 && ipa3_ctx->ep[ipa_mhi_cons_ep_idx].valid) ipa3_mhi_send_endp_ind_to_modem(); IPA_MHI_FUNC_EXIT(); return 0; Loading
drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c +31 −1 Original line number Diff line number Diff line Loading @@ -1486,8 +1486,35 @@ static void apps_ipa_packet_receive_notify(void *priv, } } /* Send RSC endpoint info to modem using QMI indication message */ /* Send MHI endpoint info to modem using QMI indication message */ static int ipa_send_mhi_endp_ind_to_modem(void) { struct ipa_endp_desc_indication_msg_v01 req; struct ipa_ep_id_type_v01 *ep_info; int ipa_mhi_prod_ep_idx = ipa3_get_ep_mapping(IPA_CLIENT_MHI_LOW_LAT_PROD); int ipa_mhi_cons_ep_idx = ipa3_get_ep_mapping(IPA_CLIENT_MHI_LOW_LAT_CONS); memset(&req, 0, sizeof(struct ipa_endp_desc_indication_msg_v01)); req.ep_info_len = 2; req.ep_info_valid = true; req.num_eps_valid = true; req.num_eps = 2; ep_info = &req.ep_info[0]; ep_info->ep_id = ipa_mhi_cons_ep_idx; ep_info->ic_type = DATA_IC_TYPE_MHI_V01; ep_info->ep_type = DATA_EP_DESC_TYPE_EMB_FLOW_CTL_PROD_V01; ep_info->ep_status = DATA_EP_STATUS_CONNECTED_V01; ep_info = &req.ep_info[1]; ep_info->ep_id = ipa_mhi_prod_ep_idx; ep_info->ic_type = DATA_IC_TYPE_MHI_V01; ep_info->ep_type = DATA_EP_DESC_TYPE_EMB_FLOW_CTL_CONS_V01; ep_info->ep_status = DATA_EP_STATUS_CONNECTED_V01; return ipa3_qmi_send_endp_desc_indication(&req); } /* Send RSC endpoint info to modem using QMI indication message */ static int ipa_send_rsc_pipe_ind_to_modem(void) { struct ipa_endp_desc_indication_msg_v01 req; Loading Loading @@ -4137,6 +4164,9 @@ void ipa3_q6_handshake_complete(bool ssr_bootup) } if (ipa3_ctx->ipa_mhi_proxy) imp_handle_modem_ready(); if (ipa3_ctx->ipa_config_is_mhi) ipa_send_mhi_endp_ind_to_modem(); } static inline bool rmnet_ipa3_check_any_client_inited Loading