]> git.sur5r.net Git - u-boot/blobdiff - arch/x86/cpu/pci.c
x86: quark: Avoid chicken and egg problem
[u-boot] / arch / x86 / cpu / pci.c
index fdfd5f7b9cc85648227f0e1a1fdc50e3e49d1fde..d2ec45a2403cba00839ed68378838407e153d303 100644 (file)
@@ -76,7 +76,8 @@ unsigned int x86_pci_read_config8(pci_dev_t dev, unsigned where)
 {
        uint8_t value;
 
-       pci_hose_read_config_byte(get_hose(), dev, where, &value);
+       if (pci_hose_read_config_byte(get_hose(), dev, where, &value))
+               return -1U;
 
        return value;
 }
@@ -85,7 +86,8 @@ unsigned int x86_pci_read_config16(pci_dev_t dev, unsigned where)
 {
        uint16_t value;
 
-       pci_hose_read_config_word(get_hose(), dev, where, &value);
+       if (pci_hose_read_config_word(get_hose(), dev, where, &value))
+               return -1U;
 
        return value;
 }
@@ -94,7 +96,8 @@ unsigned int x86_pci_read_config32(pci_dev_t dev, unsigned where)
 {
        uint32_t value;
 
-       pci_hose_read_config_dword(get_hose(), dev, where, &value);
+       if (pci_hose_read_config_dword(get_hose(), dev, where, &value))
+               return -1U;
 
        return value;
 }
@@ -172,6 +175,8 @@ void pci_assign_irqs(int bus, int device, u8 irq[4])
                        continue;
 
                line = irq[pin - 1];
+               if (!line)
+                       continue;
 
                debug("Assigning IRQ %d to PCI device %d.%x.%d (INT%c)\n",
                      line, bus, device, func, 'A' + pin - 1);