/linux-6.3-rc2/drivers/iommu/arm/arm-smmu/ |
A D | arm-smmu.c | 630 smmu_domain->smmu = smmu; in arm_smmu_init_domain_context() 734 smmu_domain->smmu = smmu; in arm_smmu_init_domain_context() 1137 smmu = cfg->smmu; in arm_smmu_attach_dev() 1152 if (smmu_domain->smmu != smmu) { in arm_smmu_attach_dev() 1390 cfg->smmu = smmu; in arm_smmu_probe_device() 1441 smmu = cfg->smmu; in arm_smmu_probe_finalize() 1643 smmu->impl->reset(smmu); in arm_smmu_device_reset() 1748 smmu->smrs = devm_kcalloc(smmu->dev, size, sizeof(*smmu->smrs), in arm_smmu_device_cfg_probe() 1796 smmu->cbs = devm_kcalloc(smmu->dev, smmu->num_context_banks, in arm_smmu_device_cfg_probe() 1823 smmu->va_size = smmu->ipa_size; in arm_smmu_device_cfg_probe() [all …]
|
A D | arm-smmu-impl.c | 52 struct arm_smmu_device smmu; member 59 struct cavium_smmu *cs = container_of(smmu, struct cavium_smmu, smmu); in cavium_cfg_probe() 94 cs = devm_krealloc(smmu->dev, smmu, sizeof(*cs), GFP_KERNEL); in cavium_smmu_impl_init() 98 cs->smmu.impl = &cavium_impl; in cavium_smmu_impl_init() 100 return &cs->smmu; in cavium_smmu_impl_init() 203 switch (smmu->model) { in arm_smmu_impl_init() 205 smmu->impl = &arm_mmu500_impl; in arm_smmu_impl_init() 215 smmu->impl = &calxeda_impl; in arm_smmu_impl_init() 223 smmu = qcom_smmu_impl_init(smmu); in arm_smmu_impl_init() 226 smmu->impl = &mrvl_mmu500_impl; in arm_smmu_impl_init() [all …]
|
A D | arm-smmu-nvidia.c | 35 struct arm_smmu_device smmu; member 43 return container_of(smmu, struct nvidia_smmu, smmu); in to_nvidia_smmu() 51 nvidia_smmu = container_of(smmu, struct nvidia_smmu, smmu); in nvidia_smmu_page() 128 dev_err_ratelimited(smmu->dev, in nvidia_smmu_tlb_sync() 165 dev_err_ratelimited(smmu->dev, in nvidia_smmu_global_fault_inst() 167 dev_err_ratelimited(smmu->dev, in nvidia_smmu_global_fault_inst() 200 void __iomem *cb_base = nvidia_smmu_page(smmu, inst, smmu->numpage + idx); in nvidia_smmu_context_fault_bank() 223 struct arm_smmu_device *smmu; in nvidia_smmu_context_fault() local 229 smmu = smmu_domain->smmu; in nvidia_smmu_context_fault() 265 struct arm_smmu_device *smmu = smmu_domain->smmu; in nvidia_smmu_init_context() local [all …]
|
A D | arm-smmu-qcom.c | 19 return container_of(smmu, struct qcom_smmu, smmu); in to_qcom_smmu() 39 qcom_smmu_tlb_sync_debug(smmu); in qcom_smmu_tlb_sync() 64 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_adreno_smmu_get_fault_info() local 91 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_adreno_smmu_resume_translation() local 308 smmu->smrs[i].valid = true; in qcom_smmu_cfg_probe() 366 arm_mmu500_reset(smmu); in qcom_sdm845_smmu500_reset() 440 return smmu; in qcom_smmu_create() 446 qsmmu = devm_krealloc(smmu->dev, smmu, sizeof(*qsmmu), GFP_KERNEL); in qcom_smmu_create() 450 qsmmu->smmu.impl = impl; in qcom_smmu_create() 453 return &qsmmu->smmu; in qcom_smmu_create() [all …]
|
A D | arm-smmu.h | 368 struct arm_smmu_device *smmu; member 380 struct arm_smmu_device *smmu; member 469 return smmu->base + (n << smmu->pgshift); in arm_smmu_page() 474 if (smmu->impl && unlikely(smmu->impl->read_reg)) in arm_smmu_readl() 475 return smmu->impl->read_reg(smmu, page, offset); in arm_smmu_readl() 482 if (smmu->impl && unlikely(smmu->impl->write_reg)) in arm_smmu_writel() 483 smmu->impl->write_reg(smmu, page, offset, val); in arm_smmu_writel() 490 if (smmu->impl && unlikely(smmu->impl->read_reg64)) in arm_smmu_readq() 491 return smmu->impl->read_reg64(smmu, page, offset); in arm_smmu_readq() 498 if (smmu->impl && unlikely(smmu->impl->write_reg64)) in arm_smmu_writeq() [all …]
|
A D | arm-smmu-qcom-debug.c | 13 void qcom_smmu_tlb_sync_debug(struct arm_smmu_device *smmu) in qcom_smmu_tlb_sync_debug() argument 17 struct qcom_smmu *qsmmu = container_of(smmu, struct qcom_smmu, smmu); in qcom_smmu_tlb_sync_debug() 23 dev_err(smmu->dev, "TLB sync timed out -- SMMU may be deadlocked\n"); in qcom_smmu_tlb_sync_debug() 29 ret = qcom_scm_io_readl(smmu->ioaddr + cfg->reg_offset[QCOM_SMMU_TBU_PWR_STATUS], in qcom_smmu_tlb_sync_debug() 32 dev_err(smmu->dev, in qcom_smmu_tlb_sync_debug() 35 ret = qcom_scm_io_readl(smmu->ioaddr + cfg->reg_offset[QCOM_SMMU_STATS_SYNC_INV_TBU_ACK], in qcom_smmu_tlb_sync_debug() 38 dev_err(smmu->dev, in qcom_smmu_tlb_sync_debug() 41 ret = qcom_scm_io_readl(smmu->ioaddr + cfg->reg_offset[QCOM_SMMU_MMU2QSS_AND_SAFE_WAIT_CNTR], in qcom_smmu_tlb_sync_debug() 44 dev_err(smmu->dev, in qcom_smmu_tlb_sync_debug() 47 dev_err(smmu->dev, in qcom_smmu_tlb_sync_debug()
|
A D | Makefile | 4 arm_smmu-objs += arm-smmu.o arm-smmu-impl.o arm-smmu-nvidia.o 5 arm_smmu-$(CONFIG_ARM_SMMU_QCOM) += arm-smmu-qcom.o 6 arm_smmu-$(CONFIG_ARM_SMMU_QCOM_DEBUG) += arm-smmu-qcom-debug.o
|
A D | arm-smmu-qcom.h | 10 struct arm_smmu_device smmu; member 34 void qcom_smmu_tlb_sync_debug(struct arm_smmu_device *smmu); 36 static inline void qcom_smmu_tlb_sync_debug(struct arm_smmu_device *smmu) { } in qcom_smmu_tlb_sync_debug() argument
|
/linux-6.3-rc2/drivers/iommu/ |
A D | tegra-smmu.c | 88 ((smmu)->soc->num_tlb_lines & (smmu)->tlb_mask) 446 as->smmu = smmu; in tegra_smmu_as_prepare() 519 struct tegra_smmu *smmu = as->smmu; in tegra_smmu_set_platform_dma() local 535 struct tegra_smmu *smmu = as->smmu; in tegra_smmu_set_pde() local 563 struct tegra_smmu *smmu = as->smmu; in tegra_smmu_pte_lookup() local 581 struct tegra_smmu *smmu = as->smmu; in as_get_pte() local 632 struct tegra_smmu *smmu = as->smmu; in tegra_smmu_pte_put_use() local 647 struct tegra_smmu *smmu = as->smmu; in tegra_smmu_set_pte() local 884 struct tegra_smmu *smmu = group->smmu; in tegra_smmu_group_release() local 921 group->smmu = smmu; in tegra_smmu_device_group() [all …]
|
/linux-6.3-rc2/drivers/iommu/arm/arm-smmu-v3/ |
A D | arm-smmu-v3.c | 1273 smmu = master->smmu; in arm_smmu_write_strtab_ent() 2412 smmu = master->smmu; in arm_smmu_attach_dev() 2429 smmu_domain->smmu = smmu; in arm_smmu_attach_dev() 2435 } else if (smmu_domain->smmu != smmu) { in arm_smmu_attach_dev() 2660 master->smmu = smmu; in arm_smmu_probe_device() 2938 ret = arm_smmu_init_one_queue(smmu, &smmu->cmdq.q, smmu->base, in arm_smmu_init_queues() 2949 ret = arm_smmu_init_one_queue(smmu, &smmu->evtq.q, smmu->page1, in arm_smmu_init_queues() 2966 return arm_smmu_init_one_queue(smmu, &smmu->priq.q, smmu->page1, in arm_smmu_init_queues() 3620 smmu->ias = max(smmu->ias, smmu->oas); in arm_smmu_device_hw_probe() 3626 smmu->ias, smmu->oas, smmu->features); in arm_smmu_device_hw_probe() [all …]
|
A D | arm-smmu-v3-sva.c | 50 struct arm_smmu_device *smmu; in arm_smmu_share_asid() local 66 smmu = smmu_domain->smmu; in arm_smmu_share_asid() 86 arm_smmu_tlb_inv_asid(smmu, asid); in arm_smmu_share_asid() 204 if (!(smmu_domain->smmu->features & ARM_SMMU_FEAT_BTM)) in arm_smmu_mm_invalidate_range() 314 arm_smmu_tlb_inv_asid(smmu_domain->smmu, cd->asid); in arm_smmu_mmu_notifier_put() 375 if ((smmu->features & feat_mask) != feat_mask) in arm_smmu_sva_supported() 378 if (!(smmu->pgsize_bitmap & PAGE_SIZE)) in arm_smmu_sva_supported() 389 if (smmu->oas < oas) in arm_smmu_sva_supported() 395 if (smmu->asid_bits < asid_bits) in arm_smmu_sva_supported() 421 if (!(master->smmu->features & ARM_SMMU_FEAT_SVA)) in arm_smmu_master_sva_supported() [all …]
|
/linux-6.3-rc2/Documentation/devicetree/bindings/iommu/ |
A D | arm,smmu.yaml | 32 - const: qcom,smmu-v2 56 - const: qcom,smmu-500 96 - const: qcom,smmu-v2 117 - const: arm,smmu-v2 122 - const: arm,smmu-v1 124 - arm,smmu-v1 125 - arm,smmu-v2 129 - cavium,smmu-v2 312 the smmu ptw 363 the smmu ptw [all …]
|
/linux-6.3-rc2/drivers/memory/tegra/ |
A D | tegra210.c | 20 .smmu = { 36 .smmu = { 52 .smmu = { 68 .smmu = { 84 .smmu = { 100 .smmu = { 116 .smmu = { 132 .smmu = { 148 .smmu = { 164 .smmu = { [all …]
|
A D | tegra114.c | 31 .smmu = { 47 .smmu = { 63 .smmu = { 79 .smmu = { 95 .smmu = { 111 .smmu = { 127 .smmu = { 143 .smmu = { 159 .smmu = { 175 .smmu = { [all …]
|
A D | tegra124.c | 32 .smmu = { 48 .smmu = { 64 .smmu = { 80 .smmu = { 96 .smmu = { 112 .smmu = { 128 .smmu = { 144 .smmu = { 160 .smmu = { 176 .smmu = { [all …]
|
A D | tegra30.c | 54 .smmu = { 71 .smmu = { 88 .smmu = { 105 .smmu = { 122 .smmu = { 139 .smmu = { 156 .smmu = { 173 .smmu = { 190 .smmu = { 207 .smmu = { [all …]
|
/linux-6.3-rc2/arch/arm64/boot/dts/marvell/ |
A D | armada-8040.dtsi | 20 <0x0 &smmu 0x480 0x20>, 21 <0x100 &smmu 0x4a0 0x20>, 22 <0x200 &smmu 0x4c0 0x20>; 36 iommus = <&smmu 0x444>; 40 iommus = <&smmu 0x445>; 44 iommus = <&smmu 0x440>; 48 iommus = <&smmu 0x441>; 52 iommus = <&smmu 0x454>; 56 iommus = <&smmu 0x450>; 60 iommus = <&smmu 0x451>;
|
A D | armada-7040.dtsi | 20 <0x0 &smmu 0x480 0x20>, 21 <0x100 &smmu 0x4a0 0x20>, 22 <0x200 &smmu 0x4c0 0x20>; 27 iommus = <&smmu 0x444>; 31 iommus = <&smmu 0x445>; 35 iommus = <&smmu 0x440>; 39 iommus = <&smmu 0x441>;
|
A D | cn9130-crb-A.dts | 22 <0x0 &smmu 0x480 0x20>, 23 <0x100 &smmu 0x4a0 0x20>, 24 <0x200 &smmu 0x4c0 0x20>;
|
A D | cn9130-crb-B.dts | 19 <0x0 &smmu 0x480 0x20>, 20 <0x100 &smmu 0x4a0 0x20>, 21 <0x200 &smmu 0x4c0 0x20>;
|
/linux-6.3-rc2/drivers/acpi/arm64/ |
A D | iort.c | 429 if (smmu->event_gsiv && smmu->pri_gsiv && in iort_get_id_mapping_index() 430 smmu->gerr_gsiv && smmu->sync_gsiv) in iort_get_id_mapping_index() 1465 if (smmu->pri_gsiv) in arm_smmu_v3_count_resources() 1468 if (smmu->gerr_gsiv) in arm_smmu_v3_count_resources() 1471 if (smmu->sync_gsiv) in arm_smmu_v3_count_resources() 1490 return smmu->event_gsiv == smmu->pri_gsiv && in arm_smmu_v3_is_combined_irq() 1491 smmu->event_gsiv == smmu->gerr_gsiv && in arm_smmu_v3_is_combined_irq() 1492 smmu->event_gsiv == smmu->sync_gsiv; in arm_smmu_v3_is_combined_irq() 1534 if (smmu->pri_gsiv) in arm_smmu_v3_init_resources() 1589 smmu->pxm); in arm_smmu_v3_set_proximity() [all …]
|
/linux-6.3-rc2/Documentation/devicetree/bindings/display/ |
A D | arm,komeda.yaml | 102 iommus = <&smmu 0>, <&smmu 1>, <&smmu 2>, <&smmu 3>, 103 <&smmu 8>, 104 <&smmu 4>, <&smmu 5>, <&smmu 6>, <&smmu 7>, 105 <&smmu 9>;
|
/linux-6.3-rc2/Documentation/devicetree/bindings/perf/ |
A D | arm,smmu-v3-pmcg.yaml | 4 $id: http://devicetree.org/schemas/perf/arm,smmu-v3-pmcg.yaml# 25 - const: arm,smmu-v3-pmcg 26 - const: arm,smmu-v3-pmcg 57 compatible = "arm,smmu-v3-pmcg"; 65 compatible = "arm,smmu-v3-pmcg";
|
/linux-6.3-rc2/arch/arm64/boot/dts/xilinx/ |
A D | zynqmp.dtsi | 306 iommus = <&smmu 0x14e8>; 427 iommus = <&smmu 0x868>; 440 iommus = <&smmu 0x869>; 453 iommus = <&smmu 0x86a>; 466 iommus = <&smmu 0x86b>; 479 iommus = <&smmu 0x86c>; 492 iommus = <&smmu 0x86d>; 505 iommus = <&smmu 0x86e>; 718 iommus = <&smmu 0x4c0>, <&smmu 0x4c1>, 719 <&smmu 0x4c2>, <&smmu 0x4c3>; [all …]
|
/linux-6.3-rc2/include/soc/tegra/ |
A D | mc.h | 47 } smmu; member 102 void tegra_smmu_remove(struct tegra_smmu *smmu); 111 static inline void tegra_smmu_remove(struct tegra_smmu *smmu) in tegra_smmu_remove() argument 201 const struct tegra_smmu_soc *smmu; member 218 struct tegra_smmu *smmu; member
|