Lines Matching full:dte

101 	phys_addr_t (*pt_address)(u32 dte);
162 * | DTE | -> +-----+
176 * Each DTE has a PT address and a valid bit:
187 static inline phys_addr_t rk_dte_pt_address(u32 dte) in rk_dte_pt_address() argument
189 return (phys_addr_t)dte & RK_DTE_PT_ADDRESS_MASK; in rk_dte_pt_address()
208 static inline phys_addr_t rk_dte_pt_address_v2(u32 dte) in rk_dte_pt_address_v2() argument
210 u64 dte_v2 = dte; in rk_dte_pt_address_v2()
219 static inline bool rk_dte_is_pt_valid(u32 dte) in rk_dte_is_pt_valid() argument
221 return dte & RK_DTE_PT_VALID; in rk_dte_is_pt_valid()
309 * | DTE index | PTE index | Page offset |
311 * 31:22 - DTE index - index of DTE in DT
312 * 21:12 - PTE index - index of PTE in PT @ DTE.pt_address
542 u32 dte; in log_iova() local
558 dte = *dte_addr; in log_iova()
560 if (!rk_dte_is_pt_valid(dte)) in log_iova()
563 pte_addr_phys = rk_ops->pt_address(dte) + (pte_index * 4); in log_iova()
576 …dev_err(iommu->dev, "mmu_dte_addr: %pa dte@%pa: %#08x valid: %u pte@%pa: %#08x valid: %u page@%pa … in log_iova()
577 &mmu_dte_addr_phys, &dte_addr_phys, dte, in log_iova()
578 rk_dte_is_pt_valid(dte), &pte_addr_phys, pte, in log_iova()
657 u32 dte, pte; in rk_iommu_iova_to_phys() local
662 dte = rk_domain->dt[rk_iova_dte_index(iova)]; in rk_iommu_iova_to_phys()
663 if (!rk_dte_is_pt_valid(dte)) in rk_iommu_iova_to_phys()
666 pt_phys = rk_ops->pt_address(dte); in rk_iommu_iova_to_phys()
721 u32 dte_index, dte; in rk_dte_get_page_table() local
729 dte = *dte_addr; in rk_dte_get_page_table()
730 if (rk_dte_is_pt_valid(dte)) in rk_dte_get_page_table()
744 dte = rk_ops->mk_dtentries(pt_dma); in rk_dte_get_page_table()
745 *dte_addr = dte; in rk_dte_get_page_table()
750 pt_phys = rk_ops->pt_address(dte); in rk_dte_get_page_table()
801 * mapped cachelines holding stale values for its dte and pte. in rk_iommu_map_iova()
803 * dte or pte shared with an existing mapping. in rk_iommu_map_iova()
839 * aligned, we will always only be mapping from a single dte here. in rk_iommu_map()
869 u32 dte; in rk_iommu_unmap() local
880 * aligned, we will always only be unmapping from a single dte here. in rk_iommu_unmap()
882 dte = rk_domain->dt[rk_iova_dte_index(iova)]; in rk_iommu_unmap()
884 if (!rk_dte_is_pt_valid(dte)) { in rk_iommu_unmap()
889 pt_phys = rk_ops->pt_address(dte); in rk_iommu_unmap()
1104 u32 dte = rk_domain->dt[i]; in rk_iommu_domain_free() local
1105 if (rk_dte_is_pt_valid(dte)) { in rk_iommu_domain_free()
1106 phys_addr_t pt_phys = rk_ops->pt_address(dte); in rk_iommu_domain_free()