rk_domain         592 drivers/iommu/rockchip-iommu.c 	struct rk_iommu_domain *rk_domain = to_rk_domain(domain);
rk_domain         598 drivers/iommu/rockchip-iommu.c 	spin_lock_irqsave(&rk_domain->dt_lock, flags);
rk_domain         600 drivers/iommu/rockchip-iommu.c 	dte = rk_domain->dt[rk_iova_dte_index(iova)];
rk_domain         612 drivers/iommu/rockchip-iommu.c 	spin_unlock_irqrestore(&rk_domain->dt_lock, flags);
rk_domain         617 drivers/iommu/rockchip-iommu.c static void rk_iommu_zap_iova(struct rk_iommu_domain *rk_domain,
rk_domain         624 drivers/iommu/rockchip-iommu.c 	spin_lock_irqsave(&rk_domain->iommus_lock, flags);
rk_domain         625 drivers/iommu/rockchip-iommu.c 	list_for_each(pos, &rk_domain->iommus) {
rk_domain         643 drivers/iommu/rockchip-iommu.c 	spin_unlock_irqrestore(&rk_domain->iommus_lock, flags);
rk_domain         646 drivers/iommu/rockchip-iommu.c static void rk_iommu_zap_iova_first_last(struct rk_iommu_domain *rk_domain,
rk_domain         649 drivers/iommu/rockchip-iommu.c 	rk_iommu_zap_iova(rk_domain, iova, SPAGE_SIZE);
rk_domain         651 drivers/iommu/rockchip-iommu.c 		rk_iommu_zap_iova(rk_domain, iova + size - SPAGE_SIZE,
rk_domain         655 drivers/iommu/rockchip-iommu.c static u32 *rk_dte_get_page_table(struct rk_iommu_domain *rk_domain,
rk_domain         663 drivers/iommu/rockchip-iommu.c 	assert_spin_locked(&rk_domain->dt_lock);
rk_domain         666 drivers/iommu/rockchip-iommu.c 	dte_addr = &rk_domain->dt[dte_index];
rk_domain         685 drivers/iommu/rockchip-iommu.c 	rk_table_flush(rk_domain, pt_dma, NUM_PT_ENTRIES);
rk_domain         686 drivers/iommu/rockchip-iommu.c 	rk_table_flush(rk_domain,
rk_domain         687 drivers/iommu/rockchip-iommu.c 		       rk_domain->dt_dma + dte_index * sizeof(u32), 1);
rk_domain         693 drivers/iommu/rockchip-iommu.c static size_t rk_iommu_unmap_iova(struct rk_iommu_domain *rk_domain,
rk_domain         700 drivers/iommu/rockchip-iommu.c 	assert_spin_locked(&rk_domain->dt_lock);
rk_domain         710 drivers/iommu/rockchip-iommu.c 	rk_table_flush(rk_domain, pte_dma, pte_count);
rk_domain         715 drivers/iommu/rockchip-iommu.c static int rk_iommu_map_iova(struct rk_iommu_domain *rk_domain, u32 *pte_addr,
rk_domain         723 drivers/iommu/rockchip-iommu.c 	assert_spin_locked(&rk_domain->dt_lock);
rk_domain         736 drivers/iommu/rockchip-iommu.c 	rk_table_flush(rk_domain, pte_dma, pte_total);
rk_domain         744 drivers/iommu/rockchip-iommu.c 	rk_iommu_zap_iova_first_last(rk_domain, iova, size);
rk_domain         749 drivers/iommu/rockchip-iommu.c 	rk_iommu_unmap_iova(rk_domain, pte_addr, pte_dma,
rk_domain         763 drivers/iommu/rockchip-iommu.c 	struct rk_iommu_domain *rk_domain = to_rk_domain(domain);
rk_domain         770 drivers/iommu/rockchip-iommu.c 	spin_lock_irqsave(&rk_domain->dt_lock, flags);
rk_domain         779 drivers/iommu/rockchip-iommu.c 	page_table = rk_dte_get_page_table(rk_domain, iova);
rk_domain         781 drivers/iommu/rockchip-iommu.c 		spin_unlock_irqrestore(&rk_domain->dt_lock, flags);
rk_domain         785 drivers/iommu/rockchip-iommu.c 	dte_index = rk_domain->dt[rk_iova_dte_index(iova)];
rk_domain         789 drivers/iommu/rockchip-iommu.c 	ret = rk_iommu_map_iova(rk_domain, pte_addr, pte_dma, iova,
rk_domain         792 drivers/iommu/rockchip-iommu.c 	spin_unlock_irqrestore(&rk_domain->dt_lock, flags);
rk_domain         800 drivers/iommu/rockchip-iommu.c 	struct rk_iommu_domain *rk_domain = to_rk_domain(domain);
rk_domain         808 drivers/iommu/rockchip-iommu.c 	spin_lock_irqsave(&rk_domain->dt_lock, flags);
rk_domain         817 drivers/iommu/rockchip-iommu.c 	dte = rk_domain->dt[rk_iova_dte_index(iova)];
rk_domain         820 drivers/iommu/rockchip-iommu.c 		spin_unlock_irqrestore(&rk_domain->dt_lock, flags);
rk_domain         827 drivers/iommu/rockchip-iommu.c 	unmap_size = rk_iommu_unmap_iova(rk_domain, pte_addr, pte_dma, size);
rk_domain         829 drivers/iommu/rockchip-iommu.c 	spin_unlock_irqrestore(&rk_domain->dt_lock, flags);
rk_domain         832 drivers/iommu/rockchip-iommu.c 	rk_iommu_zap_iova(rk_domain, iova, unmap_size);
rk_domain         865 drivers/iommu/rockchip-iommu.c 	struct rk_iommu_domain *rk_domain = to_rk_domain(domain);
rk_domain         882 drivers/iommu/rockchip-iommu.c 			       rk_domain->dt_dma);
rk_domain         900 drivers/iommu/rockchip-iommu.c 	struct rk_iommu_domain *rk_domain = to_rk_domain(domain);
rk_domain         917 drivers/iommu/rockchip-iommu.c 	spin_lock_irqsave(&rk_domain->iommus_lock, flags);
rk_domain         919 drivers/iommu/rockchip-iommu.c 	spin_unlock_irqrestore(&rk_domain->iommus_lock, flags);
rk_domain         933 drivers/iommu/rockchip-iommu.c 	struct rk_iommu_domain *rk_domain = to_rk_domain(domain);
rk_domain         956 drivers/iommu/rockchip-iommu.c 	spin_lock_irqsave(&rk_domain->iommus_lock, flags);
rk_domain         957 drivers/iommu/rockchip-iommu.c 	list_add_tail(&iommu->node, &rk_domain->iommus);
rk_domain         958 drivers/iommu/rockchip-iommu.c 	spin_unlock_irqrestore(&rk_domain->iommus_lock, flags);
rk_domain         975 drivers/iommu/rockchip-iommu.c 	struct rk_iommu_domain *rk_domain;
rk_domain         983 drivers/iommu/rockchip-iommu.c 	rk_domain = kzalloc(sizeof(*rk_domain), GFP_KERNEL);
rk_domain         984 drivers/iommu/rockchip-iommu.c 	if (!rk_domain)
rk_domain         988 drivers/iommu/rockchip-iommu.c 	    iommu_get_dma_cookie(&rk_domain->domain))
rk_domain         996 drivers/iommu/rockchip-iommu.c 	rk_domain->dt = (u32 *)get_zeroed_page(GFP_KERNEL | GFP_DMA32);
rk_domain         997 drivers/iommu/rockchip-iommu.c 	if (!rk_domain->dt)
rk_domain        1000 drivers/iommu/rockchip-iommu.c 	rk_domain->dt_dma = dma_map_single(dma_dev, rk_domain->dt,
rk_domain        1002 drivers/iommu/rockchip-iommu.c 	if (dma_mapping_error(dma_dev, rk_domain->dt_dma)) {
rk_domain        1007 drivers/iommu/rockchip-iommu.c 	rk_table_flush(rk_domain, rk_domain->dt_dma, NUM_DT_ENTRIES);
rk_domain        1009 drivers/iommu/rockchip-iommu.c 	spin_lock_init(&rk_domain->iommus_lock);
rk_domain        1010 drivers/iommu/rockchip-iommu.c 	spin_lock_init(&rk_domain->dt_lock);
rk_domain        1011 drivers/iommu/rockchip-iommu.c 	INIT_LIST_HEAD(&rk_domain->iommus);
rk_domain        1013 drivers/iommu/rockchip-iommu.c 	rk_domain->domain.geometry.aperture_start = 0;
rk_domain        1014 drivers/iommu/rockchip-iommu.c 	rk_domain->domain.geometry.aperture_end   = DMA_BIT_MASK(32);
rk_domain        1015 drivers/iommu/rockchip-iommu.c 	rk_domain->domain.geometry.force_aperture = true;
rk_domain        1017 drivers/iommu/rockchip-iommu.c 	return &rk_domain->domain;
rk_domain        1020 drivers/iommu/rockchip-iommu.c 	free_page((unsigned long)rk_domain->dt);
rk_domain        1023 drivers/iommu/rockchip-iommu.c 		iommu_put_dma_cookie(&rk_domain->domain);
rk_domain        1025 drivers/iommu/rockchip-iommu.c 	kfree(rk_domain);
rk_domain        1032 drivers/iommu/rockchip-iommu.c 	struct rk_iommu_domain *rk_domain = to_rk_domain(domain);
rk_domain        1035 drivers/iommu/rockchip-iommu.c 	WARN_ON(!list_empty(&rk_domain->iommus));
rk_domain        1038 drivers/iommu/rockchip-iommu.c 		u32 dte = rk_domain->dt[i];
rk_domain        1048 drivers/iommu/rockchip-iommu.c 	dma_unmap_single(dma_dev, rk_domain->dt_dma,
rk_domain        1050 drivers/iommu/rockchip-iommu.c 	free_page((unsigned long)rk_domain->dt);
rk_domain        1053 drivers/iommu/rockchip-iommu.c 		iommu_put_dma_cookie(&rk_domain->domain);
rk_domain        1054 drivers/iommu/rockchip-iommu.c 	kfree(rk_domain);