| /linux-6.15/drivers/iommu/arm/arm-smmu/ |
| H A D | arm-smmu.c | 786 smmu_domain->smmu = smmu; in arm_smmu_init_domain_context() 1178 smmu = cfg->smmu; in arm_smmu_attach_dev() 1193 if (smmu_domain->smmu != smmu) { in arm_smmu_attach_dev() 1216 smmu = cfg->smmu; in arm_smmu_attach_dev_type() 1467 cfg->smmu = smmu; in arm_smmu_probe_device() 1516 smmu = cfg->smmu; in arm_smmu_probe_finalize() 1705 smmu->impl->reset(smmu); in arm_smmu_device_reset() 1810 smmu->smrs = devm_kcalloc(smmu->dev, size, sizeof(*smmu->smrs), in arm_smmu_device_cfg_probe() 1858 smmu->cbs = devm_kcalloc(smmu->dev, smmu->num_context_banks, in arm_smmu_device_cfg_probe() 1885 smmu->va_size = smmu->ipa_size; in arm_smmu_device_cfg_probe() [all …]
|
| H 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() 204 switch (smmu->model) { in arm_smmu_impl_init() 206 smmu->impl = &arm_mmu500_impl; in arm_smmu_impl_init() 216 smmu->impl = &calxeda_impl; in arm_smmu_impl_init() 224 smmu = qcom_smmu_impl_init(smmu); in arm_smmu_impl_init() 227 smmu->impl = &mrvl_mmu500_impl; in arm_smmu_impl_init() [all …]
|
| H A D | arm-smmu-qcom.c | 55 return container_of(smmu, struct qcom_smmu, smmu); in to_qcom_smmu() 100 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_adreno_smmu_get_fault_info() local 127 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_adreno_smmu_resume_translation() local 139 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_adreno_smmu_set_prr_bit() local 161 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_adreno_smmu_set_prr_addr() local 303 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_adreno_smmu_init_context() local 379 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_smmu_init_context() local 615 return smmu; in qcom_smmu_create() 622 qsmmu = devm_krealloc(smmu->dev, smmu, sizeof(*qsmmu), GFP_KERNEL); in qcom_smmu_create() 629 return &qsmmu->smmu; in qcom_smmu_create() [all …]
|
| H 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 227 smmu = smmu_domain->smmu; in nvidia_smmu_context_fault() 263 struct arm_smmu_device *smmu = smmu_domain->smmu; in nvidia_smmu_init_context() local [all …]
|
| H A D | arm-smmu-qcom-debug.c | 61 return container_of(smmu, struct qcom_smmu, smmu); in to_qcom_smmu() 68 struct qcom_smmu *qsmmu = container_of(smmu, struct qcom_smmu, smmu); in qcom_smmu_tlb_sync_debug() 83 dev_err(smmu->dev, in qcom_smmu_tlb_sync_debug() 89 dev_err(smmu->dev, in qcom_smmu_tlb_sync_debug() 95 dev_err(smmu->dev, in qcom_smmu_tlb_sync_debug() 98 dev_err(smmu->dev, in qcom_smmu_tlb_sync_debug() 129 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_tbu_halt() local 266 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_iova_to_phys() local 350 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_smmu_iova_to_phys_hard() local 364 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_smmu_verify_fault() local [all …]
|
| H A D | arm-smmu.h | 379 struct arm_smmu_device *smmu; member 391 struct arm_smmu_device *smmu; member 481 return smmu->base + (n << smmu->pgshift); in arm_smmu_page() 486 if (smmu->impl && unlikely(smmu->impl->read_reg)) in arm_smmu_readl() 487 return smmu->impl->read_reg(smmu, page, offset); in arm_smmu_readl() 494 if (smmu->impl && unlikely(smmu->impl->write_reg)) in arm_smmu_writel() 495 smmu->impl->write_reg(smmu, page, offset, val); in arm_smmu_writel() 502 if (smmu->impl && unlikely(smmu->impl->read_reg64)) in arm_smmu_readq() 503 return smmu->impl->read_reg64(smmu, page, offset); in arm_smmu_readq() 510 if (smmu->impl && unlikely(smmu->impl->write_reg64)) in arm_smmu_writeq() [all …]
|
| H 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
|
| /linux-6.15/drivers/iommu/ |
| H A D | tegra-smmu.c | 90 ((smmu)->soc->num_tlb_lines & (smmu)->tlb_mask) 445 as->smmu = smmu; in tegra_smmu_as_prepare() 529 smmu = as->smmu; in tegra_smmu_identity_attach() 550 struct tegra_smmu *smmu = as->smmu; in tegra_smmu_set_pde() local 578 struct tegra_smmu *smmu = as->smmu; in tegra_smmu_pte_lookup() local 596 struct tegra_smmu *smmu = as->smmu; in as_get_pte() local 647 struct tegra_smmu *smmu = as->smmu; in tegra_smmu_pte_put_use() local 662 struct tegra_smmu *smmu = as->smmu; in tegra_smmu_set_pte() local 902 struct tegra_smmu *smmu = group->smmu; in tegra_smmu_group_release() local 939 group->smmu = smmu; in tegra_smmu_device_group() [all …]
|
| /linux-6.15/Documentation/devicetree/bindings/iommu/ |
| H A D | arm,smmu.yaml | 33 - const: qcom,smmu-v2 66 - const: qcom,smmu-500 134 - const: qcom,smmu-v2 155 - const: arm,smmu-v2 160 - const: arm,smmu-v1 162 - arm,smmu-v1 163 - arm,smmu-v2 167 - cavium,smmu-v2 392 the smmu ptw 449 the smmu ptw [all …]
|
| /linux-6.15/drivers/iommu/arm/arm-smmu-v3/ |
| H A D | arm-smmu-v3.c | 2593 smmu_domain->smmu = smmu; in arm_smmu_domain_finalise() 2953 smmu = master->smmu; in arm_smmu_attach_dev() 2955 if (smmu_domain->smmu != smmu) in arm_smmu_attach_dev() 3013 if (smmu_domain->smmu != smmu) in arm_smmu_s1_set_dev_pasid() 3467 master->smmu = smmu; in arm_smmu_probe_device() 3762 ret = arm_smmu_init_one_queue(smmu, &smmu->cmdq.q, smmu->base, in arm_smmu_init_queues() 3773 ret = arm_smmu_init_one_queue(smmu, &smmu->evtq.q, smmu->page1, in arm_smmu_init_queues() 3790 return arm_smmu_init_one_queue(smmu, &smmu->priq.q, smmu->page1, in arm_smmu_init_queues() 4503 smmu->ias = max(smmu->ias, smmu->oas); in arm_smmu_device_hw_probe() 4515 smmu->ias, smmu->oas, smmu->features); in arm_smmu_device_hw_probe() [all …]
|
| H A D | arm-smmu-v3-sva.c | 105 if (!(master->smmu->features & ARM_SMMU_FEAT_STALL_FORCE)) in arm_smmu_make_sva_cd() 211 bool arm_smmu_sva_supported(struct arm_smmu_device *smmu) in arm_smmu_sva_supported() argument 225 if ((smmu->features & feat_mask) != feat_mask) in arm_smmu_sva_supported() 228 if (!(smmu->pgsize_bitmap & PAGE_SIZE)) in arm_smmu_sva_supported() 239 if (smmu->oas < oas) in arm_smmu_sva_supported() 245 if (smmu->asid_bits < asid_bits) in arm_smmu_sva_supported() 271 if (!(master->smmu->features & ARM_SMMU_FEAT_SVA)) in arm_smmu_master_sva_supported() 302 return iopf_queue_add_device(master->smmu->evtq.iopf, dev); in arm_smmu_master_sva_enable_iopf() 312 iopf_queue_remove_device(master->smmu->evtq.iopf, dev); in arm_smmu_master_sva_disable_iopf() 404 struct arm_smmu_device *smmu = master->smmu; in arm_smmu_sva_domain_alloc() local [all …]
|
| H A D | tegra241-cmdqv.c | 174 struct arm_smmu_device smmu; member 322 container_of(smmu, struct tegra241_cmdqv, smmu); in tegra241_cmdqv_get_cmdq() 460 container_of(smmu, struct tegra241_cmdqv, smmu); in tegra241_cmdqv_hw_reset() 492 struct arm_smmu_device *smmu = &vcmdq->cmdqv->smmu; in tegra241_vcmdq_alloc_smmu_cmdq() local 658 container_of(smmu, struct tegra241_cmdqv, smmu); in tegra241_cmdqv_remove() 754 container_of(smmu, struct tegra241_cmdqv, smmu); in tegra241_cmdqv_init_structures() 817 cmdqv = devm_krealloc(smmu->dev, smmu, sizeof(*cmdqv), GFP_KERNEL); in __tegra241_cmdqv_probe() 820 new_smmu = &cmdqv->smmu; in __tegra241_cmdqv_probe() 824 cmdqv->dev = smmu->impl_dev; in __tegra241_cmdqv_probe() 876 if (!smmu->dev->of_node) in tegra241_cmdqv_probe() [all …]
|
| H A D | arm-smmu-v3-iommufd.c | 21 base_idr = master->smmu->base + ARM_SMMU_IDR0; in arm_smmu_hw_info() 118 mutex_lock(&master->smmu->streams_mutex); in arm_smmu_attach_commit_vmaster() 121 mutex_unlock(&master->smmu->streams_mutex); in arm_smmu_attach_commit_vmaster() 145 if (nested_domain->vsmmu->smmu != master->smmu) in arm_smmu_attach_dev_nested() 334 struct arm_smmu_device *smmu = vsmmu->smmu; in arm_vsmmu_cache_invalidate() local 366 ret = arm_smmu_cmdq_issue_cmdlist(smmu, &smmu->cmdq, last->cmd, in arm_vsmmu_cache_invalidate() 390 struct arm_smmu_device *smmu = in arm_vsmmu_alloc() local 399 if (!(smmu->features & ARM_SMMU_FEAT_NESTING)) in arm_vsmmu_alloc() 402 if (s2_parent->smmu != master->smmu) in arm_vsmmu_alloc() 422 !(smmu->features & ARM_SMMU_FEAT_S2FWB)) in arm_vsmmu_alloc() [all …]
|
| H A D | Makefile | 3 arm_smmu_v3-y := arm-smmu-v3.o 4 arm_smmu_v3-$(CONFIG_ARM_SMMU_V3_IOMMUFD) += arm-smmu-v3-iommufd.o 5 arm_smmu_v3-$(CONFIG_ARM_SMMU_V3_SVA) += arm-smmu-v3-sva.o 8 obj-$(CONFIG_ARM_SMMU_V3_KUNIT_TEST) += arm-smmu-v3-test.o
|
| H A D | arm-smmu-v3.h | 718 int (*device_reset)(struct arm_smmu_device *smmu); 719 void (*device_remove)(struct arm_smmu_device *smmu); 720 int (*init_structures)(struct arm_smmu_device *smmu); 830 struct arm_smmu_device *smmu; member 852 struct arm_smmu_device *smmu; member 905 void arm_smmu_make_bypass_ste(struct arm_smmu_device *smmu, 961 int arm_smmu_init_one_queue(struct arm_smmu_device *smmu, 965 int arm_smmu_cmdq_init(struct arm_smmu_device *smmu, 997 bool arm_smmu_sva_supported(struct arm_smmu_device *smmu); 1047 tegra241_cmdqv_probe(struct arm_smmu_device *smmu) in tegra241_cmdqv_probe() argument [all …]
|
| /linux-6.15/drivers/memory/tegra/ |
| H 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 …]
|
| H 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 …]
|
| H 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 …]
|
| H 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.15/arch/arm64/boot/dts/marvell/ |
| H A D | armada-8040.dtsi | 14 <0x0 &smmu 0x480 0x20>, 15 <0x100 &smmu 0x4a0 0x20>, 16 <0x200 &smmu 0x4c0 0x20>; 30 iommus = <&smmu 0x444>; 34 iommus = <&smmu 0x445>; 38 iommus = <&smmu 0x440>; 42 iommus = <&smmu 0x441>; 46 iommus = <&smmu 0x454>; 50 iommus = <&smmu 0x450>; 54 iommus = <&smmu 0x451>;
|
| H A D | armada-7040.dtsi | 14 <0x0 &smmu 0x480 0x20>, 15 <0x100 &smmu 0x4a0 0x20>, 16 <0x200 &smmu 0x4c0 0x20>; 21 iommus = <&smmu 0x444>; 25 iommus = <&smmu 0x445>; 29 iommus = <&smmu 0x440>; 33 iommus = <&smmu 0x441>;
|
| /linux-6.15/drivers/acpi/arm64/ |
| H A D | iort.c | 430 if (smmu->event_gsiv && smmu->pri_gsiv && in iort_get_id_mapping_index() 431 smmu->gerr_gsiv && smmu->sync_gsiv) in iort_get_id_mapping_index() 1467 if (smmu->pri_gsiv) in arm_smmu_v3_count_resources() 1470 if (smmu->gerr_gsiv) in arm_smmu_v3_count_resources() 1473 if (smmu->sync_gsiv) in arm_smmu_v3_count_resources() 1492 return smmu->event_gsiv == smmu->pri_gsiv && in arm_smmu_v3_is_combined_irq() 1493 smmu->event_gsiv == smmu->gerr_gsiv && in arm_smmu_v3_is_combined_irq() 1494 smmu->event_gsiv == smmu->sync_gsiv; in arm_smmu_v3_is_combined_irq() 1536 if (smmu->pri_gsiv) in arm_smmu_v3_init_resources() 1591 smmu->pxm); in arm_smmu_v3_set_proximity() [all …]
|
| /linux-6.15/Documentation/devicetree/bindings/display/ |
| H 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.15/arch/arm64/boot/dts/freescale/ |
| H A D | imx8qm-ss-conn.dtsi | 13 iommus = <&smmu 0x12 0x7f80>; 18 iommus = <&smmu 0x12 0x7f80>; 23 iommus = <&smmu 0x11 0x7f80>; 28 iommus = <&smmu 0x11 0x7f80>; 33 iommus = <&smmu 0x11 0x7f80>;
|
| /linux-6.15/Documentation/devicetree/bindings/perf/ |
| H 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";
|