diff options
Diffstat (limited to 'target/linux/lantiq/patches-4.9/0154-lantiq-pci-bar11mask-fix.patch')
-rw-r--r-- | target/linux/lantiq/patches-4.9/0154-lantiq-pci-bar11mask-fix.patch | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/target/linux/lantiq/patches-4.9/0154-lantiq-pci-bar11mask-fix.patch b/target/linux/lantiq/patches-4.9/0154-lantiq-pci-bar11mask-fix.patch new file mode 100644 index 0000000000..d0acd4bb10 --- /dev/null +++ b/target/linux/lantiq/patches-4.9/0154-lantiq-pci-bar11mask-fix.patch @@ -0,0 +1,22 @@ +--- 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; + } |