Merge "msm: ipa4: Send new QMI indication message to modem for RSC pipe"

This commit is contained in:
qctecmdr 2019-07-17 16:55:37 -07:00 committed by Gerrit - the friendly Code Review server
commit 87e33d2e3a
3 changed files with 48 additions and 0 deletions

View File

@ -2162,6 +2162,22 @@ int ipa3_qmi_send_mhi_cleanup_request(struct ipa_mhi_cleanup_req_msg_v01 *req)
resp.resp.error, "ipa_mhi_cleanup_req_msg");
}
int ipa3_qmi_send_rsc_pipe_indication(
struct ipa_endp_desc_indication_msg_v01 *req)
{
IPAWANDBG("Sending QMI_IPA_ENDP_DESC_INDICATION_V01\n");
if (unlikely(!ipa3_svc_handle))
return -ETIMEDOUT;
return qmi_send_indication(ipa3_svc_handle,
&ipa3_qmi_ctx->client_sq,
QMI_IPA_ENDP_DESC_INDICATION_V01,
IPA_ENDP_DESC_INDICATION_MSG_V01_MAX_MSG_LEN,
ipa_endp_desc_indication_msg_v01_ei,
req);
}
void ipa3_qmi_init(void)
{
mutex_init(&ipa3_qmi_lock);

View File

@ -333,6 +333,9 @@ int ipa3_qmi_get_per_client_packet_stats(
int ipa3_qmi_send_mhi_ready_indication(
struct ipa_mhi_ready_indication_msg_v01 *req);
int ipa3_qmi_send_rsc_pipe_indication(
struct ipa_endp_desc_indication_msg_v01 *req);
int ipa3_qmi_send_mhi_cleanup_request(struct ipa_mhi_cleanup_req_msg_v01 *req);
void ipa3_qmi_init(void);
@ -475,6 +478,12 @@ static inline int ipa3_qmi_send_mhi_ready_indication(
return -EPERM;
}
static int ipa3_qmi_send_rsc_pipe_indication(
struct ipa_endp_desc_indication_msg_v01 *req)
{
return -EPERM;
}
static inline int ipa3_qmi_send_mhi_cleanup_request(
struct ipa_mhi_cleanup_req_msg_v01 *req)
{

View File

@ -1427,6 +1427,26 @@ static void apps_ipa_packet_receive_notify(void *priv,
}
}
/* 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;
struct ipa_ep_id_type_v01 *ep_info;
memset(&req, 0, sizeof(struct ipa_endp_desc_indication_msg_v01));
req.ep_info_len = 1;
req.ep_info_valid = true;
req.num_eps_valid = true;
req.num_eps = 1;
ep_info = &req.ep_info[req.ep_info_len - 1];
ep_info->ep_id = rmnet_ipa3_ctx->ipa3_to_apps_hdl;
ep_info->ic_type = DATA_IC_TYPE_AP_V01;
ep_info->ep_type = DATA_EP_DESC_TYPE_RSC_PROD_V01;
ep_info->ep_status = DATA_EP_STATUS_CONNECTED_V01;
return ipa3_qmi_send_rsc_pipe_indication(&req);
}
static int handle3_ingress_format(struct net_device *dev,
struct rmnet_ioctl_extended_s *in)
{
@ -1528,6 +1548,9 @@ static int handle3_ingress_format(struct net_device *dev,
if (ret)
ipa3_del_a7_qmap_hdr();
/* Sending QMI indication message share RSC pipe details*/
if (dev->features & NETIF_F_GRO_HW)
ipa_send_rsc_pipe_ind_to_modem();
end:
if (ret)
IPAWANERR("failed to configure ingress\n");