Merge "msm: ipa4: Send new QMI indication message to modem for RSC pipe"
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

commit
87e33d2e3a
@@ -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");
|
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)
|
void ipa3_qmi_init(void)
|
||||||
{
|
{
|
||||||
mutex_init(&ipa3_qmi_lock);
|
mutex_init(&ipa3_qmi_lock);
|
||||||
|
@@ -333,6 +333,9 @@ int ipa3_qmi_get_per_client_packet_stats(
|
|||||||
int ipa3_qmi_send_mhi_ready_indication(
|
int ipa3_qmi_send_mhi_ready_indication(
|
||||||
struct ipa_mhi_ready_indication_msg_v01 *req);
|
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);
|
int ipa3_qmi_send_mhi_cleanup_request(struct ipa_mhi_cleanup_req_msg_v01 *req);
|
||||||
|
|
||||||
void ipa3_qmi_init(void);
|
void ipa3_qmi_init(void);
|
||||||
@@ -475,6 +478,12 @@ static inline int ipa3_qmi_send_mhi_ready_indication(
|
|||||||
return -EPERM;
|
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(
|
static inline int ipa3_qmi_send_mhi_cleanup_request(
|
||||||
struct ipa_mhi_cleanup_req_msg_v01 *req)
|
struct ipa_mhi_cleanup_req_msg_v01 *req)
|
||||||
{
|
{
|
||||||
|
@@ -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,
|
static int handle3_ingress_format(struct net_device *dev,
|
||||||
struct rmnet_ioctl_extended_s *in)
|
struct rmnet_ioctl_extended_s *in)
|
||||||
{
|
{
|
||||||
@@ -1528,6 +1548,9 @@ static int handle3_ingress_format(struct net_device *dev,
|
|||||||
if (ret)
|
if (ret)
|
||||||
ipa3_del_a7_qmap_hdr();
|
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:
|
end:
|
||||||
if (ret)
|
if (ret)
|
||||||
IPAWANERR("failed to configure ingress\n");
|
IPAWANERR("failed to configure ingress\n");
|
||||||
|
Reference in New Issue
Block a user