Lines Matching full:dte
152 * | DTE | -> +-----+
166 * Each DTE has a PT address and a valid bit:
177 static inline phys_addr_t rk_dte_pt_address(u32 dte) in rk_dte_pt_address() argument
179 return (phys_addr_t)dte & RK_DTE_PT_ADDRESS_MASK; in rk_dte_pt_address()
182 static inline bool rk_dte_is_pt_valid(u32 dte) in rk_dte_is_pt_valid() argument
184 return dte & RK_DTE_PT_VALID; in rk_dte_is_pt_valid()
247 * | DTE index | PTE index | Page offset |
249 * 31:22 - DTE index - index of DTE in DT
250 * 21:12 - PTE index - index of PTE in PT @ DTE.pt_address
480 u32 dte; in log_iova() local
496 dte = *dte_addr; in log_iova()
498 if (!rk_dte_is_pt_valid(dte)) in log_iova()
501 pte_addr_phys = rk_dte_pt_address(dte) + (pte_index * 4); in log_iova()
514 …dev_err(iommu->dev, "mmu_dte_addr: %pa dte@%pa: %#08x valid: %u pte@%pa: %#08x valid: %u page@%pa … in log_iova()
515 &mmu_dte_addr_phys, &dte_addr_phys, dte, in log_iova()
516 rk_dte_is_pt_valid(dte), &pte_addr_phys, pte, in log_iova()
595 u32 dte, pte; in rk_iommu_iova_to_phys() local
600 dte = rk_domain->dt[rk_iova_dte_index(iova)]; in rk_iommu_iova_to_phys()
601 if (!rk_dte_is_pt_valid(dte)) in rk_iommu_iova_to_phys()
604 pt_phys = rk_dte_pt_address(dte); in rk_iommu_iova_to_phys()
659 u32 dte_index, dte; in rk_dte_get_page_table() local
667 dte = *dte_addr; in rk_dte_get_page_table()
668 if (rk_dte_is_pt_valid(dte)) in rk_dte_get_page_table()
682 dte = rk_mk_dte(pt_dma); in rk_dte_get_page_table()
683 *dte_addr = dte; in rk_dte_get_page_table()
689 pt_phys = rk_dte_pt_address(dte); in rk_dte_get_page_table()
740 * mapped cachelines holding stale values for its dte and pte. in rk_iommu_map_iova()
742 * dte or pte shared with an existing mapping. in rk_iommu_map_iova()
777 * aligned, we will always only be mapping from a single dte here. in rk_iommu_map()
804 u32 dte; in rk_iommu_unmap() local
815 * aligned, we will always only be unmapping from a single dte here. in rk_iommu_unmap()
817 dte = rk_domain->dt[rk_iova_dte_index(iova)]; in rk_iommu_unmap()
819 if (!rk_dte_is_pt_valid(dte)) { in rk_iommu_unmap()
824 pt_phys = rk_dte_pt_address(dte); in rk_iommu_unmap()
1038 u32 dte = rk_domain->dt[i]; in rk_iommu_domain_free() local
1039 if (rk_dte_is_pt_valid(dte)) { in rk_iommu_domain_free()
1040 phys_addr_t pt_phys = rk_dte_pt_address(dte); in rk_iommu_domain_free()