[U-Boot] [PATCH] cmd_pci: Check for VendorID earlier
Fabio Estevam
festevam at gmail.com
Fri Oct 9 15:36:00 CEST 2015
On Fri, Oct 9, 2015 at 10:31 AM, Simon Glass <sjg at chromium.org> wrote:
> If you look down one more level, these end up calling
> imx_pcie_read_config() which calls imx_pcie_addr_valid():
>
> static int imx_pcie_addr_valid(pci_dev_t d)
> {
> if ((PCI_BUS(d) == 0) && (PCI_DEV(d) > 1))
> return -EINVAL;
> if ((PCI_BUS(d) == 1) && (PCI_DEV(d) > 0))
> return -EINVAL;
> return 0;
> }
>
> I can understand the bus check, but why return an access error if the
> device does not exist on the bus? That seems like a bug to me.
Is your suggestion like this?
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -67,7 +67,7 @@ int pci_hose_read_config_##size##_via_dword(struct pci_control
\
if (pci_hose_read_config_dword(hose, dev, offset & 0xfc, &val32) < 0) {
*val = -1; \
- return -1; \
+ return 0; \
} \
\
*val = (val32 >> ((offset & (int)off_mask) * 8));
Regards,
Fabio Estevam
More information about the U-Boot
mailing list