Lines Matching full:master
27 struct arm_smmu_master *master = master_domain->master; in arm_smmu_update_s1_domain_cd_entry() local
30 cdptr = arm_smmu_get_cd_ptr(master, master_domain->ssid); 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()
35 arm_smmu_write_cd_entry(master, master_domain->ssid, cdptr, in arm_smmu_update_s1_domain_cd_entry()
54 struct arm_smmu_master *master, struct mm_struct *mm, in arm_smmu_make_sva_cd() argument
73 (master->stall_enabled ? CTXDESC_CD_0_S : 0) | in arm_smmu_make_sva_cd()
105 if (!(master->smmu->features & ARM_SMMU_FEAT_STALL_FORCE)) in arm_smmu_make_sva_cd()
123 dev_warn_once(master->smmu->dev, "SVA devices ignore permission overlays and GCS\n"); in arm_smmu_make_sva_cd()
182 struct arm_smmu_master *master = master_domain->master; in arm_smmu_mm_release() local
186 cdptr = arm_smmu_get_cd_ptr(master, master_domain->ssid); in arm_smmu_mm_release()
189 arm_smmu_make_sva_cd(&target, master, NULL, in arm_smmu_mm_release()
191 arm_smmu_write_cd_entry(master, master_domain->ssid, cdptr, in arm_smmu_mm_release()
260 bool arm_smmu_master_iopf_supported(struct arm_smmu_master *master) in arm_smmu_master_iopf_supported() argument
263 if (master->num_streams != 1) in arm_smmu_master_iopf_supported()
266 return master->stall_enabled; in arm_smmu_master_iopf_supported()
269 bool arm_smmu_master_sva_supported(struct arm_smmu_master *master) in arm_smmu_master_sva_supported() argument
271 if (!(master->smmu->features & ARM_SMMU_FEAT_SVA)) in arm_smmu_master_sva_supported()
275 return master->ssid_bits; in arm_smmu_master_sva_supported()
278 bool arm_smmu_master_sva_enabled(struct arm_smmu_master *master) in arm_smmu_master_sva_enabled() argument
283 enabled = master->sva_enabled; in arm_smmu_master_sva_enabled()
288 static int arm_smmu_master_sva_enable_iopf(struct arm_smmu_master *master) in arm_smmu_master_sva_enable_iopf() argument
290 struct device *dev = master->dev; in arm_smmu_master_sva_enable_iopf()
296 if (!arm_smmu_master_iopf_supported(master)) in arm_smmu_master_sva_enable_iopf()
299 if (!master->iopf_enabled) in arm_smmu_master_sva_enable_iopf()
302 return iopf_queue_add_device(master->smmu->evtq.iopf, dev); in arm_smmu_master_sva_enable_iopf()
305 static void arm_smmu_master_sva_disable_iopf(struct arm_smmu_master *master) in arm_smmu_master_sva_disable_iopf() argument
307 struct device *dev = master->dev; in arm_smmu_master_sva_disable_iopf()
309 if (!master->iopf_enabled) in arm_smmu_master_sva_disable_iopf()
312 iopf_queue_remove_device(master->smmu->evtq.iopf, dev); in arm_smmu_master_sva_disable_iopf()
315 int arm_smmu_master_enable_sva(struct arm_smmu_master *master) in arm_smmu_master_enable_sva() argument
320 ret = arm_smmu_master_sva_enable_iopf(master); in arm_smmu_master_enable_sva()
322 master->sva_enabled = true; in arm_smmu_master_enable_sva()
328 int arm_smmu_master_disable_sva(struct arm_smmu_master *master) in arm_smmu_master_disable_sva() argument
331 arm_smmu_master_sva_disable_iopf(master); in arm_smmu_master_disable_sva()
332 master->sva_enabled = false; in arm_smmu_master_disable_sva()
352 struct arm_smmu_master *master = dev_iommu_priv_get(dev); in arm_smmu_sva_set_dev_pasid() local
364 arm_smmu_make_sva_cd(&target, master, domain->mm, smmu_domain->cd.asid); in arm_smmu_sva_set_dev_pasid()
365 ret = arm_smmu_set_pasid(master, smmu_domain, id, &target, old); in arm_smmu_sva_set_dev_pasid()
403 struct arm_smmu_master *master = dev_iommu_priv_get(dev); in arm_smmu_sva_domain_alloc() local
404 struct arm_smmu_device *smmu = master->smmu; in arm_smmu_sva_domain_alloc()