Loading drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c +32 −5 Original line number Diff line number Diff line Loading @@ -526,6 +526,10 @@ static dma_addr_t ipa_mpm_smmu_map(void *va_addr, pcie_smmu_domain = iommu_get_domain_for_dev( ipa_mpm_ctx->mhi_parent_dev); if (!pcie_smmu_domain) { IPA_MPM_ERR("invalid pcie smmu domain\n"); ipa_assert(); } ret = iommu_map(pcie_smmu_domain, iova_p, pa_p, size_p, prot); if (ret) { Loading Loading @@ -590,7 +594,12 @@ static void ipa_mpm_smmu_unmap(dma_addr_t carved_iova, int sz, int dir, iova_p, pa_p, size_p); pcie_smmu_domain = iommu_get_domain_for_dev( ipa_mpm_ctx->mhi_parent_dev); if (pcie_smmu_domain) { iommu_unmap(pcie_smmu_domain, iova_p, size_p); } else { IPA_MPM_ERR("invalid PCIE SMMU domain\n"); ipa_assert(); } iommu_unmap(ipa_smmu_domain, iova_p, size_p); cb->next_addr -= size_p; Loading Loading @@ -634,6 +643,10 @@ static u32 ipa_mpm_smmu_map_doorbell(enum mhip_smmu_domain_type smmu_domain, iova_p, pa_p, size_p); if (smmu_domain == MHIP_SMMU_DOMAIN_IPA) { ipa_smmu_domain = ipa3_get_smmu_domain(); if (!ipa_smmu_domain) { IPA_MPM_ERR("invalid IPA smmu domain\n"); ipa_assert(); } ret = ipa3_iommu_map(ipa_smmu_domain, iova_p, pa_p, size_p, prot); if (ret) { Loading @@ -644,6 +657,10 @@ static u32 ipa_mpm_smmu_map_doorbell(enum mhip_smmu_domain_type smmu_domain, } else if (smmu_domain == MHIP_SMMU_DOMAIN_PCIE) { pcie_smmu_domain = iommu_get_domain_for_dev( ipa_mpm_ctx->mhi_parent_dev); if (!pcie_smmu_domain) { IPA_MPM_ERR("invalid IPA smmu domain\n"); ipa_assert(); } ret = iommu_map(pcie_smmu_domain, iova_p, pa_p, size_p, prot); if (ret) { Loading Loading @@ -682,11 +699,21 @@ static void ipa_mpm_smmu_unmap_doorbell(enum mhip_smmu_domain_type smmu_domain, iova_p, pa_p, size_p); if (smmu_domain == MHIP_SMMU_DOMAIN_IPA) { ipa_smmu_domain = ipa3_get_smmu_domain(); if (ipa_smmu_domain) { iommu_unmap(ipa_smmu_domain, iova_p, size_p); } else { IPA_MPM_ERR("invalid IPA smmu domain\n"); ipa_assert(); } } else if (smmu_domain == MHIP_SMMU_DOMAIN_PCIE) { pcie_smmu_domain = iommu_get_domain_for_dev( ipa_mpm_ctx->mhi_parent_dev); if (pcie_smmu_domain) { iommu_unmap(pcie_smmu_domain, iova_p, size_p); } else { IPA_MPM_ERR("invalid PCIE smmu domain\n"); ipa_assert(); } cb->next_addr -= IPA_MPM_PAGE_SIZE; } } Loading drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c +9 −4 Original line number Diff line number Diff line Loading @@ -1843,13 +1843,18 @@ static int ipa3_wwan_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) break; /* Get driver name */ case RMNET_IOCTL_GET_DRIVER_NAME: if (IPA_NETDEV() != NULL) { memcpy(&ext_ioctl_data.u.if_name, IPA_NETDEV()->name, IFNAMSIZ); ext_ioctl_data.u.if_name[IFNAMSIZ - 1] = '\0'; if (copy_to_user((u8 *)ifr->ifr_ifru.ifru_data, if (copy_to_user(ifr->ifr_ifru.ifru_data, &ext_ioctl_data, sizeof(struct rmnet_ioctl_extended_s))) rc = -EFAULT; } else { IPAWANDBG("IPA_NETDEV is NULL\n"); rc = -EFAULT; } break; /* Add MUX ID */ case RMNET_IOCTL_ADD_MUX_CHANNEL: Loading Loading
drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c +32 −5 Original line number Diff line number Diff line Loading @@ -526,6 +526,10 @@ static dma_addr_t ipa_mpm_smmu_map(void *va_addr, pcie_smmu_domain = iommu_get_domain_for_dev( ipa_mpm_ctx->mhi_parent_dev); if (!pcie_smmu_domain) { IPA_MPM_ERR("invalid pcie smmu domain\n"); ipa_assert(); } ret = iommu_map(pcie_smmu_domain, iova_p, pa_p, size_p, prot); if (ret) { Loading Loading @@ -590,7 +594,12 @@ static void ipa_mpm_smmu_unmap(dma_addr_t carved_iova, int sz, int dir, iova_p, pa_p, size_p); pcie_smmu_domain = iommu_get_domain_for_dev( ipa_mpm_ctx->mhi_parent_dev); if (pcie_smmu_domain) { iommu_unmap(pcie_smmu_domain, iova_p, size_p); } else { IPA_MPM_ERR("invalid PCIE SMMU domain\n"); ipa_assert(); } iommu_unmap(ipa_smmu_domain, iova_p, size_p); cb->next_addr -= size_p; Loading Loading @@ -634,6 +643,10 @@ static u32 ipa_mpm_smmu_map_doorbell(enum mhip_smmu_domain_type smmu_domain, iova_p, pa_p, size_p); if (smmu_domain == MHIP_SMMU_DOMAIN_IPA) { ipa_smmu_domain = ipa3_get_smmu_domain(); if (!ipa_smmu_domain) { IPA_MPM_ERR("invalid IPA smmu domain\n"); ipa_assert(); } ret = ipa3_iommu_map(ipa_smmu_domain, iova_p, pa_p, size_p, prot); if (ret) { Loading @@ -644,6 +657,10 @@ static u32 ipa_mpm_smmu_map_doorbell(enum mhip_smmu_domain_type smmu_domain, } else if (smmu_domain == MHIP_SMMU_DOMAIN_PCIE) { pcie_smmu_domain = iommu_get_domain_for_dev( ipa_mpm_ctx->mhi_parent_dev); if (!pcie_smmu_domain) { IPA_MPM_ERR("invalid IPA smmu domain\n"); ipa_assert(); } ret = iommu_map(pcie_smmu_domain, iova_p, pa_p, size_p, prot); if (ret) { Loading Loading @@ -682,11 +699,21 @@ static void ipa_mpm_smmu_unmap_doorbell(enum mhip_smmu_domain_type smmu_domain, iova_p, pa_p, size_p); if (smmu_domain == MHIP_SMMU_DOMAIN_IPA) { ipa_smmu_domain = ipa3_get_smmu_domain(); if (ipa_smmu_domain) { iommu_unmap(ipa_smmu_domain, iova_p, size_p); } else { IPA_MPM_ERR("invalid IPA smmu domain\n"); ipa_assert(); } } else if (smmu_domain == MHIP_SMMU_DOMAIN_PCIE) { pcie_smmu_domain = iommu_get_domain_for_dev( ipa_mpm_ctx->mhi_parent_dev); if (pcie_smmu_domain) { iommu_unmap(pcie_smmu_domain, iova_p, size_p); } else { IPA_MPM_ERR("invalid PCIE smmu domain\n"); ipa_assert(); } cb->next_addr -= IPA_MPM_PAGE_SIZE; } } Loading
drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c +9 −4 Original line number Diff line number Diff line Loading @@ -1843,13 +1843,18 @@ static int ipa3_wwan_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) break; /* Get driver name */ case RMNET_IOCTL_GET_DRIVER_NAME: if (IPA_NETDEV() != NULL) { memcpy(&ext_ioctl_data.u.if_name, IPA_NETDEV()->name, IFNAMSIZ); ext_ioctl_data.u.if_name[IFNAMSIZ - 1] = '\0'; if (copy_to_user((u8 *)ifr->ifr_ifru.ifru_data, if (copy_to_user(ifr->ifr_ifru.ifru_data, &ext_ioctl_data, sizeof(struct rmnet_ioctl_extended_s))) rc = -EFAULT; } else { IPAWANDBG("IPA_NETDEV is NULL\n"); rc = -EFAULT; } break; /* Add MUX ID */ case RMNET_IOCTL_ADD_MUX_CHANNEL: Loading