diff options
Diffstat (limited to 'drivers/iommu/sun50i-iommu.c')
| -rw-r--r-- | drivers/iommu/sun50i-iommu.c | 8 | 
1 files changed, 3 insertions, 5 deletions
| diff --git a/drivers/iommu/sun50i-iommu.c b/drivers/iommu/sun50i-iommu.c index fce605e96aa2..3b1bf2fb94f5 100644 --- a/drivers/iommu/sun50i-iommu.c +++ b/drivers/iommu/sun50i-iommu.c @@ -313,9 +313,9 @@ static int sun50i_iommu_flush_all_tlb(struct sun50i_iommu *iommu)  		    IOMMU_TLB_FLUSH_MICRO_TLB(1) |  		    IOMMU_TLB_FLUSH_MICRO_TLB(0)); -	ret = readl_poll_timeout(iommu->base + IOMMU_TLB_FLUSH_REG, -				 reg, !reg, -				 1, 2000); +	ret = readl_poll_timeout_atomic(iommu->base + IOMMU_TLB_FLUSH_REG, +					reg, !reg, +					1, 2000);  	if (ret)  		dev_warn(iommu->dev, "TLB Flush timed out!\n"); @@ -556,7 +556,6 @@ static size_t sun50i_iommu_unmap(struct iommu_domain *domain, unsigned long iova  {  	struct sun50i_iommu_domain *sun50i_domain = to_sun50i_domain(domain);  	phys_addr_t pt_phys; -	dma_addr_t pte_dma;  	u32 *pte_addr;  	u32 dte; @@ -566,7 +565,6 @@ static size_t sun50i_iommu_unmap(struct iommu_domain *domain, unsigned long iova  	pt_phys = sun50i_dte_get_pt_address(dte);  	pte_addr = (u32 *)phys_to_virt(pt_phys) + sun50i_iova_get_pte_index(iova); -	pte_dma = pt_phys + sun50i_iova_get_pte_index(iova) * PT_ENTRY_SIZE;  	if (!sun50i_pte_is_page_valid(*pte_addr))  		return 0; |