X-Git-Url: https://git.kernelconcepts.de/?a=blobdiff_plain;f=common%2Fcmd_pci.c;h=dcecef8da859b467e08cf3cf0434658b758fb668;hb=f1376562e7d0a50031f0c3cdb758c52c0a93f040;hp=a1ba42e2f3a2c3a4abc625af674a4599af451f38;hpb=d6694aff569a0838a9d0ef352128f5aa309d73ff;p=karo-tx-uboot.git diff --git a/common/cmd_pci.c b/common/cmd_pci.c index a1ba42e2f3..dcecef8da8 100644 --- a/common/cmd_pci.c +++ b/common/cmd_pci.c @@ -42,11 +42,16 @@ void pci_header_show_brief(pci_dev_t dev); */ void pciinfo(int BusNum, int ShortPCIListing) { + struct pci_controller *hose = pci_bus_to_hose(BusNum); int Device; int Function; unsigned char HeaderType; unsigned short VendorID; pci_dev_t dev; + int ret; + + if (!hose) + return; printf("Scanning PCI devices on bus %d\n", BusNum); @@ -67,7 +72,13 @@ void pciinfo(int BusNum, int ShortPCIListing) dev = PCI_BDF(BusNum, Device, Function); - pci_read_config_word(dev, PCI_VENDOR_ID, &VendorID); + if (pci_skip_dev(hose, dev)) + continue; + + ret = pci_read_config_word(dev, PCI_VENDOR_ID, + &VendorID); + if (ret) + goto error; if ((VendorID == 0xFFFF) || (VendorID == 0x0000)) continue; @@ -84,8 +95,12 @@ void pciinfo(int BusNum, int ShortPCIListing) BusNum, Device, Function); pci_header_show(dev); } - } - } + } + } + + return; +error: + printf("Cannot read bus configuration: %d\n", ret); }