Merge tag 'iommu-updates-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-block.git] / drivers / iommu / sun50i-iommu.c
index decd52cba998a36d7c3bfb30583bd8fc99f9b478..c519b991749d758b6d26cd2cb9effbeeb8fb6f73 100644 (file)
@@ -26,6 +26,8 @@
 #include <linux/spinlock.h>
 #include <linux/types.h>
 
+#include "iommu-pages.h"
+
 #define IOMMU_RESET_REG                        0x010
 #define IOMMU_RESET_RELEASE_ALL                        0xffffffff
 #define IOMMU_ENABLE_REG               0x020
@@ -679,8 +681,7 @@ sun50i_iommu_domain_alloc_paging(struct device *dev)
        if (!sun50i_domain)
                return NULL;
 
-       sun50i_domain->dt = (u32 *)__get_free_pages(GFP_KERNEL | __GFP_ZERO,
-                                                   get_order(DT_SIZE));
+       sun50i_domain->dt = iommu_alloc_pages(GFP_KERNEL, get_order(DT_SIZE));
        if (!sun50i_domain->dt)
                goto err_free_domain;
 
@@ -702,7 +703,7 @@ static void sun50i_iommu_domain_free(struct iommu_domain *domain)
 {
        struct sun50i_iommu_domain *sun50i_domain = to_sun50i_domain(domain);
 
-       free_pages((unsigned long)sun50i_domain->dt, get_order(DT_SIZE));
+       iommu_free_pages(sun50i_domain->dt, get_order(DT_SIZE));
        sun50i_domain->dt = NULL;
 
        kfree(sun50i_domain);