• Zachary Zhang's avatar
    PCI: aardvark: Size bridges before resources allocation · 91a2968e
    Zachary Zhang authored
    The PCIE I/O and MEM resource allocation mechanism is that root bus
    goes through the following steps:
    
    1. Check PCI bridges' range and computes I/O and Mem base/limits.
    
    2. Sort all subordinate devices I/O and MEM resource requirements and
       allocate the resources and writes/updates subordinate devices'
       requirements to PCI bridges I/O and Mem MEM/limits registers.
    
    Currently, PCI Aardvark driver only handles the second step and lacks
    the first step, so there is an I/O and MEM resource allocation failure
    when using a PCI switch. This commit fixes that by sizing bridges
    before doing the resource allocation.
    
    Fixes: 8c39d710 ("PCI: aardvark: Add Aardvark PCI host controller
    driver")
    Signed-off-by: default avatarZachary Zhang <zhangzg@marvell.com>
    [Thomas: edit commit log.]
    Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@bootlin.com>
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Cc: <stable@vger.kernel.org>
    91a2968e
pci-aardvark.c 25.4 KB