Loading drivers/platform/msm/ipa/ipa_v3/ipa.c +1 −1 Original line number Diff line number Diff line Loading @@ -6298,7 +6298,7 @@ static int ipa_smmu_ap_cb_probe(struct device *dev) iova_p, &pa_p, size_p); ipa3_iommu_map(cb->mapping->domain, iova_p, pa_p, size_p, IOMMU_READ | IOMMU_WRITE | IOMMU_MMIO); IOMMU_READ | IOMMU_WRITE); smmu_info.present[IPA_SMMU_CB_AP] = true; ipa3_ctx->pdev = dev; Loading drivers/platform/msm/ipa/ipa_v3/ipa_dp.c +7 −4 Original line number Diff line number Diff line Loading @@ -1064,6 +1064,13 @@ int ipa3_setup_sys_pipe(struct ipa_sys_connect_params *sys_in, u32 *clnt_hdl) goto fail_gen2; } result = gsi_start_channel(ep->gsi_chan_hdl); if (result != GSI_STATUS_SUCCESS) { IPAERR("gsi_start_channel failed res=%d ep=%d.\n", result, ipa_ep_idx); goto fail_gen2; } if (!ep->keep_ipa_awake) IPA_ACTIVE_CLIENTS_DEC_EP(sys_in->client); Loading Loading @@ -3800,15 +3807,11 @@ static int ipa_gsi_setup_channel(struct ipa_sys_connect_params *in, goto fail_write_channel_scratch; } result = gsi_start_channel(ep->gsi_chan_hdl); if (result != GSI_STATUS_SUCCESS) goto fail_start_channel; if (ep->client == IPA_CLIENT_MEMCPY_DMA_SYNC_CONS) gsi_config_channel_mode(ep->gsi_chan_hdl, GSI_CHAN_MODE_POLL); return 0; fail_start_channel: fail_write_channel_scratch: if (gsi_dealloc_channel(ep->gsi_chan_hdl) != GSI_STATUS_SUCCESS) { Loading drivers/platform/msm/ipa/ipa_v3/ipa_mhi_proxy.c +10 −2 Original line number Diff line number Diff line Loading @@ -331,6 +331,11 @@ static void __map_smmu_info(struct device *dev, } for (i = 0; i < num_mapping; i++) { int prot = IOMMU_READ | IOMMU_WRITE; u32 ipa_base = ipa3_ctx->ipa_wrapper_base + ipa3_ctx->ctrl->ipa_reg_base_ofst; u32 ipa_size = ipa3_ctx->ipa_wrapper_size; imp_smmu_round_to_page(map_info[i].iova, map_info[i].pa, map_info[i].size, &iova_p, &pa_p, &size_p); Loading @@ -340,11 +345,14 @@ static void __map_smmu_info(struct device *dev, (partition->base + partition->size) < (iova_p + size_p)); /* for IPA uC MBOM we need to map with device type */ if (pa_p - ipa_base < ipa_size) prot |= IOMMU_MMIO; IMP_DBG("mapping 0x%lx to 0x%pa size %d\n", iova_p, &pa_p, size_p); iommu_map(domain, iova_p, pa_p, size_p, IOMMU_READ | IOMMU_WRITE | IOMMU_MMIO); iova_p, pa_p, size_p, prot); } else { IMP_DBG("unmapping 0x%lx to 0x%pa size %d\n", iova_p, &pa_p, size_p); Loading Loading
drivers/platform/msm/ipa/ipa_v3/ipa.c +1 −1 Original line number Diff line number Diff line Loading @@ -6298,7 +6298,7 @@ static int ipa_smmu_ap_cb_probe(struct device *dev) iova_p, &pa_p, size_p); ipa3_iommu_map(cb->mapping->domain, iova_p, pa_p, size_p, IOMMU_READ | IOMMU_WRITE | IOMMU_MMIO); IOMMU_READ | IOMMU_WRITE); smmu_info.present[IPA_SMMU_CB_AP] = true; ipa3_ctx->pdev = dev; Loading
drivers/platform/msm/ipa/ipa_v3/ipa_dp.c +7 −4 Original line number Diff line number Diff line Loading @@ -1064,6 +1064,13 @@ int ipa3_setup_sys_pipe(struct ipa_sys_connect_params *sys_in, u32 *clnt_hdl) goto fail_gen2; } result = gsi_start_channel(ep->gsi_chan_hdl); if (result != GSI_STATUS_SUCCESS) { IPAERR("gsi_start_channel failed res=%d ep=%d.\n", result, ipa_ep_idx); goto fail_gen2; } if (!ep->keep_ipa_awake) IPA_ACTIVE_CLIENTS_DEC_EP(sys_in->client); Loading Loading @@ -3800,15 +3807,11 @@ static int ipa_gsi_setup_channel(struct ipa_sys_connect_params *in, goto fail_write_channel_scratch; } result = gsi_start_channel(ep->gsi_chan_hdl); if (result != GSI_STATUS_SUCCESS) goto fail_start_channel; if (ep->client == IPA_CLIENT_MEMCPY_DMA_SYNC_CONS) gsi_config_channel_mode(ep->gsi_chan_hdl, GSI_CHAN_MODE_POLL); return 0; fail_start_channel: fail_write_channel_scratch: if (gsi_dealloc_channel(ep->gsi_chan_hdl) != GSI_STATUS_SUCCESS) { Loading
drivers/platform/msm/ipa/ipa_v3/ipa_mhi_proxy.c +10 −2 Original line number Diff line number Diff line Loading @@ -331,6 +331,11 @@ static void __map_smmu_info(struct device *dev, } for (i = 0; i < num_mapping; i++) { int prot = IOMMU_READ | IOMMU_WRITE; u32 ipa_base = ipa3_ctx->ipa_wrapper_base + ipa3_ctx->ctrl->ipa_reg_base_ofst; u32 ipa_size = ipa3_ctx->ipa_wrapper_size; imp_smmu_round_to_page(map_info[i].iova, map_info[i].pa, map_info[i].size, &iova_p, &pa_p, &size_p); Loading @@ -340,11 +345,14 @@ static void __map_smmu_info(struct device *dev, (partition->base + partition->size) < (iova_p + size_p)); /* for IPA uC MBOM we need to map with device type */ if (pa_p - ipa_base < ipa_size) prot |= IOMMU_MMIO; IMP_DBG("mapping 0x%lx to 0x%pa size %d\n", iova_p, &pa_p, size_p); iommu_map(domain, iova_p, pa_p, size_p, IOMMU_READ | IOMMU_WRITE | IOMMU_MMIO); iova_p, pa_p, size_p, prot); } else { IMP_DBG("unmapping 0x%lx to 0x%pa size %d\n", iova_p, &pa_p, size_p); Loading