Lines Matching refs:domain
319 struct fsl_dma_domain *domain; in iommu_alloc_dma_domain() local
321 domain = kmem_cache_zalloc(fsl_pamu_domain_cache, GFP_KERNEL); in iommu_alloc_dma_domain()
322 if (!domain) in iommu_alloc_dma_domain()
325 domain->stash_id = ~(u32)0; in iommu_alloc_dma_domain()
326 domain->snoop_id = ~(u32)0; in iommu_alloc_dma_domain()
327 domain->win_cnt = pamu_get_max_subwin_cnt(); in iommu_alloc_dma_domain()
328 domain->geom_size = 0; in iommu_alloc_dma_domain()
330 INIT_LIST_HEAD(&domain->devices); in iommu_alloc_dma_domain()
332 spin_lock_init(&domain->domain_lock); in iommu_alloc_dma_domain()
334 return domain; in iommu_alloc_dma_domain()
378 if (old_domain_info && old_domain_info->domain != dma_domain) { in attach_device()
380 detach_device(dev, old_domain_info->domain); in attach_device()
388 info->domain = dma_domain; in attach_device()
402 static phys_addr_t fsl_pamu_iova_to_phys(struct iommu_domain *domain, in fsl_pamu_iova_to_phys() argument
405 struct fsl_dma_domain *dma_domain = domain->priv; in fsl_pamu_iova_to_phys()
407 if ((iova < domain->geometry.aperture_start) || in fsl_pamu_iova_to_phys()
408 iova > (domain->geometry.aperture_end)) in fsl_pamu_iova_to_phys()
419 static void fsl_pamu_domain_destroy(struct iommu_domain *domain) in fsl_pamu_domain_destroy() argument
421 struct fsl_dma_domain *dma_domain = domain->priv; in fsl_pamu_domain_destroy()
423 domain->priv = NULL; in fsl_pamu_domain_destroy()
434 static int fsl_pamu_domain_init(struct iommu_domain *domain) in fsl_pamu_domain_init() argument
443 domain->priv = dma_domain; in fsl_pamu_domain_init()
444 dma_domain->iommu_domain = domain; in fsl_pamu_domain_init()
446 domain->geometry.aperture_start = 0; in fsl_pamu_domain_init()
447 domain->geometry.aperture_end = (1ULL << 36) - 1; in fsl_pamu_domain_init()
448 domain->geometry.force_aperture = true; in fsl_pamu_domain_init()
518 static void fsl_pamu_window_disable(struct iommu_domain *domain, u32 wnd_nr) in fsl_pamu_window_disable() argument
520 struct fsl_dma_domain *dma_domain = domain->priv; in fsl_pamu_window_disable()
549 static int fsl_pamu_window_enable(struct iommu_domain *domain, u32 wnd_nr, in fsl_pamu_window_enable() argument
552 struct fsl_dma_domain *dma_domain = domain->priv; in fsl_pamu_window_enable()
591 ret = check_size(size, domain->geometry.aperture_start); in fsl_pamu_window_enable()
629 struct iommu_domain *domain = dma_domain->iommu_domain; in handle_attach_device() local
653 &domain->geometry, in handle_attach_device()
673 static int fsl_pamu_attach_device(struct iommu_domain *domain, in fsl_pamu_attach_device() argument
676 struct fsl_dma_domain *dma_domain = domain->priv; in fsl_pamu_attach_device()
712 static void fsl_pamu_detach_device(struct iommu_domain *domain, in fsl_pamu_detach_device() argument
715 struct fsl_dma_domain *dma_domain = domain->priv; in fsl_pamu_detach_device()
744 static int configure_domain_geometry(struct iommu_domain *domain, void *data) in configure_domain_geometry() argument
747 struct fsl_dma_domain *dma_domain = domain->priv; in configure_domain_geometry()
770 memcpy(&domain->geometry, geom_attr, in configure_domain_geometry()
835 static int fsl_pamu_set_domain_attr(struct iommu_domain *domain, in fsl_pamu_set_domain_attr() argument
838 struct fsl_dma_domain *dma_domain = domain->priv; in fsl_pamu_set_domain_attr()
844 ret = configure_domain_geometry(domain, data); in fsl_pamu_set_domain_attr()
861 static int fsl_pamu_get_domain_attr(struct iommu_domain *domain, in fsl_pamu_get_domain_attr() argument
864 struct fsl_dma_domain *dma_domain = domain->priv; in fsl_pamu_get_domain_attr()
1026 static int fsl_pamu_set_windows(struct iommu_domain *domain, u32 w_count) in fsl_pamu_set_windows() argument
1028 struct fsl_dma_domain *dma_domain = domain->priv; in fsl_pamu_set_windows()
1057 ret = pamu_set_domain_geometry(dma_domain, &domain->geometry, in fsl_pamu_set_windows()
1074 static u32 fsl_pamu_get_windows(struct iommu_domain *domain) in fsl_pamu_get_windows() argument
1076 struct fsl_dma_domain *dma_domain = domain->priv; in fsl_pamu_get_windows()