X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fpci%2Fpci_compat.c;h=ddaf358e26dc5ffa24012aed736ec73ad8d31037;hb=7b6dc11c1aa69e5cc22d1659f50594edcfab5a9e;hp=d6938c198f70a79b1d8662209df128c4eaa108af;hpb=b939689c7b87773c44275a578ffc8674a867e39d;p=u-boot diff --git a/drivers/pci/pci_compat.c b/drivers/pci/pci_compat.c index d6938c198f..ddaf358e26 100644 --- a/drivers/pci/pci_compat.c +++ b/drivers/pci/pci_compat.c @@ -5,7 +5,6 @@ * * SPDX-License-Identifier: GPL-2.0+ */ -#define DEBUG #include #include #include @@ -13,6 +12,7 @@ #include #include #include +#include "pci_internal.h" #define PCI_HOSE_OP(rw, name, size, type) \ int pci_hose_##rw##_config_##name(struct pci_controller *hose, \ @@ -31,13 +31,23 @@ PCI_HOSE_OP(write, dword, 32, u32) pci_dev_t pci_find_devices(struct pci_device_id *ids, int index) { - struct pci_child_platdata *pplat; - struct udevice *bus, *dev; + struct udevice *dev; if (pci_find_device_id(ids, index, &dev)) return -1; - bus = dev->parent; - pplat = dev_get_parent_platdata(dev); + return dm_pci_get_bdf(dev); +} + +struct pci_controller *pci_bus_to_hose(int busnum) +{ + struct udevice *bus; + int ret; + + ret = pci_get_bus(busnum, &bus); + if (ret) { + debug("%s: Cannot get bus %d: ret=%d\n", __func__, busnum, ret); + return NULL; + } - return PCI_ADD_BUS(bus->seq, pplat->devfn); + return dev_get_uclass_priv(bus); }