瀏覽代碼

Start pci hose scan from hose->current_busno.

Ensure hose->current_busno is not less than first_busno.  This fixes
broken board code which leaves current_busno=0 when first_busno is
greater than 0 for the cases with multiple controllers.

Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
Ed Swarthout 18 年之前
父節點
當前提交
40e81addab
共有 1 個文件被更改,包括 7 次插入1 次删除
  1. 7 1
      drivers/pci.c

+ 7 - 1
drivers/pci.c

@@ -490,10 +490,16 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus)
 
 int pci_hose_scan(struct pci_controller *hose)
 {
+	/* Start scan at current_busno.
+	 * PCIe will start scan at first_busno+1.
+	 */
+	/* For legacy support, ensure current>=first */
+	if (hose->first_busno > hose->current_busno)
+		hose->current_busno = hose->first_busno;
 #ifdef CONFIG_PCI_PNP
 	pciauto_config_init(hose);
 #endif
-	return pci_hose_scan_bus(hose, hose->first_busno);
+	return pci_hose_scan_bus(hose, hose->current_busno);
 }
 
 void pci_init(void)