Lines Matching refs:smmu

368 	struct arm_smmu_device		*smmu;
374 struct mutex init_mutex; /* Protects smmu pointer */
380 struct arm_smmu_device *smmu;
425 u32 (*read_reg)(struct arm_smmu_device *smmu, int page, int offset);
426 void (*write_reg)(struct arm_smmu_device *smmu, int page, int offset,
428 u64 (*read_reg64)(struct arm_smmu_device *smmu, int page, int offset);
429 void (*write_reg64)(struct arm_smmu_device *smmu, int page, int offset,
431 int (*cfg_probe)(struct arm_smmu_device *smmu);
432 int (*reset)(struct arm_smmu_device *smmu);
435 void (*tlb_sync)(struct arm_smmu_device *smmu, int page, int sync,
441 struct arm_smmu_device *smmu,
443 void (*write_s2cr)(struct arm_smmu_device *smmu, int idx);
444 void (*write_sctlr)(struct arm_smmu_device *smmu, int idx, u32 reg);
445 void (*probe_finalize)(struct arm_smmu_device *smmu, struct device *dev);
467 static inline void __iomem *arm_smmu_page(struct arm_smmu_device *smmu, int n)
469 return smmu->base + (n << smmu->pgshift);
472 static inline u32 arm_smmu_readl(struct arm_smmu_device *smmu, int page, int offset)
474 if (smmu->impl && unlikely(smmu->impl->read_reg))
475 return smmu->impl->read_reg(smmu, page, offset);
476 return readl_relaxed(arm_smmu_page(smmu, page) + offset);
479 static inline void arm_smmu_writel(struct arm_smmu_device *smmu, int page,
482 if (smmu->impl && unlikely(smmu->impl->write_reg))
483 smmu->impl->write_reg(smmu, page, offset, val);
485 writel_relaxed(val, arm_smmu_page(smmu, page) + offset);
488 static inline u64 arm_smmu_readq(struct arm_smmu_device *smmu, int page, int offset)
490 if (smmu->impl && unlikely(smmu->impl->read_reg64))
491 return smmu->impl->read_reg64(smmu, page, offset);
492 return readq_relaxed(arm_smmu_page(smmu, page) + offset);
495 static inline void arm_smmu_writeq(struct arm_smmu_device *smmu, int page,
498 if (smmu->impl && unlikely(smmu->impl->write_reg64))
499 smmu->impl->write_reg64(smmu, page, offset, val);
501 writeq_relaxed(val, arm_smmu_page(smmu, page) + offset);
527 struct arm_smmu_device *arm_smmu_impl_init(struct arm_smmu_device *smmu);
528 struct arm_smmu_device *nvidia_smmu_impl_init(struct arm_smmu_device *smmu);
529 struct arm_smmu_device *qcom_smmu_impl_init(struct arm_smmu_device *smmu);
531 void arm_smmu_write_context_bank(struct arm_smmu_device *smmu, int idx);
532 int arm_mmu500_reset(struct arm_smmu_device *smmu);