PCI: cadence: Allow pci_host_bridge to have custom pci_ops
authorKishon Vijay Abraham I <kishon@ti.com>
Wed, 22 Jul 2020 11:03:08 +0000 (16:33 +0530)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Mon, 27 Jul 2020 14:46:16 +0000 (15:46 +0100)
Certain platforms like TI's J721E allows only 32-bit configuration
space access. In such cases pci_generic_config_read and
pci_generic_config_write cannot be used. Add support in Cadence core
to let pci_host_bridge have custom pci_ops.

Link: https://lore.kernel.org/r/20200722110317.4744-7-kishon@ti.com
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/cadence/pcie-cadence-host.c

index 4e650c7..f889914 100644 (file)
@@ -506,7 +506,8 @@ int cdns_pcie_host_setup(struct cdns_pcie_rc *rc)
        list_splice_init(&resources, &bridge->windows);
        bridge->dev.parent = dev;
        bridge->busnr = pcie->bus;
-       bridge->ops = &cdns_pcie_host_ops;
+       if (!bridge->ops)
+               bridge->ops = &cdns_pcie_host_ops;
        bridge->map_irq = of_irq_parse_and_map_pci;
        bridge->swizzle_irq = pci_common_swizzle;