Loading arch/arm64/boot/dts/qcom/sm8150-sdx50m.dtsi +10 −0 Original line number Diff line number Diff line Loading @@ -54,3 +54,13 @@ &pcie1 { dma-coherent; }; &soc { imp: qcom,ipa-mhi-proxy { compatible = "qcom,ipa-mhi-proxy"; qcom,ctrl-iova = <0x00010000 0x0FFF0000>; qcom,data-iova = <0x10000000 0x0FFFFFFF>; qcom,mhi-chdb-base = <0x40300300>; qcom,mhi-erdb-base = <0x40300700>; }; }; drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c +15 −12 Original line number Diff line number Diff line Loading @@ -71,6 +71,9 @@ static void ipa3_handle_indication_req(struct qmi_handle *qmi_handle, indication_req = (struct ipa_indication_reg_req_msg_v01 *)decoded_msg; IPAWANDBG("Received INDICATION Request\n"); /* cache the client sq */ memcpy(&ipa3_qmi_ctx->client_sq, sq, sizeof(*sq)); memset(&resp, 0, sizeof(struct ipa_indication_reg_resp_msg_v01)); resp.resp.result = IPA_QMI_RESULT_SUCCESS_V01; Loading @@ -97,7 +100,7 @@ static void ipa3_handle_indication_req(struct qmi_handle *qmi_handle, IPA_QMI_RESULT_SUCCESS_V01; rc = qmi_send_indication(qmi_handle, &(ipa3_qmi_ctx->ipa_q6_client_params.sq), &(ipa3_qmi_ctx->client_sq), QMI_IPA_MASTER_DRIVER_INIT_COMPLETE_IND_V01, QMI_IPA_MASTER_DRIVER_INIT_COMPLETE_IND_MAX_MSG_LEN_V01, ipa3_master_driver_init_complt_ind_msg_data_v01_ei, Loading Loading @@ -385,7 +388,7 @@ static int ipa3_qmi_send_req_wait(struct qmi_handle *client_handle, } ret = qmi_send_request(client_handle, &ipa3_qmi_ctx->ipa_q6_client_params.sq, &ipa3_qmi_ctx->server_sq, &txn, req_desc->msg_id, req_desc->max_msg_len, Loading Loading @@ -1048,8 +1051,8 @@ static void ipa3_q6_clnt_svc_arrive(struct work_struct *work) struct ipa_master_driver_init_complt_ind_msg_v01 ind; rc = kernel_connect(ipa_q6_clnt->sock, (struct sockaddr *) &ipa3_qmi_ctx->ipa_q6_client_params.sq, sizeof(ipa3_qmi_ctx->ipa_q6_client_params.sq), (struct sockaddr *) &ipa3_qmi_ctx->server_sq, sizeof(ipa3_qmi_ctx->server_sq), 0); if (rc < 0) { Loading Loading @@ -1104,7 +1107,7 @@ static void ipa3_q6_clnt_svc_arrive(struct work_struct *work) IPA_QMI_RESULT_SUCCESS_V01; rc = qmi_send_indication(ipa3_svc_handle, &ipa3_qmi_ctx->ipa_q6_client_params.sq, &ipa3_qmi_ctx->client_sq, QMI_IPA_MASTER_DRIVER_INIT_COMPLETE_IND_V01, QMI_IPA_MASTER_DRIVER_INIT_COMPLETE_IND_MAX_MSG_LEN_V01, ipa3_master_driver_init_complt_ind_msg_data_v01_ei, Loading @@ -1119,9 +1122,9 @@ static void ipa3_q6_clnt_svc_arrive(struct work_struct *work) static void ipa3_q6_clnt_svc_exit(struct work_struct *work) { ipa3_qmi_ctx->ipa_q6_client_params.sq.sq_family = 0; ipa3_qmi_ctx->ipa_q6_client_params.sq.sq_node = 0; ipa3_qmi_ctx->ipa_q6_client_params.sq.sq_port = 0; ipa3_qmi_ctx->server_sq.sq_family = 0; ipa3_qmi_ctx->server_sq.sq_node = 0; ipa3_qmi_ctx->server_sq.sq_port = 0; } static int ipa3_q6_clnt_svc_event_notify_svc_new(struct qmi_handle *qmi, Loading @@ -1131,9 +1134,9 @@ static int ipa3_q6_clnt_svc_event_notify_svc_new(struct qmi_handle *qmi, service->service, service->version, service->instance, service->node, service->port); ipa3_qmi_ctx->ipa_q6_client_params.sq.sq_family = AF_QIPCRTR; ipa3_qmi_ctx->ipa_q6_client_params.sq.sq_node = service->node; ipa3_qmi_ctx->ipa_q6_client_params.sq.sq_port = service->port; ipa3_qmi_ctx->server_sq.sq_family = AF_QIPCRTR; ipa3_qmi_ctx->server_sq.sq_node = service->node; ipa3_qmi_ctx->server_sq.sq_port = service->port; if (!workqueues_stopped) { queue_delayed_work(ipa_clnt_req_workqueue, Loading Loading @@ -1690,7 +1693,7 @@ int ipa3_qmi_send_mhi_ready_indication( return -ETIMEDOUT; return qmi_send_indication(ipa3_svc_handle, &ipa3_qmi_ctx->ipa_q6_client_params.sq, &ipa3_qmi_ctx->client_sq, QMI_IPA_MHI_READY_IND_V01, IPA_MHI_READY_INDICATION_MSG_V01_MAX_MSG_LEN, ipa_mhi_ready_indication_msg_v01_ei, Loading drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.h +2 −5 Original line number Diff line number Diff line Loading @@ -69,10 +69,6 @@ DEV_NAME " %s:%d " fmt, ## args); \ } while (0) struct ipa_q6_all_client_params { struct sockaddr_qrtr sq; }; extern struct ipa3_qmi_context *ipa3_qmi_ctx; struct ipa3_qmi_context { Loading @@ -92,7 +88,8 @@ struct ipa3_qmi_context { ipa_configure_ul_firewall_rules_req_msg_cache [MAX_NUM_QMI_RULE_CACHE]; bool modem_cfg_emb_pipe_flt; struct ipa_q6_all_client_params ipa_q6_client_params; struct sockaddr_qrtr client_sq; struct sockaddr_qrtr server_sq; }; struct ipa3_rmnet_mux_val { Loading Loading
arch/arm64/boot/dts/qcom/sm8150-sdx50m.dtsi +10 −0 Original line number Diff line number Diff line Loading @@ -54,3 +54,13 @@ &pcie1 { dma-coherent; }; &soc { imp: qcom,ipa-mhi-proxy { compatible = "qcom,ipa-mhi-proxy"; qcom,ctrl-iova = <0x00010000 0x0FFF0000>; qcom,data-iova = <0x10000000 0x0FFFFFFF>; qcom,mhi-chdb-base = <0x40300300>; qcom,mhi-erdb-base = <0x40300700>; }; };
drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c +15 −12 Original line number Diff line number Diff line Loading @@ -71,6 +71,9 @@ static void ipa3_handle_indication_req(struct qmi_handle *qmi_handle, indication_req = (struct ipa_indication_reg_req_msg_v01 *)decoded_msg; IPAWANDBG("Received INDICATION Request\n"); /* cache the client sq */ memcpy(&ipa3_qmi_ctx->client_sq, sq, sizeof(*sq)); memset(&resp, 0, sizeof(struct ipa_indication_reg_resp_msg_v01)); resp.resp.result = IPA_QMI_RESULT_SUCCESS_V01; Loading @@ -97,7 +100,7 @@ static void ipa3_handle_indication_req(struct qmi_handle *qmi_handle, IPA_QMI_RESULT_SUCCESS_V01; rc = qmi_send_indication(qmi_handle, &(ipa3_qmi_ctx->ipa_q6_client_params.sq), &(ipa3_qmi_ctx->client_sq), QMI_IPA_MASTER_DRIVER_INIT_COMPLETE_IND_V01, QMI_IPA_MASTER_DRIVER_INIT_COMPLETE_IND_MAX_MSG_LEN_V01, ipa3_master_driver_init_complt_ind_msg_data_v01_ei, Loading Loading @@ -385,7 +388,7 @@ static int ipa3_qmi_send_req_wait(struct qmi_handle *client_handle, } ret = qmi_send_request(client_handle, &ipa3_qmi_ctx->ipa_q6_client_params.sq, &ipa3_qmi_ctx->server_sq, &txn, req_desc->msg_id, req_desc->max_msg_len, Loading Loading @@ -1048,8 +1051,8 @@ static void ipa3_q6_clnt_svc_arrive(struct work_struct *work) struct ipa_master_driver_init_complt_ind_msg_v01 ind; rc = kernel_connect(ipa_q6_clnt->sock, (struct sockaddr *) &ipa3_qmi_ctx->ipa_q6_client_params.sq, sizeof(ipa3_qmi_ctx->ipa_q6_client_params.sq), (struct sockaddr *) &ipa3_qmi_ctx->server_sq, sizeof(ipa3_qmi_ctx->server_sq), 0); if (rc < 0) { Loading Loading @@ -1104,7 +1107,7 @@ static void ipa3_q6_clnt_svc_arrive(struct work_struct *work) IPA_QMI_RESULT_SUCCESS_V01; rc = qmi_send_indication(ipa3_svc_handle, &ipa3_qmi_ctx->ipa_q6_client_params.sq, &ipa3_qmi_ctx->client_sq, QMI_IPA_MASTER_DRIVER_INIT_COMPLETE_IND_V01, QMI_IPA_MASTER_DRIVER_INIT_COMPLETE_IND_MAX_MSG_LEN_V01, ipa3_master_driver_init_complt_ind_msg_data_v01_ei, Loading @@ -1119,9 +1122,9 @@ static void ipa3_q6_clnt_svc_arrive(struct work_struct *work) static void ipa3_q6_clnt_svc_exit(struct work_struct *work) { ipa3_qmi_ctx->ipa_q6_client_params.sq.sq_family = 0; ipa3_qmi_ctx->ipa_q6_client_params.sq.sq_node = 0; ipa3_qmi_ctx->ipa_q6_client_params.sq.sq_port = 0; ipa3_qmi_ctx->server_sq.sq_family = 0; ipa3_qmi_ctx->server_sq.sq_node = 0; ipa3_qmi_ctx->server_sq.sq_port = 0; } static int ipa3_q6_clnt_svc_event_notify_svc_new(struct qmi_handle *qmi, Loading @@ -1131,9 +1134,9 @@ static int ipa3_q6_clnt_svc_event_notify_svc_new(struct qmi_handle *qmi, service->service, service->version, service->instance, service->node, service->port); ipa3_qmi_ctx->ipa_q6_client_params.sq.sq_family = AF_QIPCRTR; ipa3_qmi_ctx->ipa_q6_client_params.sq.sq_node = service->node; ipa3_qmi_ctx->ipa_q6_client_params.sq.sq_port = service->port; ipa3_qmi_ctx->server_sq.sq_family = AF_QIPCRTR; ipa3_qmi_ctx->server_sq.sq_node = service->node; ipa3_qmi_ctx->server_sq.sq_port = service->port; if (!workqueues_stopped) { queue_delayed_work(ipa_clnt_req_workqueue, Loading Loading @@ -1690,7 +1693,7 @@ int ipa3_qmi_send_mhi_ready_indication( return -ETIMEDOUT; return qmi_send_indication(ipa3_svc_handle, &ipa3_qmi_ctx->ipa_q6_client_params.sq, &ipa3_qmi_ctx->client_sq, QMI_IPA_MHI_READY_IND_V01, IPA_MHI_READY_INDICATION_MSG_V01_MAX_MSG_LEN, ipa_mhi_ready_indication_msg_v01_ei, Loading
drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.h +2 −5 Original line number Diff line number Diff line Loading @@ -69,10 +69,6 @@ DEV_NAME " %s:%d " fmt, ## args); \ } while (0) struct ipa_q6_all_client_params { struct sockaddr_qrtr sq; }; extern struct ipa3_qmi_context *ipa3_qmi_ctx; struct ipa3_qmi_context { Loading @@ -92,7 +88,8 @@ struct ipa3_qmi_context { ipa_configure_ul_firewall_rules_req_msg_cache [MAX_NUM_QMI_RULE_CACHE]; bool modem_cfg_emb_pipe_flt; struct ipa_q6_all_client_params ipa_q6_client_params; struct sockaddr_qrtr client_sq; struct sockaddr_qrtr server_sq; }; struct ipa3_rmnet_mux_val { Loading