|
@@ -760,6 +760,26 @@ void pnv_pci_dma_dev_setup(struct pci_dev *pdev)
|
|
|
phb->dma_dev_setup(phb, pdev);
|
|
|
}
|
|
|
|
|
|
+void pnv_pci_dma_bus_setup(struct pci_bus *bus)
|
|
|
+{
|
|
|
+ struct pci_controller *hose = bus->sysdata;
|
|
|
+ struct pnv_phb *phb = hose->private_data;
|
|
|
+ struct pnv_ioda_pe *pe;
|
|
|
+
|
|
|
+ list_for_each_entry(pe, &phb->ioda.pe_list, list) {
|
|
|
+ if (!(pe->flags & (PNV_IODA_PE_BUS | PNV_IODA_PE_BUS_ALL)))
|
|
|
+ continue;
|
|
|
+
|
|
|
+ if (!pe->pbus)
|
|
|
+ continue;
|
|
|
+
|
|
|
+ if (bus->number == ((pe->rid >> 8) & 0xFF)) {
|
|
|
+ pe->pbus = bus;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
void pnv_pci_shutdown(void)
|
|
|
{
|
|
|
struct pci_controller *hose;
|