arm_lpae_iopte
#define ARM_LPAE_PTE_HAP_FAULT (((arm_lpae_iopte)0) << 6)
#define ARM_LPAE_PTE_HAP_READ (((arm_lpae_iopte)1) << 6)
#define ARM_LPAE_PTE_HAP_WRITE (((arm_lpae_iopte)2) << 6)
if (WARN_ON((ARM_LPAE_PGD_SIZE(data) / sizeof(arm_lpae_iopte)) >
#define ARM_LPAE_PTE_MEMATTR_FWB_WB (((arm_lpae_iopte)0x6) << 2)
#define ARM_LPAE_PTE_MEMATTR_OIWB (((arm_lpae_iopte)0xf) << 2)
#define ARM_LPAE_PTE_MEMATTR_NC (((arm_lpae_iopte)0x5) << 2)
#define ARM_LPAE_PTE_MEMATTR_DEV (((arm_lpae_iopte)0x1) << 2)
static inline bool iopte_leaf(arm_lpae_iopte pte, int lvl,
static inline bool iopte_table(arm_lpae_iopte pte, int lvl)
static arm_lpae_iopte paddr_to_iopte(phys_addr_t paddr,
arm_lpae_iopte pte = paddr;
static phys_addr_t iopte_to_paddr(arm_lpae_iopte pte,
static void __arm_lpae_sync_pte(arm_lpae_iopte *ptep, int num_entries,
static void __arm_lpae_clear_pte(arm_lpae_iopte *ptep, struct io_pgtable_cfg *cfg, int num_entries)
int lvl, arm_lpae_iopte *ptep);
phys_addr_t paddr, arm_lpae_iopte prot,
int lvl, int num_entries, arm_lpae_iopte *ptep)
arm_lpae_iopte pte = prot;
arm_lpae_iopte prot, int lvl, int num_entries,
arm_lpae_iopte *ptep)
arm_lpae_iopte *tblp;
ilog2(sizeof(arm_lpae_iopte)))
static arm_lpae_iopte arm_lpae_install_table(arm_lpae_iopte *table,
arm_lpae_iopte *ptep,
arm_lpae_iopte curr,
arm_lpae_iopte old, new;
(sizeof(arm_lpae_iopte) << (d)->bits_per_level)
arm_lpae_iopte prot, int lvl, arm_lpae_iopte *ptep,
arm_lpae_iopte *cptep, pte;
(sizeof(arm_lpae_iopte) << (d)->pgd_bits)
(ARM_LPAE_GRANULE(d) >> ilog2(sizeof(arm_lpae_iopte)))
static arm_lpae_iopte arm_lpae_prot_to_pte(struct arm_lpae_io_pgtable *data,
arm_lpae_iopte pte;
arm_lpae_iopte *ptep = data->pgd;
arm_lpae_iopte prot;
arm_lpae_iopte *ptep)
arm_lpae_iopte *start, *end;
arm_lpae_iopte pte = *ptep++;
int lvl, arm_lpae_iopte *ptep)
arm_lpae_iopte pte;
arm_lpae_iopte *ptep = data->pgd;
arm_lpae_iopte *ptep, size_t size);
arm_lpae_iopte *ptep,
arm_lpae_iopte pte;
#define ARM_LPAE_PTE_NSTABLE (((arm_lpae_iopte)1) << 63)
arm_lpae_iopte *ptep, size_t size)
#define ARM_LPAE_PTE_XN (((arm_lpae_iopte)3) << 53)
#define ARM_LPAE_PTE_DBM (((arm_lpae_iopte)1) << 51)
#define ARM_LPAE_PTE_AF (((arm_lpae_iopte)1) << 10)
arm_lpae_iopte *ptep, size_t size)
#define ARM_LPAE_PTE_SH_NS (((arm_lpae_iopte)0) << 8)
#define ARM_LPAE_PTE_SH_OS (((arm_lpae_iopte)2) << 8)
arm_lpae_iopte *ptep, int lvl)
arm_lpae_iopte pte = READ_ONCE(*ptep);
#define ARM_LPAE_PTE_SH_IS (((arm_lpae_iopte)3) << 8)
#define ARM_LPAE_PTE_NS (((arm_lpae_iopte)1) << 5)
arm_lpae_iopte *ptep,
#define ARM_LPAE_PTE_VALID (((arm_lpae_iopte)1) << 0)
max_entries = ARM_LPAE_PGD_SIZE(data) / sizeof(arm_lpae_iopte);
arm_lpae_iopte *ptep, size_t size)
#define ARM_LPAE_PTE_SW_SYNC (((arm_lpae_iopte)1) << 55)
arm_lpae_iopte *ptep = data->pgd;
#define ARM_LPAE_PTE_AP_UNPRIV (((arm_lpae_iopte)1) << 6)
#define ARM_LPAE_PTE_AP_RDONLY (((arm_lpae_iopte)1) << \
#define ARM_LPAE_PTE_nG (((arm_lpae_iopte)1) << 11)
data->bits_per_level = pg_shift - ilog2(sizeof(arm_lpae_iopte));