diff options
Diffstat (limited to 'drivers/pci')
| -rw-r--r-- | drivers/pci/fsl_pci_init.c | 3 | ||||
| -rw-r--r-- | drivers/pci/pci.c | 4 | 
2 files changed, 6 insertions, 1 deletions
| diff --git a/drivers/pci/fsl_pci_init.c b/drivers/pci/fsl_pci_init.c index 001e6eb90..1f021036e 100644 --- a/drivers/pci/fsl_pci_init.c +++ b/drivers/pci/fsl_pci_init.c @@ -91,6 +91,9 @@ int fsl_setup_hose(struct pci_controller *hose, unsigned long addr)  {  	volatile ccsr_fsl_pci_t *pci = (ccsr_fsl_pci_t *) addr; +	/* Reset hose to make sure its in a clean state */ +	memset(hose, 0, sizeof(struct pci_controller)); +  	pci_setup_indirect(hose, (u32)&pci->cfg_addr, (u32)&pci->cfg_data);  	return fsl_is_pci_agent(hose); diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index cd64a87fc..848746f1e 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -139,7 +139,7 @@ void *pci_map_bar(pci_dev_t pdev, int bar, int flags)   *   */ -static struct pci_controller* hose_head = NULL; +static struct pci_controller* hose_head;  void pci_register_hose(struct pci_controller* hose)  { @@ -640,6 +640,8 @@ void pci_init(void)  	}  #endif /* CONFIG_PCI_BOOTDELAY */ +	hose_head = NULL; +  	/* now call board specific pci_init()... */  	pci_init_board();  } |