/linux-6.12.1/drivers/iommu/arm/arm-smmu-v3/ |
D | arm-smmu-v3-sva.c | 19 arm_smmu_update_s1_domain_cd_entry(struct arm_smmu_domain *smmu_domain) in arm_smmu_update_s1_domain_cd_entry() argument 25 spin_lock_irqsave(&smmu_domain->devices_lock, flags); in arm_smmu_update_s1_domain_cd_entry() 26 list_for_each_entry(master_domain, &smmu_domain->devices, devices_elm) { in arm_smmu_update_s1_domain_cd_entry() 34 arm_smmu_make_s1_cd(&target_cd, master, smmu_domain); in arm_smmu_update_s1_domain_cd_entry() 38 spin_unlock_irqrestore(&smmu_domain->devices_lock, flags); in arm_smmu_update_s1_domain_cd_entry() 132 struct arm_smmu_domain *smmu_domain = in arm_smmu_mm_arch_invalidate_secondary_tlbs() local 142 if (!(smmu_domain->smmu->features & ARM_SMMU_FEAT_RANGE_INV)) { in arm_smmu_mm_arch_invalidate_secondary_tlbs() 151 arm_smmu_tlb_inv_asid(smmu_domain->smmu, smmu_domain->cd.asid); in arm_smmu_mm_arch_invalidate_secondary_tlbs() 153 arm_smmu_tlb_inv_range_asid(start, size, smmu_domain->cd.asid, in arm_smmu_mm_arch_invalidate_secondary_tlbs() 154 PAGE_SIZE, false, smmu_domain); in arm_smmu_mm_arch_invalidate_secondary_tlbs() [all …]
|
D | arm-smmu-v3.c | 86 static int arm_smmu_domain_finalise(struct arm_smmu_domain *smmu_domain, 1353 struct arm_smmu_domain *smmu_domain) in arm_smmu_make_s1_cd() argument 1355 struct arm_smmu_ctx_desc *cd = &smmu_domain->cd; in arm_smmu_make_s1_cd() 1357 &io_pgtable_ops_to_pgtable(smmu_domain->pgtbl_ops)->cfg; in arm_smmu_make_s1_cd() 1638 struct arm_smmu_domain *smmu_domain, in arm_smmu_make_s2_domain_ste() argument 1641 struct arm_smmu_s2_cfg *s2_cfg = &smmu_domain->s2_cfg; in arm_smmu_make_s2_domain_ste() 1643 &io_pgtable_ops_to_pgtable(smmu_domain->pgtbl_ops)->cfg; in arm_smmu_make_s2_domain_ste() 2067 int arm_smmu_atc_inv_domain(struct arm_smmu_domain *smmu_domain, in arm_smmu_atc_inv_domain() argument 2078 if (!(smmu_domain->smmu->features & ARM_SMMU_FEAT_ATS)) in arm_smmu_atc_inv_domain() 2095 if (!atomic_read(&smmu_domain->nr_ats_masters)) in arm_smmu_atc_inv_domain() [all …]
|
D | arm-smmu-v3.h | 843 struct arm_smmu_domain *smmu_domain, 871 struct arm_smmu_domain *smmu_domain); 877 struct arm_smmu_domain *smmu_domain, ioasid_t pasid, 883 struct arm_smmu_domain *smmu_domain); 884 int arm_smmu_atc_inv_domain(struct arm_smmu_domain *smmu_domain,
|
D | arm-smmu-v3-test.c | 306 struct arm_smmu_domain smmu_domain = { in arm_smmu_test_make_s2_ste() local 319 arm_smmu_make_s2_domain_ste(ste, &master, &smmu_domain, ats_enabled); in arm_smmu_test_make_s2_ste() 458 struct arm_smmu_domain smmu_domain = { in arm_smmu_test_make_s1_cd() local 474 arm_smmu_make_s1_cd(cd, &master, &smmu_domain); in arm_smmu_test_make_s1_cd()
|
/linux-6.12.1/drivers/iommu/arm/arm-smmu/ |
D | arm-smmu.c | 242 static void arm_smmu_tlb_sync_context(struct arm_smmu_domain *smmu_domain) in arm_smmu_tlb_sync_context() argument 244 struct arm_smmu_device *smmu = smmu_domain->smmu; in arm_smmu_tlb_sync_context() 247 spin_lock_irqsave(&smmu_domain->cb_lock, flags); in arm_smmu_tlb_sync_context() 248 __arm_smmu_tlb_sync(smmu, ARM_SMMU_CB(smmu, smmu_domain->cfg.cbndx), in arm_smmu_tlb_sync_context() 250 spin_unlock_irqrestore(&smmu_domain->cb_lock, flags); in arm_smmu_tlb_sync_context() 255 struct arm_smmu_domain *smmu_domain = cookie; in arm_smmu_tlb_inv_context_s1() local 261 arm_smmu_cb_write(smmu_domain->smmu, smmu_domain->cfg.cbndx, in arm_smmu_tlb_inv_context_s1() 262 ARM_SMMU_CB_S1_TLBIASID, smmu_domain->cfg.asid); in arm_smmu_tlb_inv_context_s1() 263 arm_smmu_tlb_sync_context(smmu_domain); in arm_smmu_tlb_inv_context_s1() 268 struct arm_smmu_domain *smmu_domain = cookie; in arm_smmu_tlb_inv_context_s2() local [all …]
|
D | arm-smmu-qcom-debug.c | 127 static int qcom_tbu_halt(struct qcom_tbu *tbu, struct arm_smmu_domain *smmu_domain) in qcom_tbu_halt() argument 129 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_tbu_halt() 130 int ret = 0, idx = smmu_domain->cfg.cbndx; in qcom_tbu_halt() 201 static phys_addr_t qcom_tbu_trigger_atos(struct arm_smmu_domain *smmu_domain, in qcom_tbu_trigger_atos() argument 263 static phys_addr_t qcom_iova_to_phys(struct arm_smmu_domain *smmu_domain, in qcom_iova_to_phys() argument 266 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_iova_to_phys() 268 int idx = smmu_domain->cfg.cbndx; in qcom_iova_to_phys() 288 ret = qcom_tbu_halt(tbu, smmu_domain); in qcom_iova_to_phys() 320 phys = qcom_tbu_trigger_atos(smmu_domain, tbu, iova, sid); in qcom_iova_to_phys() 348 static phys_addr_t qcom_smmu_iova_to_phys_hard(struct arm_smmu_domain *smmu_domain, dma_addr_t iova) in qcom_smmu_iova_to_phys_hard() argument [all …]
|
D | arm-smmu-qcom.c | 64 struct arm_smmu_domain *smmu_domain = (void *)cookie; in qcom_adreno_smmu_get_fault_info() local 65 struct arm_smmu_cfg *cfg = &smmu_domain->cfg; in qcom_adreno_smmu_get_fault_info() 66 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_adreno_smmu_get_fault_info() 79 struct arm_smmu_domain *smmu_domain = (void *)cookie; in qcom_adreno_smmu_set_stall() local 80 struct arm_smmu_cfg *cfg = &smmu_domain->cfg; in qcom_adreno_smmu_set_stall() 81 struct qcom_smmu *qsmmu = to_qcom_smmu(smmu_domain->smmu); in qcom_adreno_smmu_set_stall() 91 struct arm_smmu_domain *smmu_domain = (void *)cookie; in qcom_adreno_smmu_resume_translation() local 92 struct arm_smmu_cfg *cfg = &smmu_domain->cfg; in qcom_adreno_smmu_resume_translation() 93 struct arm_smmu_device *smmu = smmu_domain->smmu; in qcom_adreno_smmu_resume_translation() 126 struct arm_smmu_domain *smmu_domain = (void *)cookie; in qcom_adreno_smmu_get_ttbr1_cfg() local [all …]
|
D | arm-smmu-impl.c | 71 static int cavium_init_context(struct arm_smmu_domain *smmu_domain, in cavium_init_context() argument 74 struct cavium_smmu *cs = container_of(smmu_domain->smmu, in cavium_init_context() 77 if (smmu_domain->stage == ARM_SMMU_DOMAIN_S2) in cavium_init_context() 78 smmu_domain->cfg.vmid += cs->id_base; in cavium_init_context() 80 smmu_domain->cfg.asid += cs->id_base; in cavium_init_context()
|
D | arm-smmu-nvidia.c | 224 struct arm_smmu_domain *smmu_domain = dev; in nvidia_smmu_context_fault() local 227 smmu = smmu_domain->smmu; in nvidia_smmu_context_fault() 259 static int nvidia_smmu_init_context(struct arm_smmu_domain *smmu_domain, in nvidia_smmu_init_context() argument 263 struct arm_smmu_device *smmu = smmu_domain->smmu; in nvidia_smmu_init_context()
|
D | arm-smmu.h | 442 int (*init_context)(struct arm_smmu_domain *smmu_domain, 450 int (*alloc_context_bank)(struct arm_smmu_domain *smmu_domain,
|