Lines Matching refs:iop

31 	container_of((x), struct arm_lpae_io_pgtable, iop)
139 struct io_pgtable iop;
262 if (data->iop.fmt != ARM_MALI_LPAE && lvl == ARM_LPAE_MAX_LEVELS - 1)
269 __arm_lpae_set_pte(ptep, pte, &data->iop.cfg);
279 if (iopte_leaf(pte, lvl, data->iop.fmt)) {
308 struct io_pgtable_cfg *cfg = &data->iop.cfg;
341 struct io_pgtable_cfg *cfg = &data->iop.cfg;
368 if (pte && !iopte_leaf(pte, lvl, data->iop.fmt)) {
385 if (data->iop.fmt == ARM_64_LPAE_S1 ||
386 data->iop.fmt == ARM_32_LPAE_S1) {
404 if (data->iop.fmt == ARM_64_LPAE_S2 ||
405 data->iop.fmt == ARM_32_LPAE_S2) {
427 if (prot & IOMMU_CACHE && data->iop.fmt != ARM_MALI_LPAE)
435 if (data->iop.cfg.quirks & IO_PGTABLE_QUIRK_ARM_NS)
438 if (data->iop.fmt != ARM_MALI_LPAE)
448 struct io_pgtable_cfg *cfg = &data->iop.cfg;
499 if (!pte || iopte_leaf(pte, lvl, data->iop.fmt))
505 __arm_lpae_free_pages(start, table_size, &data->iop.cfg);
508 static void arm_lpae_free_pgtable(struct io_pgtable *iop)
510 struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
522 struct io_pgtable_cfg *cfg = &data->iop.cfg;
563 io_pgtable_tlb_add_page(&data->iop, gather, iova, size);
576 struct io_pgtable *iop = &data->iop;
589 __arm_lpae_set_pte(ptep, 0, &iop->cfg);
591 if (!iopte_leaf(pte, lvl, iop->fmt)) {
593 io_pgtable_tlb_flush_walk(iop, iova, size,
597 } else if (iop->cfg.quirks & IO_PGTABLE_QUIRK_NON_STRICT) {
605 io_pgtable_tlb_add_page(iop, gather, iova, size);
609 } else if (iopte_leaf(pte, lvl, iop->fmt)) {
627 struct io_pgtable_cfg *cfg = &data->iop.cfg;
663 if (iopte_leaf(pte, lvl, data->iop.fmt))
752 data->iop.ops = (struct io_pgtable_ops) {
853 return &data->iop;
955 return &data->iop;
1034 return &data->iop;
1099 struct io_pgtable_cfg *cfg = &data->iop.cfg;