Loading arch/arm64/mm/dma-mapping.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1981,7 +1981,7 @@ bitmap_iommu_init_mapping(struct device *dev, struct dma_iommu_mapping *mapping) bool min_iova_align = 0; bool min_iova_align = 0; iommu_domain_get_attr(mapping->domain, iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_QCOM_MMU500_ERRATA_MIN_ALIGN, DOMAIN_ATTR_MMU500_ERRATA_MIN_ALIGN, &min_iova_align); &min_iova_align); iommu_domain_get_attr(mapping->domain, iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_SECURE_VMID, &vmid); DOMAIN_ATTR_SECURE_VMID, &vmid); Loading drivers/iommu/arm-smmu.c +4 −4 Original line number Original line Diff line number Diff line Loading @@ -433,7 +433,7 @@ struct arm_smmu_device { #define ARM_SMMU_OPT_3LVL_TABLES (1 << 4) #define ARM_SMMU_OPT_3LVL_TABLES (1 << 4) #define ARM_SMMU_OPT_NO_ASID_RETENTION (1 << 5) #define ARM_SMMU_OPT_NO_ASID_RETENTION (1 << 5) #define ARM_SMMU_OPT_DISABLE_ATOS (1 << 6) #define ARM_SMMU_OPT_DISABLE_ATOS (1 << 6) #define ARM_SMMU_OPT_QCOM_MMU500_ERRATA1 (1 << 7) #define ARM_SMMU_OPT_MMU500_ERRATA1 (1 << 7) u32 options; u32 options; enum arm_smmu_arch_version version; enum arm_smmu_arch_version version; enum arm_smmu_implementation model; enum arm_smmu_implementation model; Loading Loading @@ -559,7 +559,7 @@ static struct arm_smmu_option_prop arm_smmu_options[] = { { ARM_SMMU_OPT_3LVL_TABLES, "qcom,use-3-lvl-tables" }, { ARM_SMMU_OPT_3LVL_TABLES, "qcom,use-3-lvl-tables" }, { ARM_SMMU_OPT_NO_ASID_RETENTION, "qcom,no-asid-retention" }, { ARM_SMMU_OPT_NO_ASID_RETENTION, "qcom,no-asid-retention" }, { ARM_SMMU_OPT_DISABLE_ATOS, "qcom,disable-atos" }, { ARM_SMMU_OPT_DISABLE_ATOS, "qcom,disable-atos" }, { ARM_SMMU_OPT_QCOM_MMU500_ERRATA1, "qcom,mmu500-errata-1" }, { ARM_SMMU_OPT_MMU500_ERRATA1, "qcom,mmu500-errata-1" }, { 0, NULL}, { 0, NULL}, }; }; Loading Loading @@ -1792,7 +1792,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain, quirks |= IO_PGTABLE_QUIRK_QSMMUV500_NON_SHAREABLE; quirks |= IO_PGTABLE_QUIRK_QSMMUV500_NON_SHAREABLE; tlb = &arm_smmu_gather_ops; tlb = &arm_smmu_gather_ops; if (smmu->options & ARM_SMMU_OPT_QCOM_MMU500_ERRATA1) if (smmu->options & ARM_SMMU_OPT_MMU500_ERRATA1) tlb = &qsmmuv500_errata1_smmu_gather_ops; tlb = &qsmmuv500_errata1_smmu_gather_ops; ret = arm_smmu_alloc_cb(domain, smmu, dev); ret = arm_smmu_alloc_cb(domain, smmu, dev); Loading Loading @@ -2899,7 +2899,7 @@ static int arm_smmu_domain_get_attr(struct iommu_domain *domain, & (1 << DOMAIN_ATTR_CB_STALL_DISABLE)); & (1 << DOMAIN_ATTR_CB_STALL_DISABLE)); ret = 0; ret = 0; break; break; case DOMAIN_ATTR_QCOM_MMU500_ERRATA_MIN_ALIGN: case DOMAIN_ATTR_MMU500_ERRATA_MIN_ALIGN: *((int *)data) = smmu_domain->qsmmuv500_errata2_min_align; *((int *)data) = smmu_domain->qsmmuv500_errata2_min_align; ret = 0; ret = 0; break; break; Loading drivers/iommu/dma-iommu.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -132,7 +132,7 @@ static int iommu_dma_arm_smmu_errata_init(struct iommu_domain *domain) int min_iova_align = 0; int min_iova_align = 0; iommu_domain_get_attr(domain, iommu_domain_get_attr(domain, DOMAIN_ATTR_QCOM_MMU500_ERRATA_MIN_ALIGN, DOMAIN_ATTR_MMU500_ERRATA_MIN_ALIGN, &min_iova_align); &min_iova_align); iommu_domain_get_attr(domain, DOMAIN_ATTR_SECURE_VMID, &vmid); iommu_domain_get_attr(domain, DOMAIN_ATTR_SECURE_VMID, &vmid); if (vmid >= VMID_LAST || vmid < 0) if (vmid >= VMID_LAST || vmid < 0) Loading drivers/iommu/dma-mapping-fast.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -893,7 +893,7 @@ static int fast_smmu_errata_init(struct dma_iommu_mapping *mapping) int min_iova_align = 0; int min_iova_align = 0; iommu_domain_get_attr(mapping->domain, iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_QCOM_MMU500_ERRATA_MIN_ALIGN, DOMAIN_ATTR_MMU500_ERRATA_MIN_ALIGN, &min_iova_align); &min_iova_align); iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_SECURE_VMID, &vmid); iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_SECURE_VMID, &vmid); if (vmid >= VMID_LAST || vmid < 0) if (vmid >= VMID_LAST || vmid < 0) Loading include/linux/iommu.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -144,7 +144,7 @@ enum iommu_attr { DOMAIN_ATTR_PAGE_TABLE_FORCE_COHERENT, DOMAIN_ATTR_PAGE_TABLE_FORCE_COHERENT, DOMAIN_ATTR_CB_STALL_DISABLE, DOMAIN_ATTR_CB_STALL_DISABLE, DOMAIN_ATTR_UPSTREAM_IOVA_ALLOCATOR, DOMAIN_ATTR_UPSTREAM_IOVA_ALLOCATOR, DOMAIN_ATTR_QCOM_MMU500_ERRATA_MIN_ALIGN, DOMAIN_ATTR_MMU500_ERRATA_MIN_ALIGN, DOMAIN_ATTR_MAX, DOMAIN_ATTR_MAX, }; }; Loading Loading
arch/arm64/mm/dma-mapping.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1981,7 +1981,7 @@ bitmap_iommu_init_mapping(struct device *dev, struct dma_iommu_mapping *mapping) bool min_iova_align = 0; bool min_iova_align = 0; iommu_domain_get_attr(mapping->domain, iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_QCOM_MMU500_ERRATA_MIN_ALIGN, DOMAIN_ATTR_MMU500_ERRATA_MIN_ALIGN, &min_iova_align); &min_iova_align); iommu_domain_get_attr(mapping->domain, iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_SECURE_VMID, &vmid); DOMAIN_ATTR_SECURE_VMID, &vmid); Loading
drivers/iommu/arm-smmu.c +4 −4 Original line number Original line Diff line number Diff line Loading @@ -433,7 +433,7 @@ struct arm_smmu_device { #define ARM_SMMU_OPT_3LVL_TABLES (1 << 4) #define ARM_SMMU_OPT_3LVL_TABLES (1 << 4) #define ARM_SMMU_OPT_NO_ASID_RETENTION (1 << 5) #define ARM_SMMU_OPT_NO_ASID_RETENTION (1 << 5) #define ARM_SMMU_OPT_DISABLE_ATOS (1 << 6) #define ARM_SMMU_OPT_DISABLE_ATOS (1 << 6) #define ARM_SMMU_OPT_QCOM_MMU500_ERRATA1 (1 << 7) #define ARM_SMMU_OPT_MMU500_ERRATA1 (1 << 7) u32 options; u32 options; enum arm_smmu_arch_version version; enum arm_smmu_arch_version version; enum arm_smmu_implementation model; enum arm_smmu_implementation model; Loading Loading @@ -559,7 +559,7 @@ static struct arm_smmu_option_prop arm_smmu_options[] = { { ARM_SMMU_OPT_3LVL_TABLES, "qcom,use-3-lvl-tables" }, { ARM_SMMU_OPT_3LVL_TABLES, "qcom,use-3-lvl-tables" }, { ARM_SMMU_OPT_NO_ASID_RETENTION, "qcom,no-asid-retention" }, { ARM_SMMU_OPT_NO_ASID_RETENTION, "qcom,no-asid-retention" }, { ARM_SMMU_OPT_DISABLE_ATOS, "qcom,disable-atos" }, { ARM_SMMU_OPT_DISABLE_ATOS, "qcom,disable-atos" }, { ARM_SMMU_OPT_QCOM_MMU500_ERRATA1, "qcom,mmu500-errata-1" }, { ARM_SMMU_OPT_MMU500_ERRATA1, "qcom,mmu500-errata-1" }, { 0, NULL}, { 0, NULL}, }; }; Loading Loading @@ -1792,7 +1792,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain, quirks |= IO_PGTABLE_QUIRK_QSMMUV500_NON_SHAREABLE; quirks |= IO_PGTABLE_QUIRK_QSMMUV500_NON_SHAREABLE; tlb = &arm_smmu_gather_ops; tlb = &arm_smmu_gather_ops; if (smmu->options & ARM_SMMU_OPT_QCOM_MMU500_ERRATA1) if (smmu->options & ARM_SMMU_OPT_MMU500_ERRATA1) tlb = &qsmmuv500_errata1_smmu_gather_ops; tlb = &qsmmuv500_errata1_smmu_gather_ops; ret = arm_smmu_alloc_cb(domain, smmu, dev); ret = arm_smmu_alloc_cb(domain, smmu, dev); Loading Loading @@ -2899,7 +2899,7 @@ static int arm_smmu_domain_get_attr(struct iommu_domain *domain, & (1 << DOMAIN_ATTR_CB_STALL_DISABLE)); & (1 << DOMAIN_ATTR_CB_STALL_DISABLE)); ret = 0; ret = 0; break; break; case DOMAIN_ATTR_QCOM_MMU500_ERRATA_MIN_ALIGN: case DOMAIN_ATTR_MMU500_ERRATA_MIN_ALIGN: *((int *)data) = smmu_domain->qsmmuv500_errata2_min_align; *((int *)data) = smmu_domain->qsmmuv500_errata2_min_align; ret = 0; ret = 0; break; break; Loading
drivers/iommu/dma-iommu.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -132,7 +132,7 @@ static int iommu_dma_arm_smmu_errata_init(struct iommu_domain *domain) int min_iova_align = 0; int min_iova_align = 0; iommu_domain_get_attr(domain, iommu_domain_get_attr(domain, DOMAIN_ATTR_QCOM_MMU500_ERRATA_MIN_ALIGN, DOMAIN_ATTR_MMU500_ERRATA_MIN_ALIGN, &min_iova_align); &min_iova_align); iommu_domain_get_attr(domain, DOMAIN_ATTR_SECURE_VMID, &vmid); iommu_domain_get_attr(domain, DOMAIN_ATTR_SECURE_VMID, &vmid); if (vmid >= VMID_LAST || vmid < 0) if (vmid >= VMID_LAST || vmid < 0) Loading
drivers/iommu/dma-mapping-fast.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -893,7 +893,7 @@ static int fast_smmu_errata_init(struct dma_iommu_mapping *mapping) int min_iova_align = 0; int min_iova_align = 0; iommu_domain_get_attr(mapping->domain, iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_QCOM_MMU500_ERRATA_MIN_ALIGN, DOMAIN_ATTR_MMU500_ERRATA_MIN_ALIGN, &min_iova_align); &min_iova_align); iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_SECURE_VMID, &vmid); iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_SECURE_VMID, &vmid); if (vmid >= VMID_LAST || vmid < 0) if (vmid >= VMID_LAST || vmid < 0) Loading
include/linux/iommu.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -144,7 +144,7 @@ enum iommu_attr { DOMAIN_ATTR_PAGE_TABLE_FORCE_COHERENT, DOMAIN_ATTR_PAGE_TABLE_FORCE_COHERENT, DOMAIN_ATTR_CB_STALL_DISABLE, DOMAIN_ATTR_CB_STALL_DISABLE, DOMAIN_ATTR_UPSTREAM_IOVA_ALLOCATOR, DOMAIN_ATTR_UPSTREAM_IOVA_ALLOCATOR, DOMAIN_ATTR_QCOM_MMU500_ERRATA_MIN_ALIGN, DOMAIN_ATTR_MMU500_ERRATA_MIN_ALIGN, DOMAIN_ATTR_MAX, DOMAIN_ATTR_MAX, }; }; Loading