--- 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; }