To build this driver as a kernel module, we cannot use
the unexported symbol "max_pfn" to setup enable_4GB.

Use totalram_pages() instead to setup enable_4GB.

Suggested-by: Mike Rapoport <r...@linux.ibm.com>
Signed-off-by: Miles Chen <miles.c...@mediatek.com>
Cc: David Hildenbrand <da...@redhat.com>
Cc: Yong Wu <yong...@mediatek.com>
Cc: Chao Hao <chao....@mediatek.com>
---
 drivers/iommu/mtk_iommu.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
index 5f4d6df59cf6..c2798a6e0e38 100644
--- a/drivers/iommu/mtk_iommu.c
+++ b/drivers/iommu/mtk_iommu.c
@@ -3,7 +3,6 @@
  * Copyright (c) 2015-2016 MediaTek Inc.
  * Author: Yong Wu <yong...@mediatek.com>
  */
-#include <linux/memblock.h>
 #include <linux/bug.h>
 #include <linux/clk.h>
 #include <linux/component.h>
@@ -626,8 +625,8 @@ static int mtk_iommu_probe(struct platform_device *pdev)
                return -ENOMEM;
        data->protect_base = ALIGN(virt_to_phys(protect), MTK_PROTECT_PA_ALIGN);
 
-       /* Whether the current dram is over 4GB */
-       data->enable_4GB = !!(max_pfn > (BIT_ULL(32) >> PAGE_SHIFT));
+       /* Whether the current dram is over 4GB, note: DRAM start at 1GB  */
+       data->enable_4GB = !!(totalram_pages() > ((SZ_2G + SZ_1G) >> 
PAGE_SHIFT));
        if (!data->plat_data->has_4gb_mode)
                data->enable_4GB = false;
 
-- 
2.18.0

Reply via email to