--- a/arch/mips/pci/pci-lantiq.c +++ b/arch/mips/pci/pci-lantiq.c @@ -61,6 +61,8 @@ #define ltq_pci_cfg_w32(x, y) ltq_w32((x), ltq_pci_mapped_cfg + (y)) #define ltq_pci_cfg_r32(x) ltq_r32(ltq_pci_mapped_cfg + (x)) +extern u32 max_low_pfn; + __iomem void *ltq_pci_mapped_cfg; static __iomem void *ltq_pci_membase; @@ -86,8 +88,8 @@ static inline u32 ltq_calc_bar11mask(voi u32 mem, bar11mask; /* BAR11MASK value depends on available memory on system. */ - mem = get_num_physpages() * PAGE_SIZE; - bar11mask = (0x0ffffff0 & ~((1 << (fls(mem) - 1)) - 1)) | 8; + mem = max_low_pfn << PAGE_SHIFT; + bar11mask = ((-roundup_pow_of_two(mem)) & 0x0F000000) | 8; return bar11mask; }