Loading drivers/platform/msm/ipa/ipa_v3/ipa_i.h +3 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,9 @@ enum { #define IPA_WDI_TX_DB_RES 7 #define IPA_WDI_MAX_RES 8 /* use QMAP header reserved bit to identify tethered traffic */ #define IPA_QMAP_TETH_BIT (1 << 30) #ifdef CONFIG_ARM64 /* Outer caches unsupported on ARM64 platforms */ # define outer_flush_range(x, y) Loading drivers/platform/msm/ipa/ipa_v3/ipa_mhi_proxy.c +3 −4 Original line number Diff line number Diff line Loading @@ -702,7 +702,8 @@ static int imp_mhi_probe_cb(struct mhi_device *mhi_dev, return -EPERM; } IPA_ACTIVE_CLIENTS_INC_SIMPLE(); /* vote for IPA clock. IPA clock will be devoted when MHI enters LPM */ IPA_ACTIVE_CLIENTS_INC_SPECIAL("IMP"); imp_ctx->md.mhi_dev = mhi_dev; Loading Loading @@ -770,15 +771,13 @@ static int imp_mhi_probe_cb(struct mhi_device *mhi_dev, imp_mhi_trigger_ready_ind(); mutex_unlock(&imp_ctx->mutex); IPA_ACTIVE_CLIENTS_DEC_SIMPLE(); IMP_FUNC_EXIT(); return 0; fail: mutex_unlock(&imp_ctx->mutex); IPA_ACTIVE_CLIENTS_DEC_SIMPLE(); IPA_ACTIVE_CLIENTS_DEC_SPECIAL("IMP"); return ret; } Loading drivers/platform/msm/ipa/ipa_v3/ipa_nat.c +9 −2 Original line number Diff line number Diff line Loading @@ -1115,10 +1115,17 @@ int ipa3_nat_mdfy_pdn(struct ipa_ioc_nat_pdn_entry *mdfy_pdn) pdn_entries[mdfy_pdn->pdn_index].src_metadata = mdfy_pdn->src_metadata; /* mark tethering bit for remote modem */ if (ipa3_ctx->ipa_hw_type == IPA_HW_v4_1) pdn_entries[mdfy_pdn->pdn_index].src_metadata |= IPA_QMAP_TETH_BIT; IPADBG("Modify PDN in index: %d Public ip address:%pI4h\n", mdfy_pdn->pdn_index, &mdfy_pdn->public_ip); mdfy_pdn->pdn_index, &pdn_entries[mdfy_pdn->pdn_index].public_ip); IPADBG("Modify PDN dst metadata: 0x%x src metadata: 0x%x\n", mdfy_pdn->dst_metadata, mdfy_pdn->src_metadata); pdn_entries[mdfy_pdn->pdn_index].dst_metadata, pdn_entries[mdfy_pdn->pdn_index].src_metadata); /* Copy the PDN config table to SRAM */ ipa3_nat_create_modify_pdn_cmd(&mem_cmd, false); Loading drivers/platform/msm/ipa/ipa_v3/ipa_utils.c +4 −0 Original line number Diff line number Diff line Loading @@ -4046,6 +4046,10 @@ int ipa3_cfg_ep_metadata(u32 clnt_hdl, const struct ipa_ep_cfg_metadata *ep_md) IPA_ENDP_INIT_HDR_METADATA_n_MUX_ID_SHFT) & IPA_ENDP_INIT_HDR_METADATA_n_MUX_ID_BMASK; /* mark tethering bit for remote modem */ if (ipa3_ctx->ipa_hw_type == IPA_HW_v4_1) qmap_id |= IPA_QMAP_TETH_BIT; ep_md_reg_wrt.qmap_id = qmap_id; ipahal_write_reg_n_fields(IPA_ENDP_INIT_HDR_METADATA_n, clnt_hdl, &ep_md_reg_wrt); Loading Loading
drivers/platform/msm/ipa/ipa_v3/ipa_i.h +3 −0 Original line number Diff line number Diff line Loading @@ -220,6 +220,9 @@ enum { #define IPA_WDI_TX_DB_RES 7 #define IPA_WDI_MAX_RES 8 /* use QMAP header reserved bit to identify tethered traffic */ #define IPA_QMAP_TETH_BIT (1 << 30) #ifdef CONFIG_ARM64 /* Outer caches unsupported on ARM64 platforms */ # define outer_flush_range(x, y) Loading
drivers/platform/msm/ipa/ipa_v3/ipa_mhi_proxy.c +3 −4 Original line number Diff line number Diff line Loading @@ -702,7 +702,8 @@ static int imp_mhi_probe_cb(struct mhi_device *mhi_dev, return -EPERM; } IPA_ACTIVE_CLIENTS_INC_SIMPLE(); /* vote for IPA clock. IPA clock will be devoted when MHI enters LPM */ IPA_ACTIVE_CLIENTS_INC_SPECIAL("IMP"); imp_ctx->md.mhi_dev = mhi_dev; Loading Loading @@ -770,15 +771,13 @@ static int imp_mhi_probe_cb(struct mhi_device *mhi_dev, imp_mhi_trigger_ready_ind(); mutex_unlock(&imp_ctx->mutex); IPA_ACTIVE_CLIENTS_DEC_SIMPLE(); IMP_FUNC_EXIT(); return 0; fail: mutex_unlock(&imp_ctx->mutex); IPA_ACTIVE_CLIENTS_DEC_SIMPLE(); IPA_ACTIVE_CLIENTS_DEC_SPECIAL("IMP"); return ret; } Loading
drivers/platform/msm/ipa/ipa_v3/ipa_nat.c +9 −2 Original line number Diff line number Diff line Loading @@ -1115,10 +1115,17 @@ int ipa3_nat_mdfy_pdn(struct ipa_ioc_nat_pdn_entry *mdfy_pdn) pdn_entries[mdfy_pdn->pdn_index].src_metadata = mdfy_pdn->src_metadata; /* mark tethering bit for remote modem */ if (ipa3_ctx->ipa_hw_type == IPA_HW_v4_1) pdn_entries[mdfy_pdn->pdn_index].src_metadata |= IPA_QMAP_TETH_BIT; IPADBG("Modify PDN in index: %d Public ip address:%pI4h\n", mdfy_pdn->pdn_index, &mdfy_pdn->public_ip); mdfy_pdn->pdn_index, &pdn_entries[mdfy_pdn->pdn_index].public_ip); IPADBG("Modify PDN dst metadata: 0x%x src metadata: 0x%x\n", mdfy_pdn->dst_metadata, mdfy_pdn->src_metadata); pdn_entries[mdfy_pdn->pdn_index].dst_metadata, pdn_entries[mdfy_pdn->pdn_index].src_metadata); /* Copy the PDN config table to SRAM */ ipa3_nat_create_modify_pdn_cmd(&mem_cmd, false); Loading
drivers/platform/msm/ipa/ipa_v3/ipa_utils.c +4 −0 Original line number Diff line number Diff line Loading @@ -4046,6 +4046,10 @@ int ipa3_cfg_ep_metadata(u32 clnt_hdl, const struct ipa_ep_cfg_metadata *ep_md) IPA_ENDP_INIT_HDR_METADATA_n_MUX_ID_SHFT) & IPA_ENDP_INIT_HDR_METADATA_n_MUX_ID_BMASK; /* mark tethering bit for remote modem */ if (ipa3_ctx->ipa_hw_type == IPA_HW_v4_1) qmap_id |= IPA_QMAP_TETH_BIT; ep_md_reg_wrt.qmap_id = qmap_id; ipahal_write_reg_n_fields(IPA_ENDP_INIT_HDR_METADATA_n, clnt_hdl, &ep_md_reg_wrt); Loading