
From: Fabio Estevam fabio.estevam@freescale.com
Since commit ff3e077bd2 ("dm: pci: Add a uclass for PCI") the following error message is seen:
=> pci 0 Scanning PCI devices on bus 0 BusDevFun VendorId DeviceId Device Class Sub-Class _____________________________________________________________ 00.01.00 0x16c3 0xabcd Bridge device 0x04 Cannot read bus configuration: -1
=> pci 1 Scanning PCI devices on bus 1 BusDevFun VendorId DeviceId Device Class Sub-Class _____________________________________________________________ 01.00.00 0x8086 0x08b1 Network controller 0x80 Cannot read bus configuration: -1
When we are done scanning the PCI devices pci_read_config_word() will return -1 and VendorID will contain 0xFFFF.
The original code would exit the 'for' loop in this condition.
Keep the same original behaviour by first testing the VendorID value and then checking and propagating the pci_read_config_word() error afterwards.
Signed-off-by: Fabio Estevam fabio.estevam@freescale.com --- common/cmd_pci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/cmd_pci.c b/common/cmd_pci.c index dcecef8..92dc643 100644 --- a/common/cmd_pci.c +++ b/common/cmd_pci.c @@ -77,10 +77,10 @@ void pciinfo(int BusNum, int ShortPCIListing)
ret = pci_read_config_word(dev, PCI_VENDOR_ID, &VendorID); - if (ret) - goto error; if ((VendorID == 0xFFFF) || (VendorID == 0x0000)) continue; + if (ret) + goto error;
if (!Function) pci_read_config_byte(dev, PCI_HEADER_TYPE, &HeaderType);