vserver 2.0 rc7
[linux-2.6.git] / arch / ia64 / sn / pci / pcibr / pcibr_provider.c
index 92bd278..3893999 100644 (file)
@@ -13,8 +13,8 @@
 #include "xtalk/xwidgetdev.h"
 #include <asm/sn/geo.h>
 #include "xtalk/hubdev.h"
-#include "pci/pcibus_provider_defs.h"
-#include "pci/pcidev.h"
+#include <asm/sn/pcibus_provider_defs.h>
+#include <asm/sn/pcidev.h>
 #include "pci/pcibr_provider.h"
 #include <asm/sn/addrs.h>
 
@@ -168,3 +168,23 @@ void pcibr_change_devices_irq(struct sn_irq_info *sn_irq_info)
                pcibr_force_interrupt(sn_irq_info);
        }
 }
+
+/*
+ * Provider entries for PIC/CP
+ */
+
+struct sn_pcibus_provider pcibr_provider = {
+       .dma_map = pcibr_dma_map,
+       .dma_map_consistent = pcibr_dma_map_consistent,
+       .dma_unmap = pcibr_dma_unmap,
+       .bus_fixup = pcibr_bus_fixup,
+};
+
+int
+pcibr_init_provider(void)
+{
+       sn_pci_provider[PCIIO_ASIC_TYPE_PIC] = &pcibr_provider;
+       sn_pci_provider[PCIIO_ASIC_TYPE_TIOCP] = &pcibr_provider;
+
+       return 0;
+}