openwrt/target/linux/cns3xxx/patches-3.14/121-pcie_fix_bridge_access....

12 lines
305 B
Diff

--- a/arch/arm/mach-cns3xxx/pcie.c
+++ b/arch/arm/mach-cns3xxx/pcie.c
@@ -93,6 +93,8 @@ static void __iomem *cns3xxx_pci_cfg_bas
base = (void __iomem *)cnspci->cfg_bases[type].virtual;
offset = (devfn << 12) | (where & 0xffc);
+ if (busno > 1)
+ offset += busno << 20;
return base + offset;
}