#include <asm/machdep.h>
 #include <asm/firmware.h>
 
+#include "pasemi.h"
+
 #define IOBMAP_PAGE_SHIFT      12
 #define IOBMAP_PAGE_SIZE       (1 << IOBMAP_PAGE_SHIFT)
 #define IOBMAP_PAGE_MASK       (IOBMAP_PAGE_SIZE - 1)
 
        iob_init(NULL);
 
-       ppc_md.pci_dma_dev_setup = pci_dma_dev_setup_pasemi;
-       ppc_md.pci_dma_bus_setup = pci_dma_bus_setup_pasemi;
+       pasemi_pci_controller_ops.dma_dev_setup = pci_dma_dev_setup_pasemi;
+       pasemi_pci_controller_ops.dma_bus_setup = pci_dma_bus_setup_pasemi;
        ppc_md.tce_build = iobmap_build;
        ppc_md.tce_free  = iobmap_free;
        set_pci_dma_ops(&dma_iommu_ops);
 
 
 #include <asm/ppc-pci.h>
 
+#include "pasemi.h"
+
 #define PA_PXP_CFA(bus, devfn, off) (((bus) << 20) | ((devfn) << 12) | (off))
 
 static inline int pa_pxp_offset_valid(u8 bus, u8 devfn, int offset)
 
        hose->first_busno = 0;
        hose->last_busno = 0xff;
+       hose->controller_ops = pasemi_pci_controller_ops;
 
        setup_pa_pxp(hose);
 
 
        return (void __iomem *)pa_pxp_cfg_addr(hose, dev->bus->number, dev->devfn, offset);
 }
+
+struct pci_controller_ops pasemi_pci_controller_ops;