Commit 77216702 authored by Chuanjia Liu's avatar Chuanjia Liu Committed by Lorenzo Pieralisi
Browse files

PCI: mediatek: Use PCI domain to handle ports detection

Use of_get_pci_domain_nr() to get the pci domain.

If the "linux,pci-domain" property is present, we assume that the PCIe
bridge is an individual bridge, hence we only need to parse one port.

Link: https://lore.kernel.org/r/20210823032800.1660-5-chuanjia.liu@mediatek.com


Signed-off-by: default avatarChuanjia Liu <chuanjia.liu@mediatek.com>
[lorenzo.pieralisi@arm.com: commit log]
Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: default avatarRyder Lee <ryder.lee@mediatek.com>
parent 436960bb
Loading
Loading
Loading
Loading
+17 −12
Original line number Diff line number Diff line
@@ -1048,14 +1048,14 @@ static int mtk_pcie_setup(struct mtk_pcie *pcie)
	struct device *dev = pcie->dev;
	struct device_node *node = dev->of_node, *child;
	struct mtk_pcie_port *port, *tmp;
	int err;
	int err, slot;

	slot = of_get_pci_domain_nr(dev->of_node);
	if (slot < 0) {
		for_each_available_child_of_node(node, child) {
		int slot;

			err = of_pci_get_devfn(child);
			if (err < 0) {
			dev_err(dev, "failed to parse devfn: %d\n", err);
				dev_err(dev, "failed to get devfn: %d\n", err);
				goto error_put_node;
			}

@@ -1065,6 +1065,11 @@ static int mtk_pcie_setup(struct mtk_pcie *pcie)
			if (err)
				goto error_put_node;
		}
	} else {
		err = mtk_pcie_parse_port(pcie, node, slot);
		if (err)
			return err;
	}

	err = mtk_pcie_subsys_powerup(pcie);
	if (err)